#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)