我有两组日期范围,并使用sumproduct来识别前两列中哪些日期范围与后两列中的任何日期范围重叠
我现在需要的是确定第二个日期范围内重叠的哪一行,以便您可以在下面看到
TK 30/03/2015 24/04/2015 22/12/2014 21/01/2015 TRUE
TK 20/04/2015 24/04/2015 19/05/2015 21/01/2015 FALSE
TK 27/04/2015 15/05/2015 22/04/2015 04/04/2015 TRUE
TK 18/05/2015 20/05/2015 05/02/2015 09/02/2015 FALSE
TK 21/05/2015 22/05/2015 10/02/2015 11/02/2015 FALSE
TK 25/05/2015 25/05/2015 12/02/2015 12/02/2015 FALSE
G中使用的公式是
=SUMPRODUCT((A2=$A$2:$A$5)*((B2<=$E$2:$E$5)*(C2>=$D$2:$D$5)+(D2<=$C$2:$C$5)*(E2>=$B$2:$B$5)))>0
使用的列是A-G您可以看到第3行日期与第1行日期重叠
我需要做的是获取重叠日期的行号,这是我不知道是否有人可以提供帮助
我以为我昨天有了解决方案,因为小的测试数据集返回了正确的行,但是一旦我扩展了范围,它就生成了#N/A
,我现在很困惑为什么会发生这种情况。
Jeeped给出的解决方案是(w / m / d / yy date)
A B C D E F G H
TK 03/30/2015 04/24/2015 12/22/2014 01/21/2015 TRUE 4
TK 04/20/2015 04/24/2015 05/19/2015 01/21/2015 FALSE 0
TK 04/27/2015 05/15/2015 04/22/2015 04/04/2015 TRUE 2
TK 05/18/2015 05/20/2015 02/05/2015 02/09/2015 FALSE 0
TK 05/21/2015 05/22/2015 02/10/2015 02/11/2015 FALSE 0
TK 05/25/2015 05/25/2015 02/12/2015 02/12/2015 FALSE 0
= SUMPRODUCT(ROW($2:$7)*(A2=$A$2:$A$7)*((B2<=$E$2:$E$7)*(C2>=$D$2:$D$7)+(D2<=$C$2:$C$7))*(E2>=$B$2:$B$7)))
将其扩展为350行时发生错误。
这就是我现在所拥有的
TK 19/01/2015 13/02/2015 27/10/2014 18/11/2014 13227
TK 09/02/2015 13/02/2015 12/11/2014 18/11/2014 4318
TK 16/02/2015 06/03/2015 19/11/2014 02/12/2014 4938
TK 09/03/2015 11/03/2015 03/12/2014 05/12/2014 1095
TK 12/03/2015 13/03/2015 08/12/2014 09/12/2014 583
TK 16/03/2015 16/03/2015 10/12/2014 10/12/2014 609
TK 16/03/2015 20/03/2015 10/12/2014 16/12/2014 609
TK 23/03/2015 27/03/2015 17/12/2014 18/12/2014 46
TK 30/03/2015 30/03/2015 19/12/2014 19/12/2014 22
TK 30/03/2015 10/04/2015 19/12/2014 24/12/2014 22
TK 13/04/2015 13/04/2015 05/01/2015 05/01/2015 22
TK 03/12/2014 05/12/2014 12/11/2014 18/11/2014 969
TK 08/12/2014 09/12/2014 19/11/2014 02/12/2014 1603
TK 10/12/2014 06/02/2015 16/02/2015 06/03/2015 18108
TK 10/12/2014 16/12/2014 09/03/2015 11/03/2015 4573
我复制了
10/12/2014 06/02/2015 16/02/2015 06/03/2015
10/12/2014 16/12/2014 09/03/2015 11/03/2015
每一组中的一对日期应该与其他范围相匹配,但事实并非如此
TX
Ĵ
答案 0 :(得分:0)
如果您的错误是#N/A
,那么我怀疑您没有正确调整ROW(...)
功能。 ROW
函数返回其他范围内的位置,并且必须具有相同的大小(IOW 行数),尽管它不一定是相同的行。如果您使用与其他范围相同的行号,您将最终得到工作表上的行。如果您希望在数据块中看到位置,那么ROW
必须从 1 开始,并且必须缩短为与其他范围一样的确切行数。
$A$2:$A$350, $E$2:$E$350
等每个都有349行(含),但ROW($1:$350)
有350行(含),这导致#N/A
。您需要使用ROW($1:$349)
。另一个(更抽象的)示例是从第10行或$A$10:$A$82
开始的73行数据块。要在数据块中找到位置,您可以使用ROW($1:$73)
。如果您打算将其用作伪MATCH
函数,则需要对ROW
函数进行整形以匹配从1开始的数据块中的行数。
我不知道你是否需要350行,但这应该展示扩展行集上的方法。
=SUMPRODUCT(ROW($1:$350)*(A2=$A$2:$A$351)*((B2<=$E$2:$E$351)*(C2>=$D$2:$D$351)+(D2<=$C$2:$C$351)*(E2>=$B$2:$B$351)))