Excel从第二个表中的多行获取最大值

我有两张桌子

第一桌:

ML_ID PID Task Name Start Color 1 PID1 One 01.01.2016 R 2 PID2,PID3 Two #N/AG 3 PID3 Three 01.03.2016 A 4 PID4 Four 01.04.2016 R 5 PID5 Five 01.05.2016 G 6 PID6 Six 01.06.2016 A 7 PID7 Seven 01.07.2016 R 8 PID8 Eight 01.08.2016 G 9 PID9 Nine 01.10.2016 A 10 PID10 Ten 01.09.2016 R 

第二张桌子

 PID Dates PID1 01.01.2016 PID2 01.02.2016 PID3 01.03.2016 PID4 01.04.2016 PID5 01.05.2016 PID6 01.06.2016 PID7 01.07.2016 PID8 01.08.2016 PID10 01.09.2016 PID9 01.10.2016 

对于ML_ID 2,我想查找第二个表上的查找PID2和PID2的最大date。

我用IND(INDEX(MATCH()))与MAX(IF())结合做了几次尝试。

如果有更好的方法,我仍然可以影响数据结构。 但是,在第一张桌子上,我只能每ML_ID有一行!

我想棘手的部分是,我需要一个或几个查找 – 取决于第一个表中的PID的数量。

对此有什么想法?

修正了一个BUG。 感谢Adam! 这可能适合你。 从这开始:

 =IF(ISERROR(FIND(Table2_PIDs&",","PID2,PID3"&",")),0,Table2_Dates) 

作为数组公式(CTRL-SHIFT-ENTER)input。 [注意:&强制searchfind完全匹配的结果 – search“PID1”,不会错误地find“PID10”。]这样一次一个地testingTable2_PID的成员,看它们是否出现在string“PID2,PID3”。 如果没有find,FIND函数将返回#VALUE,该ISERROR将捕获并导致IF返回一个零。 如果find,ISERROR将返回False,所以IF语句的结果将是Table2_Dates的相应成员。 所以函数将会返回一个数组{0; 01.02.2016; 01.03.2016; 0; 0; 0; 0; 0; 0; 0}。

现在用MAX包装上一个公式,以返回任何匹配的PID的最新date:

 =MAX(IF(ISERROR(FIND(Table2_PIDs&",","PID2,PID3"&",")),0,Table2_Dates)) 

再次作为数组公式input。

最后一步是将它连接到ML_ID,我们通过用表1中ML_ID的VLOOKUP结果replacestring文字“PID2,PID3”来实现:

 =MAX(IF(ISERROR(FIND(Table2_PIDs&",",VLOOKUP(ML_ID,Table1,2,FALSE)&",")),0,Table2_Dates)) 

作为数组公式input。 希望有所帮助。