我正在开展一项excel任务,我必须找出是否有重叠的日期。
在我的Excel工作表中有startDate(D列)和EndDate(comun E)的列,由此我必须确定是否存在重叠日期。
以下公式确定这组startDate& endDate与工作表中的任何其他日期组合重叠。
=SUM(COUNTIFS($A$2:$A$100,$A2,$D$2:$D$100,"<"&$D2)-COUNTIFS($A$2:$A$100,$A2,$D$2:$D$100,"<"&$D2,$E$2:$E$100,"<"&$D2),COUNTIFS($A$2:$A$100,$A2,$E$2:$E$100,">"&$E2)-COUNTIFS($A$2:$A$100,$A2,$E$2:$E$100,">"&$E2,$D$2:$D$100,">"&$E2),IF(COUNTIFS($A$2:$A$100,$A2,$D$2:$D$100,$D2)=1,0,1),IF(COUNTIFS($A$2:$A$100,$A2,$E$2:$E$100,$E2)=1,0,1))>0
将此公式应用于所有行时,在InvalidDate列中看到无效行的值为true。逻辑AND对这些值给出了最终预期值,表明是否存在任何无效日期。
我的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)
但是,我不能有一个额外的专栏。因此,我需要修改公式,使其只有在所有Date值都有效时才返回TRUE。
我无法弄清楚如何在不使用列的情况下进行逻辑AND操作。感谢您的想法和努力。
答案 0 :(得分:2)
可以简化用于计算单行重叠日期范围的公式:
=COUNTIFS($E$2:$E$11,">="&D2, $D$2:$D$11,"<="&E2, $A$2:$A$11,A2)
要将其更改为布尔值,请在末尾添加>1
。
要检查单个单元格中的所有行,可以使用具有上述公式的数组版本的聚合函数。例如(使用 Ctrl + Shift + Enter 确认):
=MAX(COUNTIFS($E$2:$E$11,">="&$D$2:$D$11,$D$2:$D$11,"<="&$E$2:$E$11,$A$2:$A$11,$A$2:$A$11))