エクセルでIFNA関数を使う方法とその例

  • これを共有
Michael Brown

ワークシートで多くの#N/Aエラーが発生し、代わりにカスタムテキストを表示する方法があるかどうか知りたくありませんか? IFNA数式は、あなたが必要とするソリューションです。

Excelの数式が何かを特定できないとき、#N/Aエラーが投げられます。 このようなエラーを捕らえ、ユーザーフレンドリーなメッセージに置き換えるには、IFNA関数を使用します。 言い換えれば、#N/Aは、探している値が参照するデータセットに存在しないことを示すExcelの方法です。 IFNAは、このエラーを捕らえ、処理する方法なのです。

    ExcelのIFNA関数

    ExcelのIFNA関数は、#N/Aエラーを検出し処理するための関数です。 数式が#N/Aと評価された場合、IFNAはそのエラーをトラップし、指定したカスタム値に置き換えます。それ以外は、数式の正常な結果を返します。

    IFNAシンタックス

    IFNA関数のシンタックスは以下の通りです。

    IFNA(value, value_if_na)

    どこで

    価値 (必須) - #N/A エラーのチェック対象となる数式、値、または参照。

    値_if_na (必須) - #N/A エラーが検出された場合に返す値です。

    使用上の注意

    • IFNA関数は、他のエラーを抑制することなく、#N/Aのみを処理します。
    • もし 価値 引数は 配列式 IFNAは、この例のように、セルごとに1つの結果を配列で返します。

    IFNAの稼働率

    IFNA関数は、Excel2013で導入され、Excel2016、Excel2019、Excel2021、Microsoft 365など、それ以降のすべてのバージョンで利用可能です。

    以前のバージョンでは、IF関数とISNA関数を併用することで、#N/Aエラーを捕捉することができます。

    ExcelでIFNA関数を使う方法

    IFNAをExcelで効果的に使用するには、以下の一般的な方法に従ってください。

    1. 第1引数で( 価値 ) に、#N/A エラーの影響を受ける数式を入れます。
    2. 第2引数で( 値_if_na 何も見つからなかったときに空のセルを返すには,空の文字列 ('"") を指定します.)

    戻るには カスタムテキスト は、一般的な式である。

    IFNA(イフナ) (), " カスタムテキスト ")

    を返すこと。 空セル は、一般的な式である。

    IFNA(イフナ) (), "")

    下の表で、ある学生のスコアが他の学生の間でどのようにランク付けされているかを知りたいとします。 データは、スコアリストの順に並んでいます。 スコア 列を最高から最低の順に並べると、順位は表中の学生の相対的な位置に一致します。 そして、位置を取得するには、最も単純な形で MATCH 関数を使用します。

    =match(e1, a2:a10, 0)

    ルックアップ配列(A2:A10)にルックアップ値(Neal)が存在しないため、#N/Aエラーが発生しました。

    このエラーに遭遇すると、経験の浅いユーザーは数式に何か問題があると思うかもしれませんし、ワークブックの作成者として多くの質問を受けるでしょう。 これを避けるには、数式は正しいが、求められる値を見つけられないことを明示的に示します。 そこで、IFNAの第1引数にMATCH数式を入れ、第2引数にカスタムのというテキストが表示され、我々の場合は「見つかりませんでした」と表示されます。

    =IFNA(MATCH(E1, A2:A10, 0), "見つかりませんでした")

    このとき、標準のエラー表記ではなく、独自のテキストがセルに表示され、ルックアップ値がデータセットに存在しないことがユーザーに通知されます。

    VLOOKUPを使ったIFNAの使い方

    多くの場合、#N/AエラーはVLOOKUP、HLOOKUP、LOOKUP、MATCHのような何かを探す関数で発生します。 以下の例は、いくつかの典型的な使用ケースをカバーしています。

    例1.IFNA VLOOKUPの基本的な計算式

    VLOOKUPが一致を見つけられないときに発生する#N/Aエラーをトラップするには、IFNAを使ってその結果をチェックし、エラーの代わりに表示する値を指定します。 この構文を使用して、既存のVLOOKUP式にIFNA関数をラップするのが一般的な方法です。

    ifna(vlookup(), ". 芳名録 ")

    このサンプルテーブルで、特定の学生(E1)のスコアを取得したいとします。 そのために、この古典的なVLOOKUP式を使用します。

    =vlookup(e1, a2:b10, 2, false)

    問題は、Nealは試験を受けていないため、彼の名前がリストになく、明らかにVLOOKUPは一致を見つけることができないことです。

    エラーを隠すために、VLOOKUPをIFNAでこのようにくくる。

    =IFNA(VLOOKUP(E1, A2:B10, 2, FALSE), "試験を受けなかった")

    この結果、ユーザーにとってそれほど威圧的な印象を与えず、より多くの情報を提供できるようになりました。

    例2.IFNAのVLOOKUPで複数のシートにまたがって調べたい場合

    また、IFNA機能は、いわゆる シーケンシャル または 連鎖 IFNA(VLOOKUP(...)式は、複数のシートまたは異なるワークブックにまたがってルックアップを行うことができます。

    IFNA(VLOOKUP(...), IFNA(VLOOKUP(...), IFNA(VLOOKUP(...), "Not found"))

    一次VLOOKUPが何も見つからなかった場合、そのIFNA関数は目的の値が見つかるまで次のVLOOKUPを実行します。 すべてのルックアップが失敗した場合、数式は指定されたテキストを返します。

    異なるクラスのスコアが異なるシート(名前は クラスA , Bクラス そして クラスC あなたの目標は、現在のワークシートのセル B1 に入力されている特定の生徒のスコアを取得することです。 タスクを実行するには、次の数式を使用します。

    =IFNA(VLOOKUP(B1, 'Class A'!A2:B5, 2, FALSE), IFNA(VLOOKUP(B1, 'Class B'!A2:B5, 2, FALSE), IFNA(VLOOKUP(B1, 'Class C'!A2:B5, 2, FALSE), "Not found") ))

    この式は、VLOOKUPがネストされた順番に3つのシートで指定された名前を順次検索し、最初に見つかった一致するものをもたらします。

    例3.IFNAとINDEX MATCHの組み合わせ

    同様に、IFNAは他のルックアップ関数で発生する#N/Aエラーをキャッチすることができる。 例として、INDEX MATCH式と一緒に使ってみよう。

    =IFNA(INDEX(B2:B10, MATCH(E1, A2:A10, 0)), "見つかりませんでした")

    INDEX MATCHはルックアップを実行し、IFNAは結果を評価し、参照される値が見つからない場合は#N/Aエラーをキャッチします。

    IFNAが複数の結果を返すこと

    内部関数(すなわち 価値 引数)が複数の値を返した場合、IFNAは返された値を個別にテストし、結果の配列を出力します。 例えば、以下のようになります。

    =IFNA(VLOOKUP(D2:D4, A2:B10, 2, FALSE), "見つかりませんでした")

    動的配列Excel(Microsoft 365、Excel 2021)では、一番上のセル(E2)に通常の数式を入力すると、自動的に隣のセルにすべての結果がこぼれます(Excelでいえば、スピルレンジと呼ばれます)。

    Dynamic以前のバージョン(Excel 2019以下)では、Ctrl + Shift + Enterのショートカットで完成する複数セルの配列数式を使用することで、同様の効果を得ることができます。

    IFNAとIFERRORの違いは何ですか?

    問題の根本原因によって、Excelの数式は#N/A、#NAME、#VALUE、#REF、#DIV/0、#NUMなど、さまざまなエラーを引き起こします。 IFERROR関数はこれらのエラーをすべてキャッチしますが、IFNAは#N/Aに限定されています。 どれを選ぶのがよいのでしょうか? 状況によって違います。

    を抑制したい場合 エラー 特に、複雑な計算をする場合、計算式に複数の関数が含まれていて、それらが異なるエラーを発生させる可能性がある場合に有効です。

    ルックアップ機能 IFNAは、ルックアップ値が見つからない場合にのみカスタム結果を表示し、数式自体の根本的な問題を隠さないため、IFNAを使用することをお勧めします。

    この違いを説明するために、基本的なIFNA VLOOKUP式を復活させ、関数名のスペルを「誤って」(VLOOKUPではなくVLOKUP)間違えるとしましょう。

    =IFNA(VLOKUP(E1, A2:B10, 2, FALSE), "試験を受けなかった")

    IFNAはこのエラーを抑制しないので、関数名のいずれかに問題があることがはっきりわかる。

    では、IFERRORを使用するとどうなるか見てみましょう。

    =IFERROR(VLOKUP(E1, A2:B10, 2, FALSE), "試験を受けなかった")

    うーん、Oliviaは試験を受けなかったと書いてありますが、これは事実ではありません!これは、IFERROR関数が#NAME? エラーをトラップして、代わりにカスタムテキストを返すからです。 この状況では、間違った情報を返すだけでなく、数式の問題も不明瞭にしています。

    以上、ExcelでIFNA式を使う方法でした。 読んでいただきありがとうございました!来週のブログでお会いできるのを楽しみにしています。

    ダウンロード可能なもの

    Excel IFNAの計算式例(.xlsxファイル)

    Michael Brown は、ソフトウェア ツールを使用して複雑なプロセスを簡素化することに情熱を注ぐ熱心なテクノロジー愛好家です。テクノロジー業界で 10 年以上の経験があり、Microsoft Excel と Outlook、さらに Google Sheets と Docs のスキルを磨いてきました。 Michael のブログは、彼の知識と専門知識を他の人と共有することに特化しており、生産性と効率を向上させるためのわかりやすいヒントとチュートリアルを提供しています。経験豊富なプロフェッショナルであろうと初心者であろうと、Michael のブログでは、これらの重要なソフトウェア ツールを最大限に活用するための貴重な洞察と実践的なアドバイスを提供しています。