Я уверен, что это невероятно простой ответ, но я часами просматривал эту формулу и не могу понять ошибку. По сути, я хочу, чтобы формула выполнялась, если F3 = «Первокурсник», затем проверьте, не является ли U3 пустым, пройдите N3 и введите значение, если U3 не пусто, пройдите U3. Затем, если F3! = «Первокурсник» и V3 пусто, пройдите S3, если V3 не пусто, используйте V3. Может быть, есть менее сложный способ сделать это, но я не уверен.
=IF(ISBLANK($U3)=TRUE,IF($F3="Freshman",IF(N3>=Lists!$H$7,3,IF(N3>=Lists!$H$6,2.5,IF(N3>=Lists!$H$5,2,IF(N3>=Lists!$H$4,1.5,IF(N3>=Lists!$H$3,1,IF(N3>=Lists!$H$2,0.5,IF(N3>Lists!$H$8,0,""))))))),IF(U3>=Lists!$I$7,3,IF(U3>=Lists!$I$6,2.5,IF(U3>=Lists!$I$5,2,IF(U3>=Lists!$I$4,1.5,IF(U3>=Lists!$I$3,1,IF(U3>=Lists!$I$2,0.5,IF(U3>=Lists!$I$8,"")))))))),IF(ISBLANK($V3)=TRUE,IF(S3>=Lists!$H$7,3,IF((S3>=Lists!$H$6,2.5,IF(S3>=Lists!$H$4,1.5,IF(S3>=Lists!$H$3,1,IF(S3>=Lists!$H$2,0.5,IF(S3>Lists!$H$8,0,"")))))),IF(V3>=Lists!$I$7,3,IF(V3>=Lists!$I$6,2.5,IF(V3>=Lists!$I$5,2,IF(V3>=Lists!$I$4,1.5,IF(V3>=Lists!$I$3,1,IF(V3>=Lists!$I$2,0.5,IF(V3>=Lists!$I$8,0,"")))))))))
Я знаю, что есть много вложенных if, что, вероятно, и сбивает меня с толку. Если кто-то может помочь, это будет высоко ценится.
microsoft-excel
worksheet-function
user3295539
источник
источник
Ответы:
Я положил вашу формулу в блокнот. Затем для каждого условия я начал новую строку и использовал вкладку, чтобы отсортировать различные функции IF. Это облегчает отладку вашей проблемы. Я не знаю, как загрузить файл, к сожалению. Я обнаружил, что последнее ")" слишком много и что в формуле есть некоторые несоответствия.
Например, во втором листинге последний оператор заканчивается S3 & gt; = lists $ I $ 8, ""), тогда как в других листингах он заканчивается S3 & gt; = lists $ I $ 8,0, "").
В третьем листинге IF (U3 & gt; = Lists! $ H $ 4,2 отсутствует.
Если вы хотите, я могу отправить вам файл, чтобы увидеть для себя
источник
Вот оно в кодированной записи
источник
IF(U3>=Lists!$H$5
состояниеIF(Lists!$H$8,0,"")
или жеIF(U3>=Lists!$H$8,0,"")
?IF(N3>Lists!$H$8,0,"")
или жеIF(N3>=Lists!$H$8,0,"")
?Вот альтернатива: уменьшить вложенность.
Я бы порекомендовал вспомогательные столбцы, но это не обязательно. С помощью вспомогательных столбцов формулы будут выглядеть следующим образом:
Кроме того, если у вас есть место в ваших данных, я бы порекомендовал добавить значения
0.5 to 3 step 0.5
В диапазонеJ2:J7
, Это может облегчить обслуживание, так как вы можете изменить значения - если есть необходимость - не касаясь формул. Если вы сделали, формулы могут быть:По всей вероятности, они могут быть улучшены в дальнейшем. Я надеюсь, что я хотя бы дал вам идею, хотя.
источник