2016-09-29 72 views
0

這是一個基於分數的評分公式。Excel:我如何構建嵌套如果在Excel公式中的條件

If score < 4 Then LEVEL 1 
If score > 4 and score < 9 LEVEL 2 
If score > 8 and score < 13 LEVEL 3 
If score > 12 and score < 15 LEVEL 4 
If score > 15 LEVEL 5 

我真的搞不明白,錯在哪裏。請幫忙。

=IF(A1<4,"LEVEL 1",IF(AND(A1>4,A1<9),"LEVEL 2",IF(AND(A1>8,A1<13,"LEVEL 3",IF(AND(A1>12,A1<17,"LEVEL 4",IF(A1>16,"LEVEL 5"))))))) 
+0

第四級<17級,第五級> 15級 – eshwar

+0

謝謝指出。我糾正了錯誤。 –

+0

我假設水平<4,4-7,8-11,12-14,15及以上。如果這是正確的,我有一個更簡單的公式= min(int(A1/4)+1,5) – eshwar

回答

0

您忘記在當時的條件之前關閉您的AND的右邊。
第三個IF結束了一個巨大的條件,沒有then或else語句,這也發生在最後AND

=IF(A1<4,    "LEVEL 1", 
IF(AND(A1>4, A1<9), "LEVEL 2", 
IF(AND(A1>8, A1<13), "LEVEL 3", 
IF(AND(A1>12, A1<17), "LEVEL 4", 
IF(A1>16,    "LEVEL 5"))))) 
+0

輝煌。它像一個魅力。非常感謝你。 –

1

你幾乎擁有它,你只需要確保你封閉括號內爲AND聲明:

=IF(A1<4,"LEVEL 1",IF(AND(A1>4,A1<9),"LEVEL 2",IF(AND(A1>8,A1<13),"LEVEL 3",IF(AND(A1>12,A1<17),"LEVEL 4",IF(A1>16,"LEVEL 5"))))) 
+0

非常感謝。 –

3

你不需要AND()。如果第一個條件不自動傳遞數大於4所以你剛纔檢查它是否比9等等... 或者在一個公式:

=IF(A1<4,"LEVEL 1",IF(A1<9,"LEVEL 2",IF(A1<13,"LEVEL 3",IF(A1<17, "LEVEL 4", "LEVEL 5")))) 
+0

非常感謝。今天,我學習了excel公式 –

0

高興你得到它的工作,但有在這種情況下,您可能需要考慮另一種方法,而不是嵌套IF。

在另一片材上的片材與您的水平和到達它們所需的得分創建一個表或其他地方: 0等級1 第4級第2 8等級3 12等級4 15等級5

然後用VLOOKUP或INDEX(MATCH函數查找匹配。我喜歡INDEX(MATCH,因爲它給你更多的控制權。

=INDEX(Sheet1!$B$1:$B$5,MATCH(A1,Sheet1!$A$1:$A$5,1)) 

在這種情況下,我們的名單將在Sheet1中,與水平的上市B欄和所需的A列中的分數,而我們的公式在表2中引用以A1開始的實際分數。

INDEX函數查看數組-B1:B5 - 並從該數組中的指定行返回一個值。 MATCH函數查看數組 - A1:A5 - 並返回小於或等於匹配值的最大數組的位置。它將此結果傳遞迴INDEX,以便它可以選擇適當的行。

該方法比多級嵌套更易於維護,修改和擴展IF

0

你也可以使用這個公式:

=CHOOSE(MATCH(Score,{0,4,8,12,15},1),"Level 1","Level 2","Level 3","Level 4","Level 5") 

分數是一個定義的名稱與您輸入的單元格。