#excel #excel-formula
#excel #excel-формула
Вопрос:
Я пытался заставить эту формулу работать, используя операторы IF и AND в Excel. Однако я продолжаю получать ошибку слишком много аргументов. Я проверил наличие открытых и закрытых фигурных скобок. Может кто-нибудь исправить формулу, если что-то не так.
Однострочная версия
=IF(AND(F2>=190, F2<=194),30,0,IF(AND(F2>=196, F2<=200),30,0,IF(AND(F2>=185, F2<=189),20,0,IF(AND(F2>=201, F2<=205),20,0,IF(AND(F2>=175, F2<=184),10,0,IF(AND(F2>=206, F2<=215),10,0, IF(EXACT(F2,Sheet2!$A4),50,0)))))))
Многострочная версия
=IF(
AND(F2>=190, F2<=194),
30,
0,
IF(
AND(F2>=196, F2<=200),
30,
0,
IF(
AND(F2>=185, F2<=189),
20,
0,
IF(
AND(F2>=201, F2<=205),
20,
0,
IF(
AND(F2>=175, F2<=184),
10,
0,
IF(
AND(F2>=206, F2<=215),
10,
0,
IF(
EXACT(F2, Sheet2!$A4),
50,
0)
)
)
)
)
)
)
Комментарии:
1. У вас слишком много аргументов в вашем
IF
s, вам нужно удалить все, кроме последнего,0
2. Кстати, более простая формула:
=CHOOSE(MATCH(F2,{0,175,185,190,195,196,201,206,216}),0,10,20,30,50,30,20,10,0)
3. на самом деле используйте:
=CHOOSE(MATCH(ABS(195-A1),{0,1,6,11,21}),50,30,20,10,0)
4. @IlikeExcelverymuch это просто короче и лаконичнее с шаблоном.
5. Продолжайте. Эмпирическое правило для меня таково: если я сделаю это комментарием, если вы укажете, где вы его получили, вы можете включить его в ответ. @IlikeExcelverymuch
Ответ №1:
Похоже, вы пытаетесь сказать: «Если это находится между этими двумя числами, то это, в противном случае, если это находится между этими двумя числами, то это ….»
На самом деле вы сказали: «Если это находится между этими двумя числами, то это, в противном случае 0 и в то же время, если это находится между этими двумя числами, то это ….»
В принципе, вам нужно либо:
- Замените каждый экземпляр «, 0,» просто «,» (например, так)
=IF(AND(F2>=190, F2<=194),30,IF(AND(F2>=196, F2<=200),30,IF(AND(F2>=185, F2<=189),20,IF(AND(F2>=201, F2<=205),20,IF(AND(F2>=175, F2<=184),10,IF(AND(F2>=206, F2<=215),10, IF(EXACT(F2,Sheet2!$A4),50,0)))))))
или
- Разбейте их на отдельные функции IF() и добавьте их вместе (например, так)
=IF(AND(F2>=190,F2<=194),30,0) IF(AND(F2>=196,F2<=200),30,0) IF(AND(F2>=185,F2<=189),20,0) IF(AND(F2>=201,F2<=205),20,0) IF(AND(F2>=175,F2<=184),10,0) IF(AND(F2>=206,F2<=215),10,0) IF(EXACT(F2,Sheet2!$A4),50,0)
Обновлено, чтобы включить решение, сделанное @Scott Craner
=CHOOSE(MATCH(ABS(195-F2),{0,1,6,11,21}),50,30,20,10,0)
Match() возвращает число, соответствующее месту, где значение встречается в диапазоне (поэтому 1-е равно 1, 2-е равно 2 и т. Д.). Если это число отсутствует, то оно возвращает наибольшее число, которое меньше значения, ВЫБЕРИТЕ () делает противоположное MATCH(), ононаходит и возвращает значение, соответствующее диапазону, просматривая, где оно встречается (если у вас есть диапазон {«a», «b»,»c»} и запрашивается 3-й, он вернет «C».
ABS() превращает отрицательные значения в положительные и оставляет положительные значения неизменными.