Excel如果和公式

BCDHI Age Years Salary Years Bonus % 50 12 $120,000.00 <5 years 0.00% 42 20 $40,000.00 5 to 10 years 20.00% 51 3 $97,000.00 11 to 15 years 30.00% 58 28 $105,000.00 16 to 20 years 40.00% 67 6 $78,000.00 20 to 25 years 50.00% 26 or more years 100.00% 

我想写一个if语句计算基于以下奖金:员工必须至less50岁以上员工必须至less有5年的服务。 然而,我的声明不断返回一个值这是我所拥有的

 $K$1 = 50 =IF(B2<$K$1,0),IF(C2<5,0),IF(AND(C2>5,C2<10),D2*I3),IF(AND(C2>10,C2<15),D2*I4),IF(AND(C2>15,C2<20),D2*I5),IF(AND(C2>20,C2<25),D2*I6),IF(C2>25,D2*I7) 

请帮忙。

你必须嵌套你的IF语句,而不是用逗号分隔它们。 你的公式应该是:

 =IF(B2<$K$1,0, IF(C2<5,0, IF(AND(C2>5,C2<10),D2*I3, IF(AND(C2>10,C2<15),D2*I4, IF(AND(C2>15,C2<20),D2*I5, IF(AND(C2>20,C2<25),D2*I6, IF(C2>25,D2*I7))))))) 

IF函数的参数是logical_testvalue_if_truevalue_if_false ,所以第二个IF语句的结果成为第一个IF语句的value_if_false

我更喜欢LOOKUP方法 – 试试这个

=IF(B2<K$1,0,LOOKUP(C2,{0,5,10,15,20,25},I$2:I$7)*D2)

当您在Excel中收到错误时,当您select带有错误的单元格时,会popup一个感叹号图像。 当您通过单击该图像调出菜单时,可以select该选项来显示计算步骤。

通过这样做,您可以很容易地看到哪里出错:您的IF语句没有定义value_if_false,导致excel在计算前两个IF语句后计算“FALSE,FALSE”。 重新定位你的右括号来解决这个问题。

=IF(B2<$K$1,0,IF(C2<5,0,IF(AND(C2>5,C2<10),D2*$I$3,IF(AND(C2>10,C2<15),D2*$I$4,IF(AND(C2>15,C2<20),D2*$I$5,IF(AND(C2>20,C2<25),D2*$I$6,IF(C2>25,D2*$I$7)))))))