使用Excel查找列中连续日期的序列

时间:2016-06-21 17:50:51

标签: excel ms-office

我有一列日期格式为:yyyymmdd。 示例如下所示:

19480110
19480111
19480115
19480119
19480124
19480130
19480131
19480201
19480204
19480209
19480210
19481225
19481226
19490212
19491210
19500108
19500208

我希望能够仅识别连续3或更多日期的细胞。在这种情况下,将突出显示具有以下值的单元格:

19480130 
19480131 
19480201

目前,我有一个表格的公式:

=IF(A2=A1+1, "Match", "")

但是,当月份发生变化时,它无法识别实例,如本示例所示:它仅在其中包含“19480131”的单元格旁边打印匹配项。有没有办法用现在的格式来说明月份的变化?

谢谢!

3 个答案:

答案 0 :(得分:2)

您需要将日期文本转换为日期值,例如

 =IF(DATE(VALUE(LEFT(A2,4)),VALUE(MID(A2,5,2)),VALUE(RIGHT(A2,2)))=DATE(VALUE(LEFT(A1,4)),VALUE(MID(A1,5,2)),VALUE(RIGHT(A1,2)))+1, "Match", "")

答案 1 :(得分:0)

=IF(A2=A1+1, "Match", IF(AND(OR(MOD(A1, 100) = 31, MOD(A1, 100) = 30, MOD(A1, 100) = 29, MOD(A1, 100) = 28), MOD(A2, 100) = 1), "Match", ""))

怎么样?

话虽如此,但有一点需要注意,如果你有1月28日,然后是2月01日,它会说这是连续的,你知道它不是。如果你想要一些没有这个问题的东西,我可以编写代码。

答案 2 :(得分:0)

A2 开始的 A 列中的数据,在 B2 中输入:

=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))

并复制下来。这会转换为实际日期。然后在 C2 中输入:

=B2-B1

并复制

如果 C 列中有两个连续的 1 ,我们有一个连续的三元组(至少)。所以在 D2 中输入:

=IF(OR(AND(C2=1,C3=1), AND(C2=1,C1=1), AND(C4=1,C3=1)),"*","")

enter image description here