Табличное If-утверждение с выдачей NaN - PullRequest
0 голосов
/ 19 марта 2019

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

IF(FIND('1',{Functional response}),-4,
IF(FIND('2',{Functional response}),-2,
IF(FIND('3',{Functional response}),0,
IF(FIND('4',{Functional response}),2,
IF(FIND('5',{Functional response}),4,"")))))

1 Ответ

1 голос
/ 19 марта 2019

Предполагая, что функциональный ответ может хранить только числа от 1 до 5 в виде строки, простой способ в Excel - сначала преобразовать строку в число, а затем использовать функцию выбора для присвоения значения.это работает, поскольку числа являются последовательными целыми числами.Предполагая, что ячейка K2 имеет значение Functional response, ваша формула может быть такой:

=CHOOSE(--K2,-4,-2,0,2,4)
=CHOOSE(K2+0,-4,-2,0,2,4)
=CHOOSE(K2-0,-4,-2,0,2,4)
=CHOOSE(K2*1,-4,-2,0,2,4)
=CHOOSE(K2/1,-4,-2,0,2,4)

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

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

В качестве альтернативы вы можете просто выполнить прямое математическое преобразование числа, хранящегося в виде строки в K2, используя следующую формулу:

=(K2-3)*2

И, как мой последний вариант, вы можете построить таблицу и использовать VLOOKUP или INDEX/MATCH.

POC

ПРИМЕЧАНИЕ:Если B2: B6 хранится в виде строк вместо чисел, необходимо будет использовать K2 вместо --K2.

...