IF関数 if関数のネスト

if関数で条件(論理式)により答えを分岐させるのですが分岐が2つ以上ある場合について説明します。基本はif関数を参照してください。

たとえば

A B C
1 国語 合否
2 田中 88
3 吉田 85
4 山本 69
5 吉村 92

国語の点数が90点以上は『優』90点未満80点以上は『良』80点未満は『不可』とCのセルに表示したい場合などです。

この場合はIF関数は

IF(論理式, [真の場合], [偽の場合])

なので真の場合もしくは偽の場合に再度if関数を入れてあげれば解決します。関数の中に同じ関数を入れるのをネスト(入れ子)といいます。

2行目のC列に、点数が90点以上かどうかで真か偽に分岐させます。真の場合は『優』にします。

=if(B2>=90,”優”,[偽の場合])

偽の場合、90点未満なのは確定していますが、80点以上は『良』、そうでなければ『不可』の式をを考えます。。

if(B2>=80,”良”,”不可”)

この式をそのまま[偽の場合]に入れてあげれば完成です。

=IF(B2>=90,”優”,IF(B2>=80,”良”,”不可”))

では、上記の例でもう一つ分岐を増やして70点以上を『可』70点未満を『不可』にする場合はどうでしょうか。先ほどの式の”不可”のところを

if(B2>=70,””可,”不可”)

に変更して

=IF(B2>=90,”優”,IF(B2>=80,”良”,IF(B2>=70,”可”,”不可”)))

としてあげれば4つの分岐も解決します。excel2003は最大7つまでif関数をネストすることが可能です。excel2013は64個のネストが可能です。また、if関数で別解もあります。例えば、『不可』から先に判別していく方法です。

=IF(B2<70,”不可”,IF(B2<80,”可”,IF(B2<90,”良”,”優”)))

も同じことになります。それ以外にも4つの成績区分は90点、80点、70点の3つで判定されるので80点以上は『優』か『良』、80点未満は『可』か『不可』なのでまず、80点以上かどうかで判定する方法もあります。

=IF(B2>=80,IF(B2>=90,”優”,”良”),IF(B2>=70,”可”,”不可”))

なども考えられます。

関数ダイアログボックスで関数をネストする時の注意点がいくつかありますのでご紹介します。

数式を入力するセルを選択し関数の挿入のボタン(fx)をクリックします。日本語の文字以外は半角の英数なので日本語入力はオフにしておきます。

if_3

ifを選択しOKをクリックします。

カーソルのあるところにセル参照や、数値文字などを入れます。セルはキーボードからセル番地を入力しなくても、クリックやドラッグで入力することができます。

if_2

また、文字列は自動でダブルクォーテーション(”)で囲まれる場合もありますが、自動でダブルクォーテーション(”)で囲まれない場合は自分で手入力する必要があります。真の場合に入力した、『優』という文字は偽の場合にカーソルを移動(偽の場合の入力欄をクリック)したら自動でダブルクォーテーション(”)で囲まれました。

偽の場合が単に『良』などの文字列だけなら文字を入力しOKボタンで完了です。(良は自動でダブルクォーテーションで囲まれます。)

今回は偽の場合に再度if関数を入れるのでもう一度ifの関数のダイアログボックスを表示したいのですが関数の挿入のボタン(fx)をクリックすると関数のダイアログが終了してしまいます。

偽の場合にカーソルを移動(クリック)します。数式バーの左の名前ボックスの右の▼三角をクリックすると最近使った関数が表示されますのでifをクリックします。

if_4

すると新しくifの関数のダイアログボックスが表示されます。これは偽の場合に入るif関数のダイアログです。

if_5

偽の場合に再度if関数をネストする場合はもう一度同じことを繰り返してください。『良』で終わりならOKボタンをクリックします。(自動でダブルクォーテーションで囲まれます。)

=IF(B2>=80,IF(B2>=90,”優”,”良”),IF(B2>=70,”可”,”不可”))

のように真にも偽にもif関数が入っている場合どちらかのif関数が終わったら戻ってきてもう一方にif関数を入れなければなりません。

まず最初の条件としてセルB2の値が80点以上かどうかの論理式を入れます。

if_6

次に真の場合の中にセルB2の値が90点以上なら『優』そうでないなら『良』というif関数を作ってネストします。真の場合のボックスにカーソルを移動し名前ボックスからifをクリックします。論理式と真の場合、偽の場合にそれぞれ入力します。

次に最初のif関数のダイアログボックスに戻らなければなりません。最初のif関数の真の場合しか完成していません。偽の場合のif関数も入れなければ終われないです。戻り方は数式バーの中の戻りたい関数名をクリックします。今回はイコール=のすく右のifという文字をクリックします。

if_7

初めのif関数のダイアログボックスに戻ってきたのですが、真の場合のボックスのすぐ右に赤字で#nameとエラーが表示されています。今回は『良』が自動で自動でダブルクォーテーションで囲まれていません。ですから戻る前にダブルクォーテーションで囲ってあげるか今手入力でダブルクォーテーションで囲みます。(日本語入力をオフにするのを忘れないように。)

if_8

同様に偽の場合もif関数を入れて戻ってきます。(今回は戻ってこなくても完成ですので偽の場合の中のif関数のダイアログボックスでOKボタンで終了してもかまいません。)

if_9

偽の場合の『不可』がダブルクォーテーションで囲まれていませんが、エラーが表示されていません。数式を入力しているC2のセルは、『良』が表示され、偽の場合の『不可』に該当しません。この数式を入れたB2のセルではエラーが表示されません。このままドラッグしてコピーするとC4のセルは『不可』なのでエラーになってしまいます。文字はダブルクォーテーションで囲むのを忘れないようにしてください。

if_10

 

 

コメントを残す

メールアドレスが公開されることはありません。