Excel 公式:table 中的重叠日期
Excel Formula: Overlapping Dates in table
我正在执行一项 excel 任务,我必须找出是否存在重叠日期。
在我的 excel 工作中sheet 有开始日期(D 列)和结束日期(E 列)的列,由此我必须确定是否存在重叠日期。
以下公式确定这组开始日期和结束日期是否与 sheet 中的任何其他日期组合重叠。
=SUM(COUNTIFS($A:$A0,$A2,$D:$D0,"<"&$D2)-COUNTIFS($A:$A0,$A2,$D:$D0,"<"&$D2,$E:$E0,"<"&$D2),COUNTIFS($A:$A0,$A2,$E:$E0,">"&$E2)-COUNTIFS($A:$A0,$A2,$E:$E0,">"&$E2,$D:$D0,">"&$E2),IF(COUNTIFS($A:$A0,$A2,$D:$D0,$D2)=1,0,1),IF(COUNTIFS($A:$A0,$A2,$E:$E0,$E2)=1,0,1))>0
当此公式应用于所有行时,无效行在 InvalidDate 列中显示为真值。这些值的逻辑与给出了最终预期值,指示是否存在任何无效日期。
我的 excel 列如下所示:
Name(A) SD(D) ED(E) InvalidDate
B 01-03-14 04-03-14 TRUE
B 06-03-14 07-03-14 FALSE
B 05-03-14 05-03-14 FALSE
B 05-02-14 05-02-14 FALSE
B 03-03-14 03-03-14 TRUE
B 17-03-14 18-03-14 FALSE
B 21-02-14 02-03-14 TRUE
B 08-03-14 09-03-14 FALSE
B 10-03-14 15-03-14 FALSE
B 16-03-14 16-03-14 FALSE
SD: Start Date
ED: End Date
Name: Value in Column A (Dates are compared for identical values of this column)
但是,我不能有一个额外的专栏。因此,我需要修改公式,使其 returns 为真,前提是所有日期值都有效。
我不知道如何在不使用该列的情况下进行逻辑与运算。感谢您的想法和努力。
用于计算单行重叠日期范围的公式可以简化:
=COUNTIFS($E:$E,">="&D2, $D:$D,"<="&E2, $A:$A,A2)
要将其更改为布尔值,请在末尾添加 >1
。
要检查单个单元格中的所有行,您可以将聚合函数与上述公式的数组版本一起使用。例如(用Ctrl+Shift+Enter确认):
=MAX(COUNTIFS($E:$E,">="&$D:$D,$D:$D,"<="&$E:$E,$A:$A,$A:$A))
我正在执行一项 excel 任务,我必须找出是否存在重叠日期。
在我的 excel 工作中sheet 有开始日期(D 列)和结束日期(E 列)的列,由此我必须确定是否存在重叠日期。
以下公式确定这组开始日期和结束日期是否与 sheet 中的任何其他日期组合重叠。
=SUM(COUNTIFS($A:$A0,$A2,$D:$D0,"<"&$D2)-COUNTIFS($A:$A0,$A2,$D:$D0,"<"&$D2,$E:$E0,"<"&$D2),COUNTIFS($A:$A0,$A2,$E:$E0,">"&$E2)-COUNTIFS($A:$A0,$A2,$E:$E0,">"&$E2,$D:$D0,">"&$E2),IF(COUNTIFS($A:$A0,$A2,$D:$D0,$D2)=1,0,1),IF(COUNTIFS($A:$A0,$A2,$E:$E0,$E2)=1,0,1))>0
当此公式应用于所有行时,无效行在 InvalidDate 列中显示为真值。这些值的逻辑与给出了最终预期值,指示是否存在任何无效日期。
我的 excel 列如下所示:
Name(A) SD(D) ED(E) InvalidDate
B 01-03-14 04-03-14 TRUE
B 06-03-14 07-03-14 FALSE
B 05-03-14 05-03-14 FALSE
B 05-02-14 05-02-14 FALSE
B 03-03-14 03-03-14 TRUE
B 17-03-14 18-03-14 FALSE
B 21-02-14 02-03-14 TRUE
B 08-03-14 09-03-14 FALSE
B 10-03-14 15-03-14 FALSE
B 16-03-14 16-03-14 FALSE
SD: Start Date
ED: End Date
Name: Value in Column A (Dates are compared for identical values of this column)
但是,我不能有一个额外的专栏。因此,我需要修改公式,使其 returns 为真,前提是所有日期值都有效。
我不知道如何在不使用该列的情况下进行逻辑与运算。感谢您的想法和努力。
用于计算单行重叠日期范围的公式可以简化:
=COUNTIFS($E:$E,">="&D2, $D:$D,"<="&E2, $A:$A,A2)
要将其更改为布尔值,请在末尾添加 >1
。
要检查单个单元格中的所有行,您可以将聚合函数与上述公式的数组版本一起使用。例如(用Ctrl+Shift+Enter确认):
=MAX(COUNTIFS($E:$E,">="&$D:$D,$D:$D,"<="&$E:$E,$A:$A,$A:$A))