ExcelのIF・IFS・IFERROR・IFNAの使い分け|選び方フロー付き

スポンサーリンク

「IF関数は使えるけど、IFSとかIFERRORとか似た名前の関数がいくつもあって、どれを使えばいいかわからない」と感じたこと、ありませんか?

間違った関数を選ぶと、数式がムダに複雑になったり、本来気づくべきエラーを見落としてしまったりします。

この記事では、IF・IFS・IFERROR・IFNAの4つの関数を「条件分岐か、エラー処理か」「条件の数はいくつか」という2つの軸でスッキリ整理します。記事の最後には選び方フローチャートも用意したので、もう迷うことはありませんよ。

IF系4関数の違い【結論から】

まず結論です。4つの関数は大きく2グループに分かれます。

  • 条件分岐グループ: IF、IFS
  • エラー処理グループ: IFERROR、IFNA

「条件によって表示を切り替えたい」ならIF or IFS、「数式のエラーを処理したい」ならIFERROR or IFNAです。

以下の比較表で、それぞれの特徴を一目で確認できます。

比較項目IFIFSIFERRORIFNA
役割条件分岐(1条件)条件分岐(複数条件)エラー処理(全種)エラー処理(#N/Aのみ)
構文=IF(条件, 真, 偽)=IFS(条件1, 値1, ...)=IFERROR(式, エラー時)=IFNA(式, NA時)
対応バージョン全バージョン2019 / 3652007以降2013以降
ネスト最大64段(実用は3段)不要(最大127条件)不要不要
おすすめ場面条件が1〜2個条件が3個以上計算エラー全般VLOOKUP等の検索エラー

この表だけで判断できることも多いですが、ここから各関数の使いどころをもう少し掘り下げていきましょう。

IF関数の基本と使いどころ

IF関数は、Excelの条件分岐でもっとも基本的な関数です。「もし〜なら A、そうでなければ B」という処理を1行で書けます。

構文

=IF(論理式, 値が真の場合, [値が偽の場合])
引数必須説明
論理式必須TRUE/FALSEに評価される条件式
値が真の場合必須条件がTRUEのときの返し値
値が偽の場合省略可条件がFALSEのときの返し値(省略時はFALSE)

使用例

たとえば、売上が目標を超えたら「達成」と表示する場合はこう書きます。

=IF(B2>=100000, "達成", "未達")

条件が1つだけのシンプルな場面なら、IF関数が最適です。

IFが向いているケース

  • 「合格 / 不合格」のような二択判定
  • AND関数OR関数と組み合わせた複合条件(条件は1セットだが、判定要素が複数ある場合)
  • Excel 2016以前のファイルでも使う必要がある場合
=IF(AND(B2>=100000, C2>=50), "S評価", "対象外")

上の式は「売上10万以上 かつ 件数50以上」を同時に満たすかどうかを判定しています。条件の数は1つ(ANDで束ねた複合条件)なので、IFで十分対応できます。

IFS関数の基本と使いどころ

IFS関数は、複数の条件を上から順に判定して、最初にTRUEになった条件の値を返す関数です。IFのネスト(入れ子)を使わずに、3つ以上の条件分岐を書けるのが最大のメリットです。

構文

=IFS(条件1, 値1, 条件2, 値2, ..., TRUE, "それ以外")
引数必須説明
条件1必須1つ目の条件式
値1必須条件1がTRUEのときの返し値
条件2, 値2 …省略可2つ目以降の条件と値のペア(最大127組)

ポイントは、最後の条件を TRUE にすること。これが「どの条件にも当てはまらない場合」のデフォルト値(IFでいう「偽の場合」)になります。この TRUE を省略すると、どの条件にも合わないときに#N/Aエラーが出るので注意してください。

IFネストからIFSへの書き換え

IFを3段ネストした式と、IFSに書き換えた式を並べてみましょう。

【Before: IFネスト3段】
=IF(A2>=90, "優", IF(A2>=70, "良", IF(A2>=50, "可", "不可")))

【After: IFS】
=IFS(A2>=90, "優", A2>=70, "良", A2>=50, "可", TRUE, "不可")

どうでしょうか。IFS版のほうがカッコの入れ子がなくなり、条件と結果のペアが横に並んでいて読みやすいですよね。

IF と IFS、どちらを使う?

判断基準IFIFS
条件の数1〜2個3個以上
可読性ネスト2段までなら十分3段以上で圧倒的に見やすい
バージョン互換全バージョンOK2019 / 365 のみ

迷ったときの目安: 「IF文のカッコが3段以上になりそうだな」と思ったら、IFS関数への切り替えを検討してみてください。ただし、社内で古いバージョンのExcel(2016以前)を使っている人がいる場合は、IFネストのほうが安全です。

IFERROR関数の基本と使いどころ

IFERROR関数は、数式がエラーを返した場合に代替値を表示する関数です。条件分岐ではなく、エラー処理が目的です。

構文

=IFERROR(値, エラーの場合の値)
引数必須説明
必須エラーを確認する数式
エラーの場合の値必須エラーだったときに返す値

対処できるエラーの種類

IFERRORは以下の7種類すべてのエラーを一括で処理します。

#N/A #VALUE! #REF! #DIV/0! #NUM! #NAME? #NULL!

エラーの種類については「Excelのエラー値一覧」で詳しく解説しています。

使用例

もっともよく使うのは、割り算のゼロ除算エラーを回避するパターンです。

=IFERROR(B2/C2, 0)

C2が0やブランクのとき、#DIV/0!エラーのかわりに 0 を返します。

VLOOKUPで検索値が見つからなかったときのエラーを回避するパターンもよく使います。

=IFERROR(VLOOKUP(A2, 商品マスタ, 2, FALSE), "該当なし")

IFERRORの注意点

IFERRORは便利ですが、すべてのエラーを消してしまう点に注意が必要です。

たとえば、数式にスペルミスがあって #NAME? エラーが出ているのに、IFERRORでラップしているとエラーが見えなくなります。本来は修正すべきバグが隠れてしまうわけです。

「エラーが出たらとりあえずIFERRORで囲む」というクセがある人は、この後紹介するIFNA関数のほうが安全かもしれません。

IFNA関数の基本と使いどころ

IFNA関数は、#N/Aエラーだけを処理する関数です。それ以外のエラー(#VALUE!や#REF!など)はそのまま表示します。

構文

=IFNA(値, NAの場合の値)
引数必須説明
必須#N/Aを確認する数式
NAの場合の値必須#N/Aだったときに返す値

IFERRORとIFNAの使い分け

IFERRORとIFNAの違いを、もう少し具体的に見てみましょう。

比較項目IFERRORIFNA
処理するエラー全7種(#N/A, #VALUE!, #REF! 等)#N/Aのみ
数式バグの検出隠してしまう可能性ありバグはエラーとして表示される
おすすめ場面割り算のゼロ除算、計算エラー全般VLOOKUP/XLOOKUPなどの検索関数
対応バージョンExcel 2007以降Excel 2013以降

使用例

VLOOKUPで「検索値が見つからない」場合だけ処理したいなら、IFNAが最適です。

=IFNA(VLOOKUP(A2, 商品マスタ, 2, FALSE), "未登録")

XLOOKUP関数も#N/Aエラーを返すので、同じようにIFNAで処理できます。

=IFNA(XLOOKUP(A2, 商品名, 単価), "未登録")

もしこの数式にセル参照のミス(#REF!)や型の不一致(#VALUE!)があった場合、IFNAならエラーが表示されるので問題にすぐ気づけます。IFERRORだとこれらのバグも「未登録」と表示されてしまい、発見が遅れます。

まとめると: 検索関数のエラー処理にはIFNAのほうが安全です。計算式のゼロ除算など、#N/A以外のエラーも処理したい場面ではIFERRORを使いましょう。

4関数の選び方フローチャート

ここまで紹介した4関数を、どの場面でどれを使うか迷わず選べるフローチャートにまとめました。

以下の順番で質問に答えていくだけで、使うべき関数がわかります。

Q1. やりたいことは何ですか?

  • 条件によって表示を切り替えたい → Q2へ
  • 数式のエラーを処理したい → Q3へ

Q2. 条件はいくつありますか?

  • 1〜2個IF関数 を使う
    • AND/ORで複合条件にしてもOK
  • 3個以上IFS関数 を使う
    • ただしExcel 2016以前ではIFネストを使う

Q3. 処理したいエラーの種類は?

  • #N/Aだけ処理したい(VLOOKUP/XLOOKUP等の検索エラー) → IFNA関数 を使う
    • 数式のバグを見逃さない安全な選択
  • すべてのエラーを処理したい(#DIV/0!や#VALUE!も含む) → IFERROR関数 を使う
    • ただし数式バグも隠れるリスクに注意

このフローに従えば、4つの関数で迷うことはなくなるはずです。

実務でよく使う組み合わせパターン

最後に、IF系関数を組み合わせて使う実務パターンを3つ紹介します。

パターン1: IFS + IFERROR(条件分岐 + エラー処理)

計算結果を条件分岐したいけど、元の計算式がエラーになる可能性がある場合に使います。

=IFERROR(IFS(B2/C2>=1.2, "大幅増", B2/C2>=1, "微増", TRUE, "減少"), "データなし")

この式は「前年比(B2/C2)」に応じた評価を出しつつ、C2がゼロだった場合のエラーもカバーしています。

パターン2: IF + AND/OR(複合条件の分岐)

「AかつB」や「AまたはB」の条件判定は、IF関数にAND/OR関数を組み合わせて書きます。

=IF(AND(B2>="2026/4/1", B2<="2026/4/30"), "4月分", "対象外")
=IF(OR(C2="東京", C2="大阪", C2="名古屋"), "主要拠点", "その他")

AND/ORの詳しい使い方は「AND関数の使い方」「OR関数の使い方」をご覧ください。

パターン3: VLOOKUP + IFNA(検索 + エラー処理)

VLOOKUPで検索値が見つからないときだけ代替値を返すパターンです。実務でもっとも使用頻度が高い組み合わせのひとつです。

=IFNA(VLOOKUP(A2, 商品マスタ!A:C, 3, FALSE), "価格未設定")

VLOOKUPのかわりにXLOOKUPを使う場合も同じ書き方でOKです。XLOOKUPには第4引数でエラー時の代替値を指定できますが、IFNAで統一しておけば数式のスタイルが揃って管理しやすくなります。

まとめ

ExcelのIF系4関数の使い分けをおさらいしましょう。

関数役割使うべき場面
IF条件分岐(1〜2条件)シンプルな二択・AND/ORとの複合条件
IFS条件分岐(3条件以上)ネストを避けたい多段階評価
IFERRORエラー処理(全エラー)ゼロ除算・計算エラーの回避
IFNAエラー処理(#N/Aのみ)VLOOKUP/XLOOKUPの検索エラー処理

判断に迷ったら、本記事のフローチャートに立ち返ってみてください。

  • やりたいのが条件分岐なら → 条件の数でIF or IFSを選ぶ
  • やりたいのがエラー処理なら → 対象エラーの種類でIFERROR or IFNAを選ぶ

まずは自分の数式が「条件分岐」と「エラー処理」のどちらなのかを見極めるところから始めてみてくださいね。

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