在Excel中查找多个列中的第n个事件

我有两列与团队名称和两列与相应的统计资料。 我需要通过2列,并find匹配球队名称的统计数据,他们需要按顺序。 VLOOKUP,MATCH和SEARCH似乎不适用于多列。 有谁知道这可以做到吗? 在这里输入图像说明

假设在您的图片中,“Home”标题位于单元格B2那么以下数组公式可以放入单元格H3:L7 (需要使用Ctrl + Shift + Enterinput数组公式)

 =IFERROR(OFFSET($D$1,-1+SMALL(IF(($B$3:$B$7=H$2)+($C$3:$C$7=H$2),ROW($B$3:$B$7),"X"),ROW()-ROW($2:$2)),--NOT((INDEX($B:$B,SMALL(IF(($B$3:$B$7=H$2)+($C$3:$C$7=H$2),ROW($B$3:$B$7),"X"),ROW()-ROW($2:$2)))=H$2))),"") 

让我把它分解…

  • 逻辑是: OFFSET(top_of_results,row_number_that_has_Nth_team_score,0_or_1_for_home_or_away)
  • 这是包装在一个IFERROR在哪里没有例如A队的第五个分数
  • 使用数组部分IF(($B$3:$B$7=H$2)+($C$3:$C$7=H$2),ROW($B$3:$B$7),"X"如果(使用+B或者C有一个匹配我们的球队头( H$2 )的值或者一个X
  • 使用SMALL(...,ROW()-ROW($2:$2))我们得到第N个最小的行,基于第1行在第3行,第2行在第4行等
  • --NOT((INDEX($B:$B,row_number_that_has_Nth_team_score-O)=H$2))这给家里0,家里1,我们检查列B,看看它是否匹配--NOT((INDEX($B:$B,row_number_that_has_Nth_team_score-O)=H$2))离开,这是用来抵消列

希望这是有道理的。 数组公式是非常强大的,如果有点混乱:-)我build议CPearson的介绍了解更多信息。

祝你好运!