在表中查找名称,并根据找到该名称的最新位置从下 7 列检索分数

在表中查找名称,并根据找到该名称的最新位置从下 7 列检索分数

这是我正在处理的工作表的图片

在此处输入图片描述

对于 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)

作为数组公式,我们需要注意两件事:

  1. 输入数组公式时,退出编辑模式时必须使用 Ctrl-Shift-Enter 而不是 Enter 进行确认。如果操作正确,Excel 会将{}公式放在一边。

  2. 数组公式按指数计算,因此我们希望将引用限制为仅包含数据的单元格。在上面的公式中,我们使用将$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$3INDEX(E:E,MATCH("ZZZ",E:E))或者只使用这两列的表引用。但无论哪种方式,引用都需要限制在数据范围内,而不是整个列。

相关内容