※本ページにはプロモーション(広告)が含まれています
VLOOKUPの「#N/A」エラーに悩んでいませんか?
ExcelでVLOOKUP関数を使っていると、検索値が見つからないときに表示される「#N/A」エラーに困ったことはないでしょうか。このエラーが表示されたままだと、集計や印刷時に見栄えが悪く、上司や取引先に提出する資料としても不適切です。
そんなときに役立つのがIFERROR関数です。IFERRORとVLOOKUPを組み合わせるだけで、エラーを「未登録」「—」「0」などわかりやすい表示に変えることができます。
この記事では、IFERROR関数の基本から、VLOOKUPとの組み合わせ方、さらにXLOOKUPやINDEX+MATCHとの活用法まで、実用的なサンプル付きで徹底解説します。

この記事でわかること
- IFERROR関数の基本構文と動作
- VLOOKUPと組み合わせてエラーを非表示にする方法
- #N/A以外のエラー(#VALUE!、#REF!など)への対応
- XLOOKUP・INDEX+MATCHとIFERRORの組み合わせ例
- 実務でよく使う応用パターン5選
IFERROR関数とは?基本構文を理解しよう
IFERROR関数は、数式がエラーを返した場合に代わりの値を表示するための関数です。エラーが発生していなければ、数式本来の結果をそのまま表示します。
基本構文
=IFERROR(値, エラーの場合の値)
| 引数 | 説明 | 例 |
|---|---|---|
| 値 | 評価する数式または値 | VLOOKUP(…) |
| エラーの場合の値 | エラー時に表示する値 | “未登録” または 0 または “” |
IFERRORが対応するエラーの種類
IFERRORは次のすべてのエラー値を捕捉します。
- #N/A — 検索値が見つからない(VLOOKUPで最も多い)
- #VALUE! — 引数の型が間違っている
- #REF! — 参照先のセルが削除された
- #DIV/0! — ゼロ除算
- #NUM! — 数値の範囲外
- #NAME? — 関数名の誤り
- #NULL! — 範囲の交差が存在しない
一方で論理エラー(計算は正常だが意図と違う結果)はIFERRORでは検出できないため、VLOOKUP自体の引数が間違っていないか必ず確認しましょう。
VLOOKUPのエラーをIFERRORで処理する方法
最もよく使われるパターンが「VLOOKUPをIFERRORで包む」形です。
基本パターン:エラーを空白にする
=IFERROR(VLOOKUP(A2,商品マスタ!A:C,2,FALSE),"")
このように記述すると、A2の値が「商品マスタ」シートに見つからない場合でも空白が返るため、スプレッドシート全体が見やすくなります。
エラーを「未登録」と表示する
=IFERROR(VLOOKUP(A2,商品マスタ!A:C,2,FALSE),"未登録")
SUM関数や集計に影響させたくない場合は空白(“”)を、ユーザーへの説明文として見せたい場合は「未登録」「データなし」などの文字列を使いましょう。
エラーを0にする(金額計算でよく使う)
=IFERROR(VLOOKUP(A2,価格表!A:B,2,FALSE),0)
金額を合計するような場合、エラーを0にしておくとSUM関数が正常に機能します。ただし「本当に価格が0円の商品」と区別がつかなくなる点に注意が必要です。

実務でよく使うIFERROR+VLOOKUP応用パターン5選
パターン1:複数列のVLOOKUPをまとめてエラー処理
商品コードから商品名・単価・在庫数を一度に取得するケースです。
【商品名列】=IFERROR(VLOOKUP($A2,商品マスタ!$A:$D,2,FALSE),"未登録")
【単価列】 =IFERROR(VLOOKUP($A2,商品マスタ!$A:$D,3,FALSE),0)
【在庫数列】=IFERROR(VLOOKUP($A2,商品マスタ!$A:$D,4,FALSE),0)
検索列($A2)を絶対参照にしつつ、列番号(2・3・4)だけ変えることで横にコピーしやすくなります。
パターン2:IFERRORをネストして代替検索先を設ける
メインの在庫表にない場合は予備倉庫リストから検索する、という2段階検索です。
=IFERROR(
VLOOKUP(A2,メイン在庫!A:B,2,FALSE),
IFERROR(
VLOOKUP(A2,予備在庫!A:B,2,FALSE),
"全倉庫に在庫なし"
)
)
最初のVLOOKUPが#N/Aを返すと、内側のIFERROR(予備在庫への検索)が実行されます。
パターン3:近似一致VLOOKUPとIFERROR
給与等級テーブルや送料テーブルのように、範囲で判定するVLOOKUP(第4引数TRUE)でもIFERRORは有効です。
=IFERROR(VLOOKUP(B2,送料表!A:B,2,TRUE),"対象外")
ただし近似一致の場合は検索範囲が昇順に並んでいないと正しく動作しないため、テーブルの並び順に注意してください。
パターン4:IFERROR+VLOOKUPで別シートの更新日を取得
顧客管理で「最終注文日」がない顧客を「取引なし」と表示するケースです。
=IFERROR(TEXT(VLOOKUP(B2,注文履歴!A:C,3,FALSE),"yyyy/mm/dd"),"取引なし")
TEXT関数で日付フォーマットを指定しつつ、IFERRORでエラー処理しています。
パターン5:条件付き書式と組み合わせる
IFERRORの結果が特定文字列(例:「未登録」)のときにセルを赤くハイライトすることで、見落とし防止になります。
- 対象セル範囲を選択
- 「ホーム」→「条件付き書式」→「新しいルール」
- 「数式を使用して書式設定するセルを決定」を選択
- 数式欄に
=C2="未登録"と入力 - 書式で背景色を赤に設定
XLOOKUP・INDEX+MATCHとIFERRORの組み合わせ
Excel 2021以降またはMicrosoft 365では、VLOOKUPよりも柔軟なXLOOKUPやINDEX+MATCHが使えます。これらもIFERRORと組み合わせ可能です。
XLOOKUPとIFERRORP
XLOOKUPには第4引数(見つからない場合の値)が標準搭載されているため、IFERRORが不要な場合もあります。
【IFERRORなし】=XLOOKUP(A2,商品マスタ!A:A,商品マスタ!B:B,"未登録")
【IFERRORあり】=IFERROR(XLOOKUP(A2,商品マスタ!A:A,商品マスタ!B:B),"未登録")
XLOOKUPは左方向への検索や複数列の同時返却が可能なため、VLOOKUPより強力です。
| 比較項目 | VLOOKUP | XLOOKUP |
|---|---|---|
| 検索方向 | 左→右のみ | 左右どちらでも可 |
| エラー時の代替値指定 | IFERRORが必要 | 第4引数で直接指定可 |
| 対応バージョン | 全バージョン | Excel 2021以降 または Microsoft 365 |
| 複数列の返却 | 1列ずつ | 配列で複数列同時可 |
INDEX+MATCHとIFERROR
INDEX+MATCHはVLOOKUPよりも自由な検索が可能で、列が増減しても列番号の修正が不要です。
=IFERROR(INDEX(商品マスタ!B:B,MATCH(A2,商品マスタ!A:A,0)),"未登録")
MATCH関数が#N/Aを返した場合(検索値が見つからない場合)、IFERRORが「未登録」に変換します。
| 機能 | VLOOKUP+IFERROR | INDEX+MATCH+IFERROR |
|---|---|---|
| 左方向の検索 | 不可 | 可能 |
| 列挿入時の修正 | 列番号を手動修正 | 不要(列名で参照) |
| 大量データでの速度 | やや遅い | 速い |
| 習得難易度 | 低い | やや高い |

IFERROR+VLOOKUPの注意点とよくある失敗
注意点1:エラーを隠しすぎない
IFERRORは便利ですが、本来気づくべき参照範囲の指定ミスや数式の誤りまで隠してしまうことがあります。数式の動作確認が終わるまでは、IFERRORなしで先にテストすることをおすすめします。
注意点2:IFERROR vs IFNA
Excel 2013以降では、#N/Aだけを処理したい場合はIFERRORよりIFNA関数が適しています。
=IFNA(VLOOKUP(A2,商品マスタ!A:C,2,FALSE),"未登録")
IFERRORは#VALUE!や#REF!なども一緒にエラーとして処理するため、予期しないエラーを見落とす可能性があります。VLOOKUPのエラー対策が目的であればIFNAを優先的に使いましょう。
| 関数 | 対象エラー | 推奨場面 |
|---|---|---|
| IFERROR | すべてのエラー | 複数種類のエラーが混在する場合 |
| IFNA | #N/Aのみ | VLOOKUPのエラー限定処理 |
注意点3:VLOOKUPの第4引数(完全一致)を忘れない
VLOOKUPの第4引数を省略すると近似一致(TRUE)となり、検索表が昇順でない場合に誤った値を返すことがあります。データ検索が目的なら必ずFALSEを指定してください。
=IFERROR(VLOOKUP(A2,商品マスタ!A:C,2,FALSE),"未登録") ← FALSEを忘れずに
この記事に関連するおすすめ商品
Microsoft 365 Personal 1年版 公式ライセンス
約14,000円
IFERROR・VLOOKUP・XLOOKUPを含む最新Excel関数をフル活用できる公式ライセンス
ロジクール ワイヤレスキーボード 静音 K295 テンキー付き
約3,000〜4,500円
ExcelのIFERROR関数・VLOOKUP数値入力に最適なテンキー付きキーボード
Dell 27インチ モニター フルHD IPS FHD
約25,000〜35,000円
IFERROR+VLOOKUP式と元データを並べて確認できる大画面モニター
※ 価格は変動する場合があります。最新価格はリンク先でご確認ください
よくある質問(FAQ)
Q. IFERRORとIFNAの違いは何ですか?
IFERRORはすべてのエラー(#N/A、#VALUE!、#REF!など)を処理しますが、IFNAは#N/Aだけを処理します。VLOOKUPの「見つからない」エラーだけを処理したい場合はIFNAを使うと、他のエラーを見落とすリスクを減らせます。
Q. IFERROR関数はExcelのすべてのバージョンで使えますか?
Excel 2007以降であれば使用可能です。Excel 2003以前の場合はIF+ISERROR関数の組み合わせで代替できますが、現在一般的に使われているバージョン(2016以降)ではIFERRORで問題ありません。
Q. VLOOKUPで#N/Aではなく#VALUE!が出る場合もIFERRORで処理できますか?
はい、IFERRORは#VALUE!も含めすべてのエラーを処理します。ただし#VALUE!は引数の型が合っていないことが原因のため、エラーを隠す前に数式自体を見直すことを推奨します。
Q. IFERRORをネストする場合に上限はありますか?
Excel 2007以降では関数のネスト上限は64階層ですが、実際には3〜4階層以上になると可読性が大幅に下がります。多段検索が必要な場合はXLOOKUPの第4引数(代替値)を使うほうが簡潔です。
Q. IFERROR+VLOOKUPを使うと処理が遅くなりますか?
IFERRORの追加による速度低下はほとんどありません。処理速度への影響が大きいのはVLOOKUP自体の検索範囲の広さです。数万行を超えるデータを扱う場合は、INDEX+MATCHまたはXLOOKUPへの切り替えを検討してください。
Q. エラー時に空白(“”)にしてもSUM計算に影響しますか?
空白文字列(“”)は数値ではないため、SUM関数では0として扱われます。集計には影響しませんが、COUNTなどの集計関数ではカウントされない点に注意してください。エラー時に0を返した場合はSUMにも加算されます。
まとめ
ExcelのIFERROR関数とVLOOKUPを組み合わせることで、エラー表示をなくしてスプレッドシートを見やすく管理できます。この記事のポイントを振り返ります。
- IFERROR(VLOOKUP(…),代替値) の形で#N/Aエラーをすっきり処理
- 代替値は目的に応じて「””(空白)」「”未登録”」「0」を使い分ける
- #N/Aだけを処理したい場合はIFNAのほうが安全
- Excel 2021以降ならXLOOKUPの第4引数でよりシンプルに記述できる
- 左方向の検索や列変動に強いINDEX+MATCH+IFERRORも有効
- エラーを隠す前に数式の正しさを先に確認することが重要
IFERROR関数はExcelの業務効率化における基本テクニックです。VLOOKUPとのセット使いをマスターすれば、エラー対応の時間を大幅に削減できます。ぜひ今日の業務から取り入れてみてください。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!