将 1 个单元格与 Excel 中的 3 个其他单元格进行比较

0 microsoft-excel-2007 worksheet-function microsoft-excel microsoft-excel-2010

我正在尝试将一个单元格与比赛中的 3 个可能结果进行比较。如果该单元格等于第一个单元格中的值,则获得 5 分,如果该单元格等于第二个单元格中的值,则获得 3 分,如果该单元格等于第三个单元格中的值,则获得 1 分。如果该单元格与三个可能的单元格中的任何一个都不匹配,则他们得到 0 分。我试过使用下面的但没有用

=IF(B4=$B$38,5,0)+OR(B4=B$39,3,0)+OR(B4=$B$40,1,0)
Run Code Online (Sandbox Code Playgroud)

Sco*_*ner 5

使用 INDEX(,MATCH())

=IFERROR(INDEX({5,3,1},MATCH(B4,B$38:B$40,0)),0)
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用CHOOSE:

=IFERROR(CHOOSE(MATCH(B4,B$38:B$40,0),5,3,1),0)
Run Code Online (Sandbox Code Playgroud)

或者只是数学:

=IFERROR(7-MATCH(B4,B$38:B$40,0)*2,0)
Run Code Online (Sandbox Code Playgroud)

MATCH 的关键在于它返回我们可以与 INDEX,CHOOSE 一起使用的相对位置,或者只是用它做数学运算。

因此,如果它等于 B40 中的值,它将返回3. 然后 INDEX 和 CHOOSE 将返回选项数组中的第三个。数学将返回 17-3*2

如果您想使用 IF,那么您可以通过将下一个放入前一个的 false 来嵌套 IF。

=IF(B4=$B$38,5,IF(B4=B$39,3,IF(B4=B$40,1,0)))
Run Code Online (Sandbox Code Playgroud)

或者,如果您有 Office 365 Excel,则可以使用 IFS:

=IFERROR(IFS(B4=$B$38,5,B4=B$39,3,B4=B$40,1),0)
Run Code Online (Sandbox Code Playgroud)