IFNA関数の使い方としくみ|草野球成績管理表でVLOOKUP失敗時に「未登録」と表示する例で解説

関数の使い方

検索関数を使っていると、検索対象が見つからずに#N/Aエラーが表示されることがあります。今回は、この#N/Aエラーだけをピンポイントで処理できるIFNA関数について、使い方としくみを解説します。

IFNA関数とは

📝 IFNA関数の役割(一言でいうと)

ある式の結果が「#N/Aエラー」だったときだけ、代わりの値を返す関数です。似た働きをする関数にIFERRORがありますが、IFERRORがどんな種類のエラーにも反応するのに対し、IFNAは#N/Aエラーだけに反応する、という違いがあります。

基本の書式はこうです。

=IFNA(値, エラーの場合の値)

「値」の部分には、VLOOKUPなど#N/Aエラーを返す可能性がある式をそのまま指定します。

成績管理表での実例:VLOOKUP失敗時に「未登録」と表示する

大阪グーニーズの成績管理表には、選手名・背番号・守備位置をまとめた「選手マスタ」シートがあります。個人成績シートでは、A列に入力された選手名をもとに、VLOOKUPで背番号を参照しています。

選手名 背番号 守備位置
SUZUKI 7 中堅手
NAKATA 3 一塁手
YAMAMOTO 5 左翼手

個人成績シートのB2セルに、A2セルの選手名から背番号を取得する式を入れると、こうなります。

=VLOOKUP(A2, 選手マスタ!A:C, 2, FALSE)

ここで、助っ人参加などによりA2セルに選手マスタ未登録の選手名(例:TANAKA)が入力されると、この式は#N/Aエラーを返してしまいます。IFNAと組み合わせると、次のようにできます。

✅ 未登録選手を「未登録」と表示する式
=IFNA(VLOOKUP(A2, 選手マスタ!A:C, 2, FALSE), "未登録")

これで、選手マスタにいない選手名が入力された場合は、エラー表示の代わりに「未登録」という文字列がB2セルに表示されるようになります。

STEP 1
元になるVLOOKUP式を先に用意する

IFNAをつけない状態で、正しく背番号が引けているかをまず確認しておきます。

STEP 2
VLOOKUP式全体をIFNAの1つ目の引数として囲む

式の先頭に「=IFNA(」を追加し、その後ろに元のVLOOKUP式をそのまま続けます。

STEP 3
カンマの後にエラー時の表示文字列を入力する

「”未登録”」のように、#N/Aだったときに表示したい文字列を入れて「)」で閉じ、Enterキーで確定します。

しくみを理解する:IFNAとIFERRORの違い

📝 IFNAはエラーの種類を選んで反応する

IFNAは、指定した式の計算結果を確認し、それが#N/Aエラーであるときだけ2つ目の引数の値に置き換えます。#N/A以外のエラー(#REF!、#DIV/0!、#VALUE!など)が発生した場合は、IFNAは何もせず、そのままエラーを表示させます。

一方でIFERRORは、エラーの種類を区別せず、どんなエラーでも一律に代替値へ置き換えます。この違いがあるため、IFNAを使うと「検索対象が単に見つからないだけ」なのか「式そのものに別の不具合がある」のかを見分けやすくなります。

よくあるミス

⚠️ 原因1:IFERRORで代用してしまい、原因を見逃す

VLOOKUPの列指定を間違えていて#REF!が出ているようなケースでも、IFERRORを使っていると一律「未登録」と表示されてしまいます。選手マスタ側の不備なのか、式そのものの間違いなのかが分かりにくくなるため、原因を切り分けたい場面ではIFNAのほうが有利です。

⚠️ 原因2:#N/A以外のエラーだと代替値が表示されない

IFNAは#N/A以外のエラーをそのまま素通りさせる仕様です。列番号のズレなど別の原因で#REF!が出ている場合、「未登録」は表示されずエラーのまま残ります。「IFNAを使ったのに未登録と表示されない」というときは、#N/A以外のエラーが起きていないか式を見直してみてください。

✅ この記事のまとめ
  • IFNA関数は「指定した式が#N/Aエラーのときだけ」代替値を返す関数
  • IFERRORとの違いは、エラーの種類を区別するかどうか(IFNAは#N/A限定、IFERRORは全種類)
  • VLOOKUPなどの検索関数と組み合わせ、「未登録」の表示専用として使うと原因の切り分けがしやすくなる

次回予告

次回のテーマは「ネスト(関数の入れ子)の考え方」です。関数を重ねるときの評価順序や可読性の注意点を、IF×IFERRORを組み合わせた打率表示式を例に解説していきます。

▶︎ 次回:関数のネスト(入れ子)の考え方としくみ

コメント

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