Как использовать функцию Excel Switch для сравнения с диапазоном значений

Как использовать функцию Excel Switch для сравнения с диапазоном значений

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

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

Я попробовал это:

=SWITCH(MONTH(44562);{1;2;3};"T1";{4;5;6};"T2";{7;8;9};"T3";{10;11;12};"T4")

Но функция сливается для каждого элемента массива, и сравнение выполняется по уровню массива:

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

Может быть, я подхожу к этому вопросу не с той стороны, но мне все равно хотелось бы узнать, возможно ли как-то такое использование SWITCH. Заранее спасибо.


Ответы :

Тот, что от Reddy Lutonadio, очень гибкий для списка отдельных значений. Это тот, который я принял.

Вариант Рона Розенфельда очень компактен, эффективен, может работать с действительными числами, но списки должны иметь одинаковую длину.

Мое мнение: используйте IFS для более сложных ситуаций (и, возможно, добавьте функцию LET).

решение1

Вы можете попробовать комбинацию функций LET, SWITCH, FILTER, NOTи ISERROR, как показано в формуле ниже.

=LET(x,SWITCH(MONTH(F1),{1,2,3},"T1",{4,5,6},"T2",{7,8,9},"T3",{10,11,12},"T4"),FILTER(x,NOT(ISERROR(x))))
  • Функция LET: позволяет вычислить x(что является формулой SWITCH) только один раз.
  • Функции NOT (ISERROR): возвращают строки, не содержащие ошибок.
  • Функция ФИЛЬТР: возвращает единственное правильное значение.

введите описание изображения здесь

решение2

Simpler может быть недостаточно гибким для ваших нужд. Но чтобы вернуть тот же результат, используйте SWITCH:

=SWITCH(INT((MONTH(A1)-1)/3)+1,1,"T1",2,"T2",3,"T3",4,"T4")

Тот же результат можно получить с помощью более простых формул:

=TEXT(INT((MONTH(A1)-1)/3)+1,"\T0")    
=CHOOSE(INT((MONTH(A1)-1)/3)+1,"T1","T2","T3","T4")

Связанный контент