「IF関数は使えるけど、IFSとかIFERRORとか似た名前の関数がいくつもあって、どれを使えばいいかわからない」と感じたこと、ありませんか?
間違った関数を選ぶと、数式がムダに複雑になったり、本来気づくべきエラーを見落としてしまったりします。
この記事では、IF・IFS・IFERROR・IFNAの4つの関数を「条件分岐か、エラー処理か」「条件の数はいくつか」という2つの軸でスッキリ整理します。記事の最後には選び方フローチャートも用意したので、もう迷うことはありませんよ。
IF系4関数の違い【結論から】
まず結論です。4つの関数は大きく2グループに分かれます。
- 条件分岐グループ: IF、IFS
- エラー処理グループ: IFERROR、IFNA
「条件によって表示を切り替えたい」ならIF or IFS、「数式のエラーを処理したい」ならIFERROR or IFNAです。
以下の比較表で、それぞれの特徴を一目で確認できます。
| 比較項目 | IF | IFS | IFERROR | IFNA |
|---|---|---|---|---|
| 役割 | 条件分岐(1条件) | 条件分岐(複数条件) | エラー処理(全種) | エラー処理(#N/Aのみ) |
| 構文 | =IF(条件, 真, 偽) | =IFS(条件1, 値1, ...) | =IFERROR(式, エラー時) | =IFNA(式, NA時) |
| 対応バージョン | 全バージョン | 2019 / 365 | 2007以降 | 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が向いているケース
=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、どちらを使う?
| 判断基準 | IF | IFS |
|---|---|---|
| 条件の数 | 1〜2個 | 3個以上 |
| 可読性 | ネスト2段までなら十分 | 3段以上で圧倒的に見やすい |
| バージョン互換 | 全バージョンOK | 2019 / 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の違いを、もう少し具体的に見てみましょう。
| 比較項目 | IFERROR | IFNA |
|---|---|---|
| 処理するエラー | 全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を選ぶ
まずは自分の数式が「条件分岐」と「エラー処理」のどちらなのかを見極めるところから始めてみてくださいね。
