2013-01-10 62 views
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年的服務。 但是我的發言不斷返回值 這是我Excel中如果和公式

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

請幫助。

回答

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_testvalue_if_truevalue_if_false,所以第二個結果IF語句成爲value_if_false的第一個。

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

1

我喜歡的查找方法 - 嘗試這個

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

+1

我還使用查找功能 - 但是,恕我直言值'0,5,10 ...'應而是在額外的列中,而不是在公式中... –

+0

+1 Peter Albert,是的,我同意這是最好的方法 –