Какова формула Excel, основанная на значении ячейки между определенным диапазоном чисел? - PullRequest
0 голосов
/ 29 декабря 2018

Я использую Excel 2016, и мне нужна формула для ячейки W2, основанная на значении ячейки C2, со следующей логикой:

if cell C2 is between 1 and 10, then it should output "R",
if cell C2 is between 11 and 20, then "B",
if cell C2 is between 21 and 30, then "Y",
if cell C2 is between 31 and 40, then, "G"

Я возиться с IF (И ...) формула, но я не понимаю ее правильно.

Это то, что у меня есть сейчас:

=IF(C2<=10,"R",IF(AND(C2>10,C2<=20,"B"),IF(AND(C2>20,C2<=30),"Y",IF(AND(C2>30,C2<=40),"G","!"))))

Ответы [ 5 ]

0 голосов
/ 29 декабря 2018

Short:

=CHOOSE(ROUNDUP(C2/10,0),"R","B","Y","G")
0 голосов
/ 29 декабря 2018

Ваша первоначальная формула страдает от общей проблемы: оператор IF 'короткие замыкания';то есть, если одно из вложенных условий IF выполнено, дальнейшие вложенные вычисления не выполняются.Если первый IF пропущен, то второй IF не должен проверять, больше ли C2, чем 10;на самом деле, оно имеет , чтобы быть> 10, иначе второй IF никогда бы не был достигнут.Эта логика прослеживается до оставшихся вложенных IF.

=IF(C2<=10, "R", IF(C2<=20, "B" , IF(C2<=30, "Y", IF(C2<=40, "G", "!"))))

Обратите внимание, что ваш повествовательный статус ', если ячейка C2 находится в диапазоне от 1 до 10, тогда он должен вывести «R»' , но вашформула оценивает более простое 'меньше или равно 10' , которое также охватывает ноль и отрицательные числа.

Вы также можете «жестко закодировать» поиск.

=LOOKUP(C2, {-1E+99,1,11,21,31,41}, {"!","R","B","Y","G","!"})
0 голосов
/ 29 декабря 2018

Классический ЕСЛИ И

=IF(C2<=10,"R",IF(AND(C2>10,C2<=20),"B",IF(AND(C2>20,C2<=30),"Y",IF(AND(C2>30,C2<=40),"G","!"))))
0 голосов
/ 29 декабря 2018

Я думаю, что вы должны сделать что-то подобное вместо этого (например, используя VLOOKUP ):

=VLOOKUP(ROUNDUP(C2, -1), $C$4:$D$7, 2, FALSE)

Где

enter image description here

, который избегает использования глубоко вложенных операторов if-else.Я имею в виду, что вы собираетесь делать, если вам нужно сделать это для 20 букв?Вложенный оператор if-else с 20 уровнями?Нет.

0 голосов
/ 29 декабря 2018

Это должно сработать:

=IF(C2<=10,"R",IF(AND(C2>10,C2<=20),"B",IF(AND(C2>20,C2<=30),"Y",IF(AND(C2>30,C2<=40),"G","!"))))

Вы всегда можете перепроверить функции, дважды щелкнув по подсказкам функций, и посмотреть, правильно ли вы использовали все скобки:

enter image description here

...