IFERROR関数を徹底解説!エラー処理をスムーズにする使い方と応用術

Sheet基本

IFERROR・IFNA 完全ガイド
エラーを制御してシートをプロ仕様にする

「#N/Aだらけのシート」をなくす。VLOOKUPや数式が失敗したときの表示を制御し、ユーザーに伝わるメッセージを返す。エラーハンドリングの基本。

GASとの関係:try-catch の関数版

GASの try { ... } catch(e) { return "エラー"; } は IFERROR と完全に対応します。エラーの「範囲を絞る」考え方(IFERRORかIFNAか)もGASのエラー設計に直結します。

GASで自動化を学ぶ →
目次

IFERRORとIFNAの違い

関数処理するエラー使いどころ
IFERROR#N/A, #VALUE!, #REF!, #DIV/0!, #NAME?, #NUM!, #NULL! すべてユーザーにエラーを一切見せたくない場合
IFNA#N/A のみVLOOKUPの「見つからない」だけを処理。#REF!などの構造エラーは表示させたい場合

基本構文

=IFERROR(式, エラー時の値)
=IFNA(式, #N/A時の値)

最もよく使うパターン(VLOOKUP + IFERROR)

// VLOOKUPが見つからなかった場合に「未登録」を表示
=IFERROR(VLOOKUP(A2, マスター!A:C, 2, FALSE), "未登録")

// 空白にしたい場合
=IFERROR(VLOOKUP(A2, マスター!A:C, 2, FALSE), "")

// IFNAを使う場合(#N/Aのみ処理)
=IFNA(VLOOKUP(A2, マスター!A:C, 2, FALSE), "未登録")

IFERRORとIFNAの使い分けを判断する

// IFERROR:フォームデータなど、どんなエラーも「-」で隠したいとき
=IFERROR(B2/C2, "-") // ゼロ除算(#DIV/0!)も含めて処理

// IFNA:VLOOKUPの「存在しないコード」だけを処理し、
// 列番号ミスによる#REF!はちゃんとエラーで知りたいとき
=IFNA(VLOOKUP(A2, マスター!A:C, 2, FALSE), "コード不明")

推奨の使い分け:本番シートで運用するなら IFNA を優先し、構造エラーは検知できるようにしておく。プロトタイプや一時的な集計なら IFERROR で一括処理。

実務でよく使うパターン

パターン1:ゼロ除算を防ぐ

=IFERROR(B2/C2, 0) // 分母が0のときは0を返す
=IFERROR(B2/C2, "データなし")

パターン2:FILTER関数のエラーを処理

// 条件に合う行がない場合FILTERは#N/Aになるため
=IFERROR(FILTER(A2:C100, B2:B100="東京"), "該当データなし")

パターン3:複数のフォールバックを設ける

// 第1優先のVLOOKUPが失敗したら第2のVLOOKUPを試す
=IFERROR(VLOOKUP(A2, テーブル1!A:B, 2, FALSE),
 IFERROR(VLOOKUP(A2, テーブル2!A:B, 2, FALSE), "見つかりません"))

エラー時に何を返すべきか

状況返す値理由
合計・平均などの数値計算0 または “”後続の計算に支障なし
VLOOKUPのコード参照“未登録” “コード不明”「存在しない」ことをユーザーに伝える
ユーザーへの表示セル“-” または “”見た目をきれいにする
後で確認が必要な場合“要確認” “⚠”見落とし防止

この知識をGASで活かす

GASでAPIを呼んだり外部ファイルを読んだりする処理には必ずtry-catchが必要です。IFERRORで「どの範囲のエラーを捕まえるか」を考える習慣が、GASのエラーハンドリング設計に直結します。

Free Newsletter

AIを業務に活かしたいなら
SMR-Labメルマガ

毎週火曜10時、コピペで使えるChatGPTプロンプト・
GASテンプレートをお届け。登録は1分・完全無料。

▶ 無料で登録する

📧 無料メルマガ登録

DX・AI活用のヒントを週1回お届け。登録特典:すぐ使えるプロンプト集&GASテンプレート。

登録情報は第三者に提供しません。いつでも配信停止できます。

目次