IFNA関数を完全解説!Googleスプレッドシートでのエラー処理とデータ管理をスムーズにする。

Sheet基本

IFNA 完全ガイド
#N/Aだけを処理するピンポイントエラー制御

IFERRORが「全エラーを一括処理」なのに対して、IFNAは「見つからない(#N/A)だけを処理」する。構造エラーは検知したまま、欠損値だけをやさしく扱う設計ができる。

GASとの関係:特定の例外クラスだけcatchする設計

IFNAの「#N/Aだけ処理、他はそのまま」は、GASで catch(e){ if(e instanceof NotFoundException){...} else throw e; } と特定例外のみ捕捉するパターンに対応します。

GASで自動化を学ぶ →
目次

IFNAとIFERRORの決定的な違い

=IFNA(式, #N/Aのときの値) // #N/A だけを処理
=IFERROR(式, エラーのときの値) // すべてのエラーを処理

IFNAは「検索して見つからなかった(#N/A)」だけを処理します。#REF!(参照エラー)や#VALUE!(型エラー)は処理せず、エラーとして表示されます。これにより「値が存在しない」ことと「式の書き間違い」を区別できるのが重要です。

基本的な使い方

// VLOOKUPで見つからない場合だけ処理
=IFNA(VLOOKUP(A2, マスター!A:C, 2, FALSE), "未登録")

// XLOOKUP・MATCH でも同様
=IFNA(XLOOKUP(A2, マスター!A:A, マスター!B:B), "コード不明")
=IFNA(MATCH(A2, 一覧!A:A, 0), "リストにない")

IFERRORとIFNAの使い分け判断フロー

状況使うべき関数理由
本番運用のシートIFNA 推奨#REF!などの構造エラーが検知できる
一時的な集計・プロトタイプIFERRORでOKとにかくエラー表示をなくしたい
式が複雑でデバッグ中IFNA(または省略)エラー種類を確認しながら修正したい
ユーザー向け入力フォームの表示IFERRORどんなエラーもユーザーに見せない

実務のパターン例

パターン1:マスターにないコードを「未登録」と表示

// 商品コードがマスターにない場合のみ処理
// 式の書き間違いによる#REF!はそのまま表示させてデバッグしやすくする
=IFNA(VLOOKUP(A2, 商品マスター!A:D, 3, FALSE), "未登録品")

パターン2:FILTERの結果が空のとき

// 条件に合う行がない場合、FILTERは#N/Aを返す
=IFNA(FILTER(A2:C100, B2:B100="東京"), "該当なし")

パターン3:INDEX+MATCHとの組み合わせ

// MATCHが#N/Aになるのは「見つからない」ときだけなのでIFNAが適切
=IFNA(INDEX(D:D, MATCH(G2, A:A, 0)), "見つかりません")

この知識をGASで活かす

IFNAの「特定のエラーだけを処理する」設計は、GASのtry-catchで例外の種類を判別する設計と同じ考え方です。スプレッドシートでエラーハンドリングの粒度を意識する習慣が、GASの堅牢なコード設計に活きてきます。

Free Newsletter

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

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

▶ 無料で登録する

📧 無料メルマガ登録

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

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

目次