INDEX MATCH获取重复名称的值

我有一个示例表与Sheet1中的以下数据与以下随机数据

 ------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 

然后我在Sheet2有另一张桌子

 ------A ----------------- B ----------------------C ------------------------D 1 --First--------------Last-----------------Start Date--------------End Date 2 --John--------------Smith--------------------------------------------------- 3---John--------------Smith--------------------------------------------------- 4---John--------------Smith--------------------------------------------------- 5---Abel--------------Jones--------------------------------------------------- 6---Abel--------------Jones--------------------------------------------------- 

我正在使用INDEX MATCH在两张纸之间传输数据。

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

使用Sheet1的开始date填充column C

 =INDEX(Sheet1!$D:$D, MATCH(1,INDEX((Sheet1!$A:$A=$A3)*(Sheet1!$B:$B=$B3),0),0)) 

并用结束date填充column D

问题是,当我执行这个INDEX MATCH函数时,对于一个重复的名字,它只会复制第一个值。 所以这个公式将粘贴08/08/2014到所有'约翰史密斯'开始dateSheet2 column C中。

我如何获得所有值,以便C2应该是08/08/2014C3应该是08/08/2014 08/11/2014C4应该是06/06/2014等。

一种解决办法是在两张表中插入一列,并用同名的实例“运行计数”。 例如,插入col C然后在C2input=IF(A2&B2 = A1&B1, C1+1, 1) 。 如果连接的名字和姓氏是新的,则从1开始计数,如果不是,则将先前的计数增加1。 所以你会有

 First Last Count by Person John Smith 1 John Smith 2 John Smith 3 Abel Jones 1 Abel Jones 2 George Washington 1 Thomas Jefferson 1 Thomas Jefferson 2 

然后,您可以将此列添加到您的MATCH()函数(并根据需要更改查找列)。

编辑:值得注意的是,这需要你的原始数据按名称sorting。

您可以将$ A:$ A的容忍范围缩小到$ Ax + 1:$ Ay,其中y =您的Excel表格的最后一行,x是此名称/姓氏以前出现的位置(您可以将其存储在某个虚拟列)。