我看到了相关问题,在 Excel 中选择第 n 行,这非常有帮助,除了我需要知道每个月的最后一天工作日是哪一天。
答案1
这是公式和概念证明
将其放入第二行的空列中:
=A2=MAX(IF((YEAR(A2)=YEAR($A$2:$A$70))*(MONTH(A2)=MONTH($A$2:$A$70)),$A$2:$A$70))
这是一个数组公式,因此退出编辑模式时需要使用 Ctrl-Shift-Enter 而不是 Enter 进行确认。如果操作正确,Excel 会将{}
公式放在一边。
或者这个非 CSE 数组公式:
=A2=AGGREGATE(14,6,$A$2:$A$70/((YEAR(A2)=YEAR($A$2:$A$70))*(MONTH(A2)=MONTH($A$2:$A$70))),1)
正常输入即可。
然后抄下来。
这将查找列表中月份的最大日期,如果 A 列中的日期等于该日期,则返回 true。
然后过滤所有 FALSE 并删除。
答案2
因此,有两种情况 - 情况 1) 当您知道该月的最后几天时。(这更简单)。
我有一份两周一次的数据。我采用了这种简单而创新的方法。从所有日期中,我首先使用 Day() 函数提取日期。例如,Day(A1)。(请记住,执行此操作时,不要删除原始日期列。在单独的列中执行此操作,因为这将有助于您稍后匹配日期)。然后我使用之前刚刚构建的 Day 列按降序对数据进行排序。这会将所有结束日期放在首位。然后删除位于底部的开始日期。所以,现在我只剩下结束日期,但显然月份没有按顺序排列。因此,使用 =MONTH(A1) & "/" & YEAR(A1) 创建另一个列,仅从原始日期列中提取月份和年份。使用此列对数据进行排序。然后,您就可以开始了!
情况 2)当您没有确切的最后日期,但有像上图所示的最大日期时。
在此,在删除初始日期时,您必须注意需要删除哪些日期。例如,我删除了 31 天月份的第 17 天及以后的日期(包括第 17 天)和 30 天月份的第 16 天及以后的日期(如果有),因为如果有这个日期,假设是 2018 年 4 月 18 日,那么这将是该月的最后一天,因为我有两周一次的数据。