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