优秀指数匹配 – 查找多个匹配

------A ----------------- B ----------------------C ------------------------D 1 --First--------------Last-----------------Start Date--------------End Date 2 --John--------------Smith--------------08/08/2014------------01/01/2015 3---John--------------Smith--------------08/11/2014------------17/11/2014 4---John--------------Smith--------------06/06/2014------------23/12/2014 5---Abel--------------Jones--------------14/05/2014------------29/04/2015 6---Abel--------------Jones--------------04/07/2014------------26/04/2015 

有时在我的电子表格中,我得到重复的名字。 例如上面的表格(随机数据)有3个约翰和2个阿贝尔。 这些名字是开始和结束date。 如果我的开始或结束date早于或晚于该名称的前一个input,我会通过做计算最长的范围(John Smith)

 =MAX($D2:$D4)-MIN($C2:$C4) 

这会给209天。
另外,我希望公式能够自动识别名称在范围内是否有重复,如果是,则检索date。 为了做到这一点,我执行一个INDEX MATCH函数如下。

  =INDEX(C:C, MATCH(1,INDEX((A:A=$A3)*(B:B=$B3),0),0)) 

这应该给08/08/2014。
那么我将这两个公式结合在一起来比较匹配的开始date和结束date来search名字和姓氏,以find最长的date范围。

 =MAX( (INDEX($C:$C, MATCH(1,INDEX(($A:$A=$A4)*($B:$B=$B4),0),0))) :$D4) - MIN( (INDEX($D:$D, MATCH(1,INDEX(($A:$A=$A4)*($B:$B=$B4),0),0))) :$C4) 

这又给了209。
我现在用这个公式得到的问题是,当INDEX MATCH函数通过名称列表扫描find重复的,如果是的话,它只会匹配第一个。 如果有多个重复,它将忽略它。 表中有3个约翰·史密斯,我想要公式检查所有重复之间的最长距离。 这是有道理的,这是可能的吗?

当使用数组公式时,我会更加手术地定义范围。 给定小数据集,这个数组公式给出了预期的结果:

 =MAX(IF(INDEX($A$2:$A$6&" "&$B$2:$B$6, 0) = A2&" "&B2, $D$2:$D$6)) - MIN(IF(INDEX($A$2:$A$6&" "&$B$2:$B$6, 0) = A2&" "&B2, $C$2:$C$6)) 

…用Control + Shift + Enter确认以激活arrays。