Excel:多个 MATCH 条件(带有 IF)

Excel:多个 MATCH 条件(带有 IF)

在此处输入图片描述

我需要按以下方式计算表 3 中每一行的总体得分:

  1. 从中取出Round数字和名称,并找到与两者匹配的相应行。取值。(例如,对于 的第 5 行,它是 的第三行。)但是,如果 Pair 列在 列中,则取 +/- 符号反转的分数。(例如,对于 的第 3 行,它将是 的第一行,但我们得到的值应为。)我们称之为PairTable3Table1ScoreTable3Table1Pair2Table3Table1-5值1

  2. Round将行号 (from Table3) 与Round数字 from进行匹配Table2并获取Score Average值。我们称之为值2

  3. Overall Score行的 是Value1 - Value2

例如:对于第三行:B1 在第 3 行的总得分为:-5-(-1.25)=-3.75

我如何组合多个 MATCH 条件并同时处理 IF 条件?

答案1

MATCH()仅使用和无法完成此操作IF()。您需要使用包含数组的公式。

工作表截图

在范围内输入以下公式K3:K26

=SUMPRODUCT(Table1[Score]*(Table3[[#This Row],[Round]]=Table1[Round])*(Table3[[#This Row],[Pair]]=Table1[Pair1])-Table1[Score]*(Table3[[#This Row],[Round]]=Table1[Round])*(Table3[[#This Row],[Pair]]=Table1[Pair2]))-INDEX(Table2[Score Average],MATCH(Table3[[#This Row],[Round]],Table2[Round],0))

上述公式适用于 Excel 2007+。以下更易于阅读的版本适用于 Excel 2010+:

=SUMPRODUCT(Table1[Score]*([@[Round]]=Table1[Round])*([@[Pair]]=Table1[Pair1])-Table1[Score]*([@[Round]]=Table1[Round])*([@[Pair]]=Table1[Pair2]))-INDEX(Table2[Score Average],MATCH([@[Round]],Table2[Round],0))

美化后的公式如下:

=
SUMPRODUCT(
  Table1[Score]*([@[Round]]=Table1[Round])*([@[Pair]]=Table1[Pair1])
  -Table1[Score]*([@[Round]]=Table1[Round])*([@[Pair]]=Table1[Pair2])
  )
-INDEX(Table2[Score Average],MATCH([@[Round]],Table2[Round],0))

相关内容