我在 Excel 中有一个几年的每日值列表。它显示股票价格指数的值,因此并不总是从每月的第一天开始,而是从每月的第一个工作日(市场开市时)开始。
如何快速筛选出仅显示每月第一天记录的列表?例如 1 日、2 日或 3 日?
谢谢你!
答案1
好吧,假设数据按日期顺序排列......
您可以设置条件格式来突出显示每个月的第一项,方法是使用以下命令:
=IF(ISERROR(MONTH($A1)),TRUE,MONTH($A2)<>MONTH($A1))
此公式假定您的数据在单元格 A2 及下方,并且在第 1 行有一个标题。选择所有行(单元格 A2 为主要选定行),然后使用上述公式创建一个新的条件格式。
奇怪的逻辑是避免它绊倒第一行的标题。如果您没有标题,并且您的数据从单元格 A1 开始,请执行以下操作:
1)突出显示第 1 行(它始终是第一行......)
2)突出显示单元格 A2 及以下...并使用以下公式:
=MONTH(A2)<>MONTH(A1)
答案2
您必须创建一个辅助列 First Weekday,然后在过滤器之前写入公式。公式计算月份的第一个工作日,并在辅助列中写入 First =IF(A2=Eomonth(A2,-1)+1+Choose(Weedkday(Eomonth(A2,-1)+1,2),0,0,0,0,0,2,1),"First","") A2 是表格中的日期,然后过滤 First Weekday 列 = First
答案3
我刚刚遇到了类似的问题,我必须找到每个月的第一个条目。这就是我能够做到的。
按时间顺序对数据进行排序。
假设第一个日期从 A2 开始。在 B2 上插入以下公式:
=文本(A2,“mmm/yyyy”)
这将给出结果,比如,Jan/2012。
将上述公式一直复制下去,以覆盖日志中的所有日期。
在 C2 中,键入以下公式:
=if(B2=B1,"否","是")
- 将上述公式一直复制下去。
每次新月份开始时,此操作都会返回“是”。只需过滤“是”,即可获得所需结果。
只要你认真想一下,就会发现这其实相当简单。:]