我有 2 个数据表,一个只有 5 列,第二个是 100 列,但简单来说,它们具有以下格式。两者都有数百行长。
表1(按升序排序,所有列)
A B C D E
1 Date TeamF Trans Name TeamT
2 date1 teamF1 trans1 name1 teamT1
3 date2 teamF2 trans2 name2 teamT2
4 date3 teamF3 trans3 name3 teamT3
5 date4 teamF4 trans4 name4 teamT4
6 date5 teamF5 trans5 name5 teamT5
表2(未按任何方式排序)
A B C D E F G ,etc.
1 Team Game Date Opp NameA NameB NameC ,etc...
2 team1 game1 date1 opp1 statsA1 statsB1 statsC1 ,etc...
3 team2 game2 date2 opp2 statsA2 statsB2 statsC2 ,etc...
4 team3 game3 date3 opp3 statsA3 statsB3 statsC3 ,etc...
5 team4 game4 date4 opp4 statsA4 statsB4 statsC4 ,etc...
6 team5 game5 date5 opp5 statsA5 statsB5 statsC5 ,etc...
我一直在尝试使INDEX/MATCH
我通常使用的公式(如下)更复杂一些,以避免我在数据处理中遇到的一些错误。我正在尝试TeamT
从表 1 中提取名称并填充stats
表 2、E 列及以后的行。我这样做是基于
Names
表 1 列 D 和表 2 行 1 之间的匹配Dates
在表 1 中 <=Dates
在表 2 列 C 中具有以下公式
我现在的公式=INDEX(Table1!$A:$E,MATCH(1,(Table1!$D:$D=Table2!E$1)*(Table1!$A:$A<=Table2!$C2),0),5)
正如您可能看到的,如果表 1 中有多个日期小于 C2,我只会得到第一个。我真正想要的是最大的(最新的)。我一直在玩MAX/IF
语句和INDEX/MATCH/IF
语句,但无法得到正确的结果。这些失败尝试的一些示例如下
示例 1
=MAX(IF(Table1!$D:$D=Table2!E$1,IF(Table1!$A:$A<=Table2!$C2,Table1!$E:$E)))
示例 2
=INDEX(Table1!$E:$E,MATCH(MAX(IF(Table1!$D:$D=Table2!E$1,Table1!$A:$A<=Table2!$C2)),IF(Table1!$D:$D=Table2!E$1,Table1!$A:$A<=Table2!$C2),0))
任何帮助,将不胜感激。我已经尝试了很多我找到的解决方案,但我仍然在这个问题上拉扯我的头发。
我还有第二个公式变体,其中我匹配基于Dates
表 1 中的日期在表 2 列 C 中 >= Dates
。在这种情况下,我想要最小匹配(最旧的日期)。我假设我只是使用MIN
而不是MAX
这个?