IFS с более чем тремя условиями

#javascript #jquery #arrays #excel #performance

#javascript #jquery #массивы #excel #Производительность

Вопрос:

Эта формула выглядит правильной для меня, но она не сработала для меня,

=IFS(M2=0,"PAR0",M2>0,"PAR1",M2>7,"PAR7",M2>14,"PAR14",M2>30,"PAR30",M2>60,"PAR60",M2>90,"PAR90")

Я ожидаю, что он вернет значение (ы), но оно дает мне только 0 и 1, в чем может быть проблема

Комментарии:

1. Пожалуйста, предоставьте больше контекста. Пожалуйста, также отформатируйте код, чтобы сделать его более читаемым.

2. Создайте таблицу данных и используйте vlookup(). Легче просматривать и редактировать.

Ответ №1:

Проблема в том, что если значение равно 0, то оно останавливается на первом найденном совпадении, которое равно PAR0, а если значение больше 0, то оно останавливается на втором условии и выводит PAR1. Порядок в условии IFS очень важен. Вам нужно изменить логические условия, начиная с самого высокого, а затем переходя к самому низкому … что-то вроде приведенного ниже. Ниже это H2, но вы можете захотеть изменить его на M2.

 =IFS(H2>90,"PAR90",H2>60,"PAR60",H2>30,"PAR30",H2>14,"PAR14",H2>7,"PAR7",H2>0,"PAR1",H2=0,"PAR0")
 

Пример данных и выходных данных, как на изображении ниже.
введите описание изображения здесь

Ответ №2:

Итак, используя vlookup:

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

Таблицей данных легко управлять.

Vlookup получает результат из столбца 2 таблицы данных.

C2 — это функция в B2, которую перетаскивают вниз для других примеров.

Здесь это как текст:

 VLOOKUP(A2,D$3:E$9,2,1)
 

Ответ №3:

Это задание для ИНДЕКСА / СОПОСТАВЛЕНИЯ.

 ="PAR"amp;INDEX({0,1,7,14,30,60,90},MATCH(M2,{0,1,7,14,30,60,90},1))
 

Первый массив от 0 до 90 является индексом. Функция сопоставления возвращает вычисление M2 относительно своего собственного массива. Формула возвращает n-е значение из индекса, где n — результат функции СОПОСТАВЛЕНИЯ. Вы можете протестировать последнее отдельно.

Оценка основана на => . Поэтому, если M2 содержит ровно 7, будет возвращен PAR7. 6 возвращает параметр PAR1. Если вам нужно, чтобы PAR7 запускался только для чисел выше 7, измените массив для функции СОПОСТАВЛЕНИЯ следующим образом.

 MATCH(M2,{0,1,8,15,31,61,91},1)