IF関数のネストが分からない人へ|複数条件を簡単にする3つの方法

IF関数のネスト(複数条件の入れ子)を簡単にする方法

ExcelのIF関数はとても便利な機能で、個人的にも大好きな関数です。「AならばB、CならばD」と条件を与えれば自動で判定してくれる、頼れる存在です。

ところが――条件が3つ4つと増えてくると、急に手に負えなくなります。カッコがどこで閉じているのか分からなくなり、「#NAME?」や「')'が多すぎます」のエラーが出て、何度直しても合わない。

この「カッコ迷子」こそ、IF関数のネスト(入れ子構造)の最大の落とし穴です。

この記事では、ネストが苦手な人のために、複数条件を簡単にする方法を3つ紹介します。

  • 方法1:そもそもネストを卒業する(IFS関数)
  • 方法2:「等しい」で分けるならもっと短く(SWITCH関数)
  • 方法3:古いExcelでも使える「数式組み立てシート」でカッコから解放される

ご自身のExcelのバージョンや、ファイルを共有する相手の環境に合わせて使い分けられるよう、それぞれの向き・不向きもあわせて解説します。記事の最後には、つまずきやすいエラーの対処法もまとめました。

そもそも「ネスト(入れ子)」とは?

ネストとは、IF関数の中にさらにIF関数を埋め込む構造のことです。1つの条件(合格/不合格のような2択)では足りず、3通り以上に分岐させたいときに使います。

たとえば、テストの点数を次のようにランク分けするケースを考えます。

ランク点数
A90~100
B80~89
C60~79
D~59

「A2セルの点数」をこの4段階で判定したい場合、従来のIF関数だけで書くと、こうなります。

=IF(A2>=90,"A",IF(A2>=80,"B",IF(A2>=60,"C","D")))

IF関数を「偽の場合」の中に次々と入れ込んでいくため、末尾のカッコ ))) がどんどん積み上がっていきます。条件が増えるほど、この末尾のカッコの山が高くなっていくのです。

 

なぜネストは「カッコ迷子」になるのか

ネストは最初の2つくらいまでは何とかなります。ところが3重、4重になると、多くの人が突然手が止まります。どのIFのカッコと対応しているのか、どの結果がどの条件に紐づいているのか、見失ってしまうのです。

原因はおもに2つあります。

原因1:数式を「文章」で追ってしまう

「A2が90以上ならA、それ以外は……えーっと、A2が80以上ならB、じゃなければ……」と、頭の中で日本語の順番に読もうとすると迷子になります。ネストは「箱の中にさらに箱が入っている」入れ子構造なので、一本道の文章として追うと、どこまでが最初のIFなのか分からなくなるのです。

原因2:カッコとカンマの「構造」が見えていない

IF関数は IF(条件, 真の場合, 偽の場合) という形をしています。2つ目のIFは、1つ目の「偽の場合」の位置に丸ごと入り込みます。この入れ子が重なるたびにカッコとカンマの対応が複雑になり、構造を意識していないと全体を見失います。

そして気を抜いた瞬間に「)が足りない」「)が多すぎる」のエラー。何度やっても合わず、気が狂いそうになる――これはネストあるあると言ってよいでしょう。

おそらく、この構造は人間の脳があまり得意としません。だからこそ、まずおすすめしたいのが「そもそもネストを使わない」という発想の転換です。

 

方法1:IFS関数でネストを卒業する(Excel 2019以降/Microsoft 365)

Excel 2019以降、またはMicrosoft 365を使っているなら、IFS関数でネストそのものを卒業できます。これは複数のIF文を置き換えるために用意された関数です。

IFS関数は、1つ以上の条件を上から順にチェックし、最初にTRUEになった条件に対応する値を返します。条件は最大127ペアまで指定でき、複数のネストしたIF文を置き換えられます。

先ほどのランク分けをIFS関数で書くと、こうなります。

=IFS(A2>=90,"A",A2>=80,"B",A2>=60,"C",TRUE,"D")

「条件→結果、条件→結果」を上から横に並べるだけ。末尾のカッコの山が消え、ぐっと読みやすくなりました。これがIFS関数の最大の魅力です。

IFS関数で押さえる3つのポイント

  • 条件は上から順に評価されるので、「厳しい条件→緩い条件」の順(90以上→80以上→60以上)に並べます。順番を逆にすると、点数が高くても先に緩い条件で判定されてしまい、意図しない結果になります。
  • 「それ以外(どれにも当てはまらない場合)」は、最後に TRUE を置いて受け取ります。上の例の TRUE,"D" がこれにあたります。「ここまでの条件すべてに外れたらD」という意味です。
  • どの条件にも当てはまらず、TRUE も書いていないと、IFS関数は「#N/A」エラーを返します。「それ以外」の受け皿は必ず用意しましょう。

「○点以上」「○以下」のように範囲(大小)で分岐する判定には、このIFS関数が最も向いています。

方法2:SWITCH関数(条件がすべて「○○と等しい」とき)

もう一つの選択肢が SWITCH関数 です。SWITCH関数も、Microsoft 365、または永続ライセンス版ならExcel 2019以降で使用できます。

SWITCH関数は、1つの値が「何と一致するか」で結果を切り替える関数です。たとえば部署コードを部署名に変換するなら、こう書けます。

=SWITCH(A2,"S","営業部","K","開発部","M","総務部","該当なし")

SWITCH関数のメリットは、条件式が複数になっても「A2=」の部分を省略できるため、IFS関数と比べて数式がより短くなる点です。「等しいかどうか」で分岐するなら、とても見やすく扱いやすい関数になります。

 

IFSとSWITCHの使い分け

分岐のしかた向いている関数
「○以上」「○未満」など範囲(大小)で分けるIFS関数
「○○と等しい」という完全一致で分けるSWITCH関数

先ほどの点数ランクは「90以上」のような範囲判定なので、SWITCHではなくIFSが正解です。コード変換やカテゴリ分けのように「ぴったり一致」で分けたいときにSWITCHを選びましょう。

 

方法3:古いExcelでも使える「数式組み立てシート」

IFS関数もSWITCH関数も便利ですが、弱点があります。Excel 2016以前のバージョンでは使えず、「#NAME?」エラーになります。

社内でExcelのバージョンがバラバラだったり、不特定多数に配るファイルだったりする場合は、どの環境でも動く従来のネストIFで書いておくのが安全です。とはいえ、手で書くとやっぱりカッコ迷子になる……。

そこで役立つのが、ネストの数式をカッコの対応を一切気にせず組み立てるためのワークシートです。私自身がネストにとても苦労したので作りました。

仕組み:パーツを「&」でつなぐだけ

考え方の核心はシンプルです。IF関数を構成するパーツ(IF(、論理式、カンマ、真の場合、カンマ、偽の場合、) など)をセルに分けて入力しておき、それらを &(アンパサンド)で連結して、長いネスト文字列を自動で組み立てます。

たとえば4条件なら、次のようなイメージで連結します(カッコの数はあらかじめ式側で用意しておきます)。

="IF("&論理式1&","&真1&",IF("&論理式2&","&真2&",IF("&論理式3&","&真3&","&偽&")))"

カッコの数は連結する側で先に決めてあるので、自分でカッコの対応を数える必要がなくなります。これがこのシートの一番のメリットです。

使い方の手順

  1. 「論理式」のセルに条件を入力します。このとき 先頭にアポストロフィ(')を付けて文字列として認識させます。= で始めると、最終的に出力される式でエラーになるためです。
  2. 条件の件数に応じて、論理式・真の場合を上から順に入力します。偽の場合(一番外側の「それ以外」)は、複数条件の一番最後にだけ入力すればOKです(例:条件が4つなら、上から3つ目まではブランク、4つ目に入力)。
  3. 出力された数式の文字列をコピーし、「値貼り付け」で目的のセルに貼り付けます。
  4. 貼り付けた文字列の先頭に「=」を付け足すと、計算式として認識されます。

運用のコツ

& で連結した数式は、他のブックに数式のままでは貼り付けられません(値貼り付けになります)。このシートは専用のワークシートとして保存しておき、出力された文字列をコピーして正規のブックへ移植する運用がおすすめです。一度どんな構造になっているか中身を確認しておくと、応用が効くようになります。

少し手間はかかりますが、「カッコの迷子」から確実に解放され、しかも古いExcel環境でも動くという強みがあります。

 

どの方法を選ぶ?早見表

あなたの状況おすすめの方法
Excel 2019/Microsoft 365 で、範囲(以上・以下)で分岐したい方法1:IFS関数
Excel 2019/Microsoft 365 で、完全一致(○○と等しい)で分岐したい方法2:SWITCH関数
Excel 2016以前を含む環境で配布する/互換性を最優先したい方法3:組み立てシート(ネストIF)

新しい関数が使える環境なら、まずはIFS/SWITCHでネストを卒業するのが一番ラクです。一方、共有相手の環境が分からないときや古いバージョンが混在する職場では、ネストIFを安全に組み立てる方法3が依然として有効です。

 

よくあるエラーと対処法(FAQ)

Q. 「#NAME?」エラーが出ます

関数名が認識されていません。多くの場合、お使いのExcelがIFS/SWITCH関数に対応していない(2016以前)ことが原因です。この場合は方法3のネストIFで書き直してください。関数名のスペルミス(IFSIFFS と打つなど)でも発生します。

Q. 「’)’が多すぎます」「カッコが足りません」と言われます

ネスト特有の典型エラーで、開きカッコと閉じカッコの数が一致していないサインです。IF関数の数だけ末尾に ) が必要です(IFが4つなら )))))。数えるのが苦痛なら、方法1のIFS関数に乗り換えるか、方法3の組み立てシートを使えば、この悩みから解放されます。

Q. 「#N/A」エラーが出ます(IFS関数)

どの条件にも当てはまらなかったのに、「それ以外」の受け皿がないと発生します。数式の最後に TRUE,"(それ以外の値)" を追加してください。

Q. 点数が高いのに低いランクになってしまいます

条件の順番が原因です。IFもIFSも上から順に評価し、最初に当てはまった条件で確定します。「厳しい条件(90以上)→緩い条件(60以上)」の順に並べてください。逆順だと、高得点でも先に緩い条件で拾われてしまいます。

Q. ネストはいくつまで重ねられますか?

仕様上は深くまで重ねられますが、現実的には3〜4段を超えると人間が管理しきれません。それ以上の分岐が必要なら、ネストに固執せず、IFS関数やVLOOKUP関数など別のアプローチに切り替えるのが賢明です。

 

まとめ

「IF関数のネストが分からない」「カッコ迷子になる」という悩みは、今や次の3方向で解決できます。

  • 新しいExcelなら、IFS関数・SWITCH関数でネストそのものを卒業する(最もラク)
  • 等しいかどうかで分けるなら、SWITCH関数で式をさらに短く
  • 古い環境や互換性重視なら、組み立てシートでカッコを数えずにネストIFを作る

かつては「気が狂いそう」だったネストも、避けるか・楽に組み立てるかを選べる時代になりました。ご自身の環境と目的に合わせて、ぴったりの方法を使い分けてみてください。

 

番外編

どうしてもネストにこだわる人へ

IF関数を複数用いるネスト(入れ子)を簡単にするワークシート

私はとても苦手なので、作りました。

IF関数のネスト(複数条件の入れ子)を簡単にする方法

このシートです。

青の部分に論理式、および、真の場合、偽の場合と入力し、

条件の数に応じて、下に出力される数式を選びます。

4つ条件がある場合は(4)のところの数式をコピーして、値貼り付けし、冒頭のIFの前に「=」をつけます。

※基本的に偽の場合に分岐するように作っています。

IF関数のネストを簡単にするワークシートの使い方

まず下記よりエクセルのフォーマットをダウンロードしてください。

IF関数のネストを簡単にするワークシート

※ダウンロードせず自力でやられる方は、下記のように入力するとよいでしょう。今後も使う場面があるでしょうから自分で作っておいたほうが理解も進み、また使い回しやすいかもしれません。

IF関数のネストを簡単に

A14からは見切れていますので下記に示します。

A14:=A2&B2&C2&D2&E2&F2&G2&H2

A15:=A2&B2&C2&D2&E2&F2&A3&B3&C3&D3&E3&F3&G3&H3&H3

A16:=A2&B2&C2&D2&E2&F2&A3&B3&C3&D3&E3&F3&A4&B4&C4&D4&E4&F4&G4&H4&H4&H4

A17:=A2&B2&C2&D2&E2&F2&A3&B3&C3&D3&E3&F3&A4&B4&C4&D4&E4&F4&A5&B5&C5&D5&E5&F5&G5&H5&H5&H5&H5

A18:=A2&B2&C2&D2&E2&F2&A3&B3&C3&D3&E3&F3&A4&B4&C4&D4&E4&F4&A5&B5&C5&D5&E5&F5&A6&B6&C6&D6&E6&F6&G6&H6&H6&H6&H6&H6

A19:=A2&B2&C2&D2&E2&F2&A3&B3&C3&D3&E3&F3&A4&B4&C4&D4&E4&F4&A5&B5&C5&D5&E5&F5&A6&B6&C6&D6&E6&F6&A7&B7&C7&D7&E7&F7&G7&H7&H7&H7&H7&H7&H7

A20:=A2&B2&C2&D2&E2&F2&A3&B3&C3&D3&E3&F3&A4&B4&C4&D4&E4&F4&A5&B5&C5&D5&E5&F5&A6&B6&C6&D6&E6&F6&A7&B7&C7&D7&E7&F7&A8&B8&C8&D8&E8&F8&G8&H8&H8&H8&H8&H8&H8&H8

A21:=A2&B2&C2&D2&E2&F2&A3&B3&C3&D3&E3&F3&A4&B4&C4&D4&E4&F4&A5&B5&C5&D5&E5&F5&A6&B6&C6&D6&E6&F6&A7&B7&C7&D7&E7&F7&A8&B8&C8&D8&E8&F8&A9&B9&C9&D9&E9&F9&D21&G9&H9&H9&H9&H9&H9&H9&H9&H9

A22:=A2&B2&C2&D2&E2&F2&A3&B3&C3&D3&E3&F3&A4&B4&C4&D4&E4&F4&A5&B5&C5&D5&E5&F5&A6&B6&C6&D6&E6&F6&A7&B7&C7&D7&E7&F7&A8&B8&C8&D8&E8&F8&A9&B9&C9&D9&E9&F9&D21&A10&B10&C10&D10&E10&F10&G10&H10&H10&H10&H10&H10&H10&H10&H10&H10

A23:=A2&B2&C2&D2&E2&F2&A3&B3&C3&D3&E3&F3&A4&B4&C4&D4&E4&F4&A5&B5&C5&D5&E5&F5&A6&B6&C6&D6&E6&F6&A7&B7&C7&D7&E7&F7&A8&B8&C8&D8&E8&F8&A9&B9&C9&D9&E9&F9&D21&A10&B10&C10&D10&E10&F10&A11&B11&C11&D11&E11&F11&G11&H11&H11&H11&H11&H11&H11&H11&H11&H11&H11

A24:=A2&B2&C2&D2&E2&F2&A3&B3&C3&D3&E3&F3&A4&B4&C4&D4&E4&F4&A5&B5&C5&D5&E5&F5&A6&B6&C6&D6&E6&F6&A7&B7&C7&D7&E7&F7&A8&B8&C8&D8&E8&F8&A9&B9&C9&D9&E9&F9&D21&A10&B10&C10&D10&E10&F10&A11&B11&C11&D11&E11&F11&A12&B12&C12&D12&E12&F12&G12&H12&H12&H12&H12&H12&H12&H12&H12&H12&H12&H12

A25:=A2&B2&C2&D2&E2&F2&A3&B3&C3&D3&E3&F3&A4&B4&C4&D4&E4&F4&A5&B5&C5&D5&E5&F5&A6&B6&C6&D6&E6&F6&A7&B7&C7&D7&E7&F7&A8&B8&C8&D8&E8&F8&A9&B9&C9&D9&E9&F9&D21&A10&B10&C10&D10&E10&F10&A11&B11&C11&D11&E11&F11&A12&B12&C12&D12&E12&F12&A13&B13&C13&D13&E13&F13&G13&H13&H13&H13&H13&H13&H13&H13&H13&H13&H13&H13&H13

使い方

論理式の所に数式を入れます。

この際に、プラス「+」で入力を始めます。イコール「=」で始めると最後に出力される式でエラーになります。

数式の入力が終わったら、数式の冒頭にアポストロフィを入れて下さい、これです。→ ’

これは文字列として認識させるためです。※そうしないと下の式にうまく反映しません。

 

続いて、条件の件数に応じて下に続く論理式に式を入れていきます。偽の場合の欄は、複数条件の一番最後に入力すればOKです。(例:条件が4つあれば、上から3つ目まではブランク、4つ目に値を入れるとよいでしょう)

 

解説:上のシートに入力している式が、「&」によって結合されているだけの簡単な構造です。

最後に、下に出力された式をコピーして、値貼り付け、最初のIFの前に「=」を付け足すことで計算式として認識されます。

※一度このシートがどんな構造になっているか確認を出来ればしておくといいと思います。

※ちなみに、この「&」で文字を連結させる式は、他のブックに貼り付けができません(値貼り付けになる)。そのため、専用のワークシートとして保存しておき、出力された数式を文字としてコピーして正規のブックに移植する、がいいかもしれません。

YouTubeで実際にやってみた動画を載せます。

 

著者
古見遊 正

流通業で働きながら、2004年からWindowsを使い続けている80年代生まれのサラリーマン。ExcelとPowerPointを極め、仕事の効率化を追求中。苦手だったWordも克服中!Excelを使いこなせるだけで周囲から『神扱い』されるけれど、そのせいで『システムに詳しい人』だと勘違いされがち。でも、それが新しい知識を得るきっかけになった。そんな経験を活かして、Excel・PowerPoint・Word・Windowsの時短ワザ&仕事術を発信中!

古見遊 正をフォローする
[1]Excel時短ワザ

コメント

タイトルとURLをコピーしました