MS Excel: генерировать значение в зависимости от условий

#excel

#excel

Вопрос:

Я пытаюсь создать таблицу Excel. В котором я хочу указать 12 пар условий. Это означает, что я хочу указать два значения, и в зависимости от них он будет генерировать выходные данные.

Например:

 a1<  50 and b1<5 then it should print 100
a1>= 50 and a1<100 and b1<5 then it should print 200
a1>= 100 and a1<200 and b1<5 then it should print 300
a1>= 200 and a1<500 and b1<5 then it should print 400
  

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

 =if(AND(A1<=75,B1<=5),1.341,AND(A1>=76,B1<=5,A1<=150),1.341,AND(A1>=151,A1<=350,B1<=5),1.408,AND(A1>350,B1<=5),1.475)
  

Но это говорит о том, что я ввел слишком много аргументов для этой функции.

Кто-нибудь знает, где я ошибаюсь?

Ответ №1:

IF принимает только 3 аргумента: (condition, value if condition is true, value if condition is false) .

Таким образом, вы можете использовать вложенные IF s:

 =IF(AND(A1<50,B1<5),100,IF(AND(A1>=50,A1<100,B1<5),200,IF(.........)))
  

Но может быть проще сделать это так:

 =IF(B1<5,100*(A1<50) 200*AND(A1>=50,A1<100) 300*AND(A1>=100,A1<200) 400*AND(A1>=200,A1<500),"")
  

Этот второй метод работает, потому TRUE что вычисляется как 1 и FALSE как 0.

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

1. Не могли бы вы привести пример? И что это * значит?

2. Какой пример? * означает умножение.

Ответ №2:

Один из способов — вложить IFS:

 =IF( condition1, value1, IF( condition2, value2, valueDefault ) ).
  

Но это может стать очень сложным. В случае двух переменных (a и b) более прозрачным решением является создание справочной таблицы: первый столбец содержит 50, 100 и 200, а первая строка содержит 5, 100, 200, 500, в то время как остальная часть таблицы заполняется значениями, а затем выможно написать что-то вроде:

 =INDEX( values, MATCH( actualA, firstColumn, 1 ), MATCH( actualB, firstRow, 1 ) )