ExcelのISNA関数と計算式例

  • これを共有
Michael Brown

このチュートリアルでは、ExcelでISNA関数を使用して#N/Aエラーを処理するさまざまな方法について掘り下げて説明します。

Excelでは、求められたものが見つからない場合、セルに#N/Aエラーが表示されます。 このようなエラーを遮断して処理するには、ISNA関数を使用します。 実用的にはどうでしょうか。 基本的には、数式をより使いやすく、ワークシートをより見やすくするために役立ちます。

    ExcelのISNA関数

    Excel ISNA関数は、セルや数式に#N/Aエラーがないかどうかをチェックします。 結果は、#N/Aエラーが検出された場合はTRUE、それ以外はFALSEという論理値です。

    この機能は、Excel 2000から2021までのすべてのバージョンとExcel 365で使用できます。

    ISNA関数の構文は、可能な限りシンプルである。

    イズナ(値)

    どこ 価値 は、#N/Aエラーをチェックしたいセル値または数式です。

    ISNAの数式を基本形として作成するには、セル参照を唯一の引数として与えます。

    =ISNA(A2)

    参照されたセルに#N/Aエラーがある場合はTRUEを、それ以外のエラーや値、空白のセルの場合はFALSEを返します。

    エクセルでISNAを使う方法

    ISNA関数をそのまま使うのはあまり意味がなく、他の関数と一緒に使って、ある式の結果を評価することが多い。 その場合は、その他の式を 価値 ISNAの論考。

    ISNA( your_formula ())

    以下のデータセットにおいて、2つのリスト(A列とD列)を比較し、両方のリストに存在する名前とリスト1にのみ現れる名前を特定したいとする。

    A3の名前とD列の各名前を比較する場合、計算式は次のようになる。

    =match(a3, $d$2:$d$9, 0)

    ルックアップ値が見つかった場合、MATCH関数はルックアップ配列内の相対位置を返し、そうでない場合は#N/Aエラーが発生します。 MATCHの結果をテストするために、ISNAでネストしています。

    =isna(match(a3, $d$2:$d$9, 0))

    この数式はB3に入り、B14までコピーされる。

    これで、どの学生がすべてのテストに合格し(D列に名前がない> MATCHが#N/Aを返す> ISNAがTRUEを返す)、どの学生が少なくとも1つのテストに失敗した(D列に名前がある> エラーなし> ISNAがFALSEを返す)かが明確にわかります。

    ヒント:Excel 365やExcel 2021では、MATCHの代わりに、よりモダンなXMATCH関数.を使用することができます。

    ExcelのIF ISNA式

    ISNA関数は、設計上、2つのブール値しか返すことができません。 カスタムメッセージを表示するには、IF関数と組み合わせて使用します。

    if(isna(...)、". テキスト_if_error ", " テキスト_if_no_error ")

    この例をもう少し詳しく説明すると、Aグループの学生のうち、どの学生もテストに失敗していない場合は「No failed tests」を返し、残りの学生には「Failed」を返します。 これには、ISNA MATCH式をIFの論理テストに埋め込み、IFが一番外側の関数となるようにします。

    =IF(ISNA(MATCH(A3,$D$2:$D$9,0)), "No failed tests", "Failed")

    結果は、より良く、より直感的になったように見えますが、いかがでしょうか?

    VLOOKUPを使ったExcelでのISNAの使い方

    IF ISNAの組み合わせは、データセットから何かを検索し、ルックアップ値が見つからない場合は#N/Aエラーを返すような関数であれば、どのようなものでも使用できる汎用的なソリューションである。

    VLOOKUPを使ったISNA関数の構文は以下のとおりです。

    if(isna(vlookup(...), ") カスタムテキスト ", vlookup(...))

    人間の言葉に訳すと、「VLOOKUPの結果が#N/Aエラーの場合はカスタムテキストを返し、そうでない場合はVLOOKUPの結果を返す」ということになります。

    このサンプルテーブルでは、学生がテストに失敗した科目を返すとします。 すべてのテストに合格した学生には、「No failed tests」と表示されます。

    被験者を調べるには、この古典的なVLOOKUP式を構築します。

    =vlookup(a3, $d$3:$e$9, 2, false)

    そして、それを前述した一般的なIF ISNAの式に入れ込む。

    =IF(ISNA(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "失敗したテストはありません", VLOOKUP(A3, $D$3:$E$9, 2, FALSE))

    Excel 2013以降のバージョンでは、IFNA関数を利用して#N/Aエラーを検出し処理することができます。 これにより、数式が短くなり、読みやすくなります。

    例として、#N/Aのエラーをダッシュ("-")に置き換えると、このようなエレガントなソリューションが得られます。

    =ifna(vlookup(a3, $d$3:$e$9, 2, false), "-")

    Excel 365や2021のユーザーは、VLOOKUPの最新の後継であるXLOOKUP関数がネイティブに#N/Aエラーを処理できるため、ラッパー関数は全く必要ありません。

    =xlookup(a3, $d$3:$d$9, $e$3:$e$9, "-")

    結果は上のスクリーンショットと全く同じになります。

    N/AエラーをカウントするSUMPRODUCT ISNAの公式

    ある範囲の#N/Aエラーをカウントするには、ISNA関数とSUMPRODUCTをこのように併用します。

    スンプロダクト(--イズナ( レンジ ))

    ここでは、ISNA が TRUE と FALSE の値の配列を返し、二重否定 (--) が論理値を 1 と 0 に強制し、SUMPRODUCT が結果を加算します。

    たとえば、すべてのテストに合格した学生の数を調べるには、ルックアップ値の範囲 (A3:A14) に対して MATCH 式を修正し、ISNA にネストさせます。

    =sumproduct(--イズナ(マッチ(a3:a14, d2:d9, 0)))

    この数式では、9人の生徒がテストに失敗していないと判断されます。つまり、MATCH関数は9つの#N/Aエラーを返します。

    以上、エクセルでのISNA数式の作り方・使い方でした。 読んでいただきありがとうございました!来週のブログでお会いできるのを楽しみにしています。

    ダウンロード可能なもの

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

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