MS Excel:根据条件生成值

时间:2016-10-08 12:15:55

标签: 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)

但它说我为这个功能输入了太多的论据。

有谁知道我哪里出错了?

2 个答案:

答案 0 :(得分: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 :(得分:0)

一种方法是嵌套IF:

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