2016-09-29 3 views
0

これはスコアに基づく格付け計算式です。Excel:Excelの式でネストされたIf条件を構成する方法

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

4番目のレベルは<17、5番目のレベルは15を超えていますか? – eshwar

+0

ありがとうございます。私は間違いを訂正した。 –

+0

私はレベルが<4、4-7,8-11,12-14,15以上であると仮定しています。これが正しいとすれば、より簡単な数式= min(int(A1/4)+1、5) – eshwar

答えて

0

当時の条件の直前でANDを閉じるのを忘れました。
3番目のIFは巨大な状態になってしまいましたが、それ以外の文もありませんでした。これは最後の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

Brilliant。それは魅力のように働いた。どうもありがとうございました。 –

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()は必要ありません。

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

ありがとうございました。今日はエクセル式で何かを学んだ –

0

うれしいあなたはそれが働いて、そこのGot:第一条件は、自動的に合格しない場合の数は、9のように... または式ではという低い場合ので、あなただけのチェック4よりも大きく、このような状況でネストされた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)) 

、私たちのリストは、に記載されているレベルで、シート1になります列Bと必要な列Aの得点であり、我々の数式はA1で始まる実際の得点を参照するシート2上にある。

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

スコアは、あなたの入力のセルに定義された名前です。

関連する問題