Я пытаюсь сравнить ячейку с 3 возможными результатами в гонке. Если ячейка равна значению в первой ячейке, они получают 5 баллов, если ячейка равна значению во второй ячейке, они получают 3 балла, если ячейка равна значению в третьей ячейке, они получают 1 балл. Если ячейка не соответствует ни одной из трех возможных ячеек, они получают 0 очков. Я пытался использовать ниже, но это не сработало

=IF(B4=$B$38,5,0)+OR(B4=B$39,3,0)+OR(B4=$B$40,1,0)

2 ответа2

5

Используйте INDEX(, MATCH())

=IFERROR(INDEX({5,3,1},MATCH(B4,B$38:B$40,0)),0)

Другой метод заключается в использовании CHOOSE:

=IFERROR(CHOOSE(MATCH(B4,B$38:B$40,0),5,3,1),0)

Или просто математика:

=IFERROR(7-MATCH(B4,B$38:B$40,0)*2,0)

Ключ с MATCH заключается в том, что он возвращает относительную позицию, которую мы можем использовать с INDEX, CHOOSE или просто выполнять математические расчеты с ним.

Поэтому, если оно равно значению в B40, оно вернет 3 . INDEX и CHOOSE затем вернут третий в массиве вариантов. Математика вернется 1 7-3*2

Если вы хотите использовать IF, тогда вы можете вкладывать IF, помещая следующее в false предыдущего.

=IF(B4=$B$38,5,IF(B4=B$39,3,IF(B4=B$40,1,0)))

Или, если у вас Office 365 Excel, вы можете использовать IFS:

=IFERROR(IFS(B4=$B$38,5,B4=B$39,3,B4=B$40,1),0)
2

Ответ другого Скотта в порядке, но то, что у вас было, близко к работе.  Если вы абсолютно уверены, что три базовых значения различны, вы можете сделать

=IF(B4=$B$38,5,0)+IF(B4=B$39,3,0)+IF(B4=$B$40,1,0)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .