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)
使用 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)