在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的介绍了解更多信息。
祝你好运!