1
 B  C          D        H                    I
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 语句,根据以下条件计算奖金: 员工必须至少 50 岁 员工必须至少服务 5 年。但是我的声明一直返回一个 VALUE 这就是我所拥有的

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

请帮忙。

4

3 回答 3

2

您必须嵌套 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_test, value_if_true, value_if_false,所以第二个 IF 语句的结果变成value_if_false第一个的结果。

于 2013-01-10T16:25:20.217 回答
1

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

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

于 2013-01-10T16:29:05.480 回答
0

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

通过这样做,您可以很容易地看到哪里出了问题:您的 IF 语句都没有定义 value_if_false,导致 excel 在评估前 2 个 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)))))))

于 2013-01-10T16:26:31.253 回答