这是我正在处理的工作表的图片
对于 T2:TI 列,我尝试创建一个公式,用于在表 1 A1:O 中搜索玩家玩过的最后一场比赛并检索他们的得分,该得分将始终位于胜者和败者之后 7 列,如果未找到最后一场比赛,则 T 列将等于该玩家的 W 列。如果我的问题不清楚或您看不到我的照片,请告诉我。目前,我正在尝试这样的公式
=Index(Table1,Match(Q2,D:E,0),0),7)
在表 1 A1:O 的最新行中查找 Q2:Q 中的名称,一旦找到该名称,则向下查找 7 列并检索分数,如果没有找到名称或分数,T 将等于在 W 中找到的该玩家的起始分数。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A | D | E | M | N |
--------------------------------------------------------------------------------
Match ID | Winner | Loser | WinnerOutcome | LoserOutcome |
--------------------------------------------------------------------------------
1 | Kamau | Rodknee | 100 | 150 |
--------------------------------------------------------------------------------
2 | Rodknee | Kamau | 200 | 50 |
--------------------------------------------------------------------------------
Table2
------------------------------------------------
Q | T | W |
------------------------------------------------
Players | Points |Starter Points |
------------------------------------------------
Kamau | ? | 50 |
------------------------------------------------
Rodknee | ? | 200 |
------------------------------------------------
Jim | ? | 50 |
-------------------------------------------------
答案1
因此,我将创建标准公式的辅助列,以便按顺序将两者组合在一起。我将其放在 Y2 中:
=INDEX(D:E,QUOTIENT(ROW(1:1)-1,2)+2,MOD(ROW(1:1)-1,2)+1)
在 Z2 中也是如此:
=INDEX(M:N,QUOTIENT(ROW(1:1)-1,2)+2,MOD(ROW(1:1)-1,2)+1)
并尽可能向下复制,确保其足够覆盖所有可能长度的数据。
然后在 S2 中我们使用这个数组公式:
=IFERROR(INDEX($Z$2:INDEX(Z:Z,MATCH("ZZZ",Y:Y)),MATCH(2,IF($Y$2:INDEX(Y:Y,MATCH("ZZZ",Y:Y))=P2,1))),V2)
作为数组公式,我们需要注意两件事:
输入数组公式时,退出编辑模式时必须使用 Ctrl-Shift-Enter 而不是 Enter 进行确认。如果操作正确,Excel 会将
{}
公式放在一边。数组公式按指数计算,因此我们希望将引用限制为仅包含数据的单元格。在上面的公式中,我们使用将
$Z$2:INDEX(Z:Z,MATCH("ZZZ",Y:Y))
第一个单元格设置为 Z2,将最后一个单元格设置为 Z 中最后一个单元格,该单元格位于 Y 中姓氏所在的行中。
如果你真的想要一个公式,那么这个就可以了:
=IFERROR(IF(INDEX(D:D,IF(MAX(INDEX((ROW($D$2:$E$3))*($D$2:$E$3=P2),))=0,-1,MAX(INDEX((ROW($D$2:$E$3))*($D$2:$E$3=P2),))))=P2,INDEX(M:M,MAX(INDEX((ROW($D$2:$E$3))*($D$2:$E$3=P2),))),INDEX(N:N,MAX(INDEX((ROW($D$2:$E$3))*($D$2:$E$3=P2),)))),V2)
或者这个也行:
=IFERROR(INDEX(M:N,MAX(INDEX((ROW($D$2:$E$3))*($D$2:$E$3=P2),)),IF(INDEX(D:D,IF(MAX(INDEX((ROW($D$2:$E$3))*($D$2:$E$3=P2),))=0,-1,MAX(INDEX((ROW($D$2:$E$3))*($D$2:$E$3=P2),))))=P2,1,2)),V2)
虽然输入正常,但这些仍然是数组公式,并且需要$D$2:$E$3
是数据的范围。您可以用替换所有$E$3
,INDEX(E:E,MATCH("ZZZ",E:E))
或者只使用这两列的表引用。但无论哪种方式,引用都需要限制在数据范围内,而不是整个列。