Я пытаюсь сравнить ячейку с 3 возможными результатами в гонке. Если ячейка равна значению в первой ячейке, они получают 5 очков, если ячейка равна значению во второй ячейке, они получают 3 очка, если ячейка равна значению в третьей ячейке, они получают 1 очко. Если ячейка не соответствует ни одной из трех возможных ячеек, они получают 0 очков. Я пробовал использовать нижеприведенное, но это не сработало
=IF(B4=$B$38,5,0)+OR(B4=B$39,3,0)+OR(B4=$B$40,1,0)
решение1
Используйте ИНДЕКС(,ПОИСКПОЗ())
=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
. ИНДЕКС и ВЫБОР тогда вернут третий в массиве вариантов. Математика вернет 17-3*2
Если вы хотите использовать IF, то вы можете вложить 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)