目次
このチュートリアルでは、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ファイル)