Понимание выбора функции - PullRequest
       0

Понимание выбора функции

0 голосов
/ 24 сентября 2019

Недавно я наткнулся на одну функцию Excel под названием «Выбрать», которая упоминалась как альтернатива для вложенной функции if.В Интернете я видел несколько примеров, таких как приведенное ниже сравнение двух вложенных функций if и select.

Для заданных критериев

Result          Score
Poor            0 - 50
Satisfactory    51 - 100
Good            101 - 150
Excellent       over 151

Вложенное условие if будет похоже на

=IF(B2>=151, "Excellent", IF(B2>=101, "Good", IF(B2>=51, "Satisfactory", "Poor")))

и для той же ситуации функция выбора будет

=CHOOSE((B2>0) + (B2>=51) + (B2>=101) + (B2>=151), "Poor", "Satisfactory", "Good", "Excellent")

Я понимаю, что функция выбора работает на основе номера индекса или номера позиции из заданного списка значений (истинные условия).

Я просто думаю, что если я добавлю еще одну категорию, как показано в таблице ниже, то есть,

Result          Score
Not Applicable   <0
Poor            0 - 50
Satisfactory    51 - 100
Good            101 - 150
Excellent       over 151

Если я дам формулу, подобную этой, выберите,

=CHOOSE((B2<0)+(B2>0) + (B2>=51) + (B2>=101) + (B2>=151), "Not Applicable", "Poor", "Satisfactory", "Good", "Excellent")

Тем не менее, я могу получить ошибку для таких значений, как, например, B2 = 21

. Это просто для целей обучения, и было бы здорово, если бы кто-нибудь помог мне разобраться с этими ситуациями при использовании опции выбора.

1 Ответ

0 голосов
/ 24 сентября 2019

Попробуйте следующее:

=IFERROR(CHOOSE(($D1>150) + ($D1>100) + ($D1>50) + ($D1>0), "Poor", "Satisfactory", "Good", "Excellent"),"Not Applicable")

Solution

Вы можете использовать IFERROR для возврата Not Applicable для отрицательного результата.Если ячейка пуста, она будет рассматриваться как 0, а формула вернет Poor.

Если вы не хотите показывать poor для пустой ячейки, вы можете использовать вложенную ВЫБЕРИТЕ функцию, как показано ниже, чтобы показать желаемый результат, такой как пробел "" в следующей формуле:

=CHOOSE(IF(LEN($D1)=0,1,2),"",IFERROR(CHOOSE(($D1>150) + ($D1>100) + ($D1>50) + ($D1>=0), "Poor", "Satisfactory", "Good", "Excellent"),"Not Applicable"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...