わえなび ワード&エクセル問題集

当サイトはWordとExcelの実力を鍛える最高水準の特訓問題集です。リンクを張るのは自由です。みんなで勉強しましょう!

IF関数の入れ子(ネスト)で3種類の表示をするときに条件の順番を間違えてはいけない

Excel関数を使う数式の引数の1つとして関数を使用すると、関数の中に関数を入れることになります。このような数式のことを関数の入れ子(ネスト)といいます。特に、IF関数の中にIF関数を入れることを「IF関数の入れ子」ということがあります。

ところで、Excelの市販のテキストやネット上の解説には、IF関数の入れ子によって3種類以上の表示をすることが可能であることが書かれていることが多いです。確かに、3種類の表示をする数式「=IF(条件1,A,IF(条件2,B,C))」は、何回も繰り返し練習して暗記すべき重要な公式です。

しかし、IF関数の入れ子で最も重要なことは3種類に分けて表示することではなく、入れ子をするときに入力する2つの条件の順序です。外側のIF関数と内側のIF関数で、条件を逆にすると思った通りの結果にならないことがあります。単に入れ子の形を暗記するだけでなく、2つの条件がどのような手順で判定されるのかを理解しなければなりません。

そこで、今回は、IF関数の入れ子の入力方法と、入れ子にした時の条件の順序について出題します。

目次

1.3種類に分けて表示する

(1)IF関数の内側にIF関数を入れる

問題

A列の数値が80以上であればA、そうでなければBと表示しなさい。また、Bと表示しているもののうち、60以上のものだけをBとし、それ以外をCと表示しなさい。

f:id:waenavi:20201013213957j:plain

 

解説

IF関数を挿入します。

f:id:waenavi:20201012155947j:plain

 

80以上であることの判定をします。80以上であればA、そうでなければBとします。

f:id:waenavi:20201012155950j:plain

 

Bと表示されているのは80未満です。

f:id:waenavi:20201012155952j:plain

 

80以上の判定をするとその判定結果はTRUEまたはFALSEになりますが、TRUEであればA、FALSEであればBと変換して表示させているのはIF関数です。Bと表示されているのは、80以上の判定でFALSEだったからです(参考:IF関数は、判定しているのではなく「変換しているだけ」であることを理解せよ【Excel】)。

f:id:waenavi:20201012155956j:plain

 

FALSEの場合に、値を表示せずに計算式を入力して計算をさせることも可能です。

f:id:waenavi:20201012160146j:plain

 

さらに、TRUEまたはFALSEの比較演算をすることも可能です。

f:id:waenavi:20201012160150j:plain

 

Bの代わりに60以上の比較演算「A1>=60」を記述します。

f:id:waenavi:20201012160153j:plain

 

Aと表示されているものは変わりませんが、Bと表示されていたものがTRUEとFALSEになりました。

f:id:waenavi:20201012160156j:plain

 

80未満のうち60以上と判定されたものがTRUE、それ以外がFALSEと表示されました。

f:id:waenavi:20201012160201j:plain

 

さらに、IF関数を用いて、TRUEとFALSEを別の文字列に変換することができます。

f:id:waenavi:20201012160204j:plain

 

IF関数を挿入します。IF関数を挿入するのは比較演算の直前です。TRUEであればB、そうでなければCと表示します。

f:id:waenavi:20201012160207j:plain

 

最後のカッコを忘れてはいけません。

f:id:waenavi:20201012160210j:plain

f:id:waenavi:20201012160214j:plain

 

先頭のIF関数で80以上の判定をし、その結果TRUEであればAと表示されますが、FALSEであれば、さらにIF関数で60以上の判定をし、その結果TRUEであればB、FALSEであればCと表示されます。

f:id:waenavi:20201012160219j:plain

f:id:waenavi:20201012160223j:plain

 

このようにIF関数を2つ使うことで3種類に分けて表示をすることができます。

f:id:waenavi:20201012160226j:plain

 

(2)IF関数の入れ子の入力練習

問題

さきほどの設問(1)の数式を先頭から入力しなさい。また、何度も繰り返し練習しなさい。

f:id:waenavi:20201012150929j:plain

 

解説

初めから2つの条件によって3種類に分けることが分かっている場合は、最初のIF関数の真の場合を入力した直後に、IF関数を挿入します。

f:id:waenavi:20201012160426j:plain

 

この時カッコとカンマが多くなるので、カッコとカンマの意味を考えながら入力します。

f:id:waenavi:20201012160429j:plain

 

IF関数を挿入します。この時のカッコはIF関数の始まりを表すカッコです。

f:id:waenavi:20201012160433j:plain

 

1つ目の条件である80点以上を記述します。TRUEであればAとします。FALSEのときにIF関数を挿入します。この時のカッコは2つめのIF関数の始まりを表すカッコです。

f:id:waenavi:20201012160436j:plain

 

2つ目の条件である60点以上を記述します。TRUEであればB、FALSEであればCです。括弧を閉じます。

f:id:waenavi:20201012160439j:plain

 

この時のカッコは2つめのIF関数の終わりを表すカッコです。

f:id:waenavi:20201012160442j:plain

 

さらに、もう1つカッコを閉じます

f:id:waenavi:20201012160445j:plain

 

この時のカッコは1つめのIF関数の終わりを表すカッコです。

f:id:waenavi:20201012160448j:plain

 

これで完成です。素早く入力できるように何回も繰り返し練習しましょう。

f:id:waenavi:20201012160451j:plain

 

2.IF関数の外側にIF関数を追加する

問題

A列の数値が偶数であればA、そうでなければBと表示しなさい。ただし、A列が空白の場合は空白を返しなさい。

f:id:waenavi:20201012161235j:plain

 

解説

IF関数を挿入します。

f:id:waenavi:20201012161503j:plain

 

偶数であることを判定するためにISEVEN関数を挿入します(参考:IF関数の条件に「等号や不等号が必要」と思っているなら、IF関数を勉強し直してほしい)。

f:id:waenavi:20201012161505j:plain

 

TRUEであればA、FALSEであればBと表示します。このとき、空白は数値の0とみなされますので、偶数と判定されます。

f:id:waenavi:20201012161509j:plain

 

A列が空白のときに空白を返すのは、偶数の判定をする前です(参考:【Excel】空白セルの判定をして、IF関数で「空白文字列」を返す方法と注意点)。

f:id:waenavi:20201012161515j:plain

 

このようにIF関数の判定を避けるために、外側にIF関数を追加することがあります。

f:id:waenavi:20201012161518j:plain

 

IF関数を挿入します。空白のときに空白を返します。

f:id:waenavi:20201012161521j:plain

 

最後にカッコを閉じるのを忘れてはいけません。

f:id:waenavi:20201012161525j:plain

 

これで完成です。

f:id:waenavi:20201012161528j:plain

 

3.包含関係にある場合の入れ子の順序

問題

60点以上であれば合格、80点以上であれば優秀と表示しようとしたが、80点以上も合格と表示された。この理由を述べたうえで、数式を修正しなさい。

f:id:waenavi:20201012162104j:plain

 

解説

60点以上を判定して合格と表示して、その後で80点以上を判定して優秀と表示する式を入力しています。この数式は誤りです。

  • =IF(A2>=60,"合格",IF(A2>=80,"優秀",""))

f:id:waenavi:20201012173834j:plain

 

IF関数の中にIF関数を入れることがありますが、このときに入力する2つの条件には順序があります。

f:id:waenavi:20201012173838j:plain

 

この式は最初に60点以上であることを判定します。60点以上であればTRUE、60点未満であればFALSEになります。

f:id:waenavi:20201012173842j:plain

 

1つ目のIF関数によって、TRUEであれば合格と表示されますが、FALSEの場合は2つ目のIF関数の計算をします。

f:id:waenavi:20201012173845j:plain

 

したがって、60点以上であればすべて合格と表示され、2つ目のIF関数のほうには入りません。80点以上の場合も合格となります。

f:id:waenavi:20201012173849j:plain

 

2つ目のIF関数は60点未満の場合だけ実行されます。

f:id:waenavi:20201012173852j:plain

 

すでに60点未満であることが確定しているのに、80点以上を判定するのは無意味です。

f:id:waenavi:20201012173855j:plain

 

TRUEになるわけがありません。かならずFALSEになりますので空白となります。

f:id:waenavi:20201012173858j:plain

 

最初のIF関数と2番目のIF関数を逆にします。

f:id:waenavi:20201012173901j:plain

 

80点以上であることを判定してから、80点未満の中から60点以上のものを判定するのであれば意味があります。

f:id:waenavi:20201012173904j:plain

f:id:waenavi:20201012173908j:plain

 

1つ目のIF関数によって、TRUEであれば優秀と表示され、FALSEの場合は2つ目のIF関数の計算をします。

f:id:waenavi:20201012173911j:plain

 

2つ目のIF関数は80点未満の場合だけ実行されます。

f:id:waenavi:20201012173915j:plain

 

2つ目の条件は60点以上ですが、そのまえに80点以上が除かれているので、実質「60点以上80点未満」となります。

f:id:waenavi:20201012173918j:plain

 

TRUEであれば合格と表示されますが、FALSEの場合は空白となります。

f:id:waenavi:20201012173922j:plain

 

60点以上の人の中には、80点以上の人も含まれます。

f:id:waenavi:20201012173925j:plain

 

このように含まれる関係にある場合は、内側にある条件、つまり厳しい条件のほうを先に判定します。

f:id:waenavi:20201012173929j:plain

 

4.入れ子の順序によって結果が異なることがある

問題

10以上であればA、奇数であればB、それ以外はCと表示しなさい。このとき、10以上の奇数は何と表示されるか。

f:id:waenavi:20201012174521j:plain

 

解説

IF関数を挿入します。はじめに10以上であることを判定します。10以上であればAとします。

f:id:waenavi:20201012195404j:plain

 

2つ目のIF関数を挿入します。

f:id:waenavi:20201012195407j:plain

 

奇数であればB、そうでなければCと表示します。

f:id:waenavi:20201012195412j:plain

 

このとき、10以上の奇数はAとなります。

f:id:waenavi:20201012195415j:plain

 

この式は最初に10以上であることを判定します。10以上であればTRUE、10未満であればFALSEになります。

f:id:waenavi:20201012195419j:plain

 

1つ目のIF関数によって、TRUEであればAと表示されますが、FALSEの場合は2つ目のIF関数の計算をします。

f:id:waenavi:20201012195422j:plain

 

したがって、10以上であれば偶数か奇数かにかかわらずすべてAと表示され、2つ目のIF関数のほうには入りません。

f:id:waenavi:20201012195426j:plain

 

2つ目のIF関数は10未満の場合だけ実行されます。

f:id:waenavi:20201012195429j:plain

 

2つ目の条件は奇数ですが、そのまえに10以上が除かれているので、実質「10未満の奇数」となります。

f:id:waenavi:20201012195434j:plain

 

TRUEであればB、FALSEの場合はCとなります。

f:id:waenavi:20201012195437j:plain

 

10以上という条件と、奇数という条件は、両方満たす場合もあれば、どちらか一方だけを満たす場合もあります。

f:id:waenavi:20201012195440j:plain

 

「10以上の奇数」は両方の条件を満たしていますが、最初のIF関数でTRUEと判定されるのでその結果が表示されるのです。2つの条件を両方満たす場合は、最初のIF関数でTRUEとなり、2つ目のIF関数は無視されます。

f:id:waenavi:20201012195444j:plain

 

IF関数の順序を逆にしたとします。

f:id:waenavi:20201012195447j:plain

f:id:waenavi:20201012195451j:plain

 

今度は10以上の奇数がBとなります。

f:id:waenavi:20201012195455j:plain

 

このように判定する2つの条件を両方満たすことがある場合、判定する順序によって表示結果が異なりますので注意が必要です。

f:id:waenavi:20201012195500j:plain

 


解説は以上です。


5.動画版はこちら(無料)

この記事は、わえなび実力養成講座「ファンダメンタルExcel13」Program 13-24、13-25 のYoutube動画を書き起こして、加筆修正したものです。

 


Copyright(C)2018-2020 waenavi, All rights reserved. [www.waenavi.com 定礎 平成三十年八月]
Youtube | 公式サイト | twitter | 著作権 | 運営者情報 | お問い合わせ