「isna関数とは ISERROR関数 違い」
という検索キーワードでアクセスがありました。
ExcelのISNA関数とISERROR関数の違いを調べていた方による検索です。
ISNA関数は#N/Aエラーだけを真と判定
ISNA関数はExcelで発生する昔からの7種類のエラーの中で、#N/Aエラーかどうかだけを判定してTRUEまたはFALSEという論理値を返すのに対し、ISERROR関数は全てのエラーでTRUEを返します。
A列に7種類のエラーを発生させ、B2セルにISERROR関数を使った
=ISERROR(A2)
という数式を入力し、C2セルにはISNA関数を使った
=ISNA(A2)
という数式を入力してから、8行目までオートフィルすると下図のようになります。
ISERROR関数を入力したB2:B8セルにはすべてTRUEが表示されるのに対し、ISNA関数を入力したC2:C8セルはFALSEでC8セルだけにTRUEが表示されます。
ISNA関数で判定できる#N/Aエラーだけは異質
Excelの7種類のエラーは、よく考えると異質なものが混在しています。
プログラミングでいうならば、#N/Aエラーだけは論理エラー的なエラーで、他のエラーはコンパイルエラーや実行時エラー的なエラーです。
#N/Aエラーは該当データが存在しなかったときに表示されるエラーであるのに対し、他のエラーは、そもそも文法的に間違っていたり、0で割り算したり、仕様を超える数値が入力されたとか、参照していたセルが削除されたといった、Excelとしてはどうしようもないエラーです。
#N/Aエラーの発生する、VLOOKUP関数やMATCH関数などで該当するデータが存在しなかった状態は、文法的あるいはExcel的には一切間違っていることがなく、計算式に指定されたとおり探してみたら該当するデータが存在しなかったというだけのことで、他のエラーとは異質です。
そのような異質なエラーである#N/Aエラーだけは、別に判定したいということがあるため用意されているのがISNA関数です。
ISERR関数で#N/Aエラーを除くエラーを判定できる
以上のとおり、#N/Aエラーでは#N/Aエラーだけを判定できるのに対し、#N/Aエラーを除いた他のエラーだけを判定する関数も用意されています。
ISERR関数です。
ISERR関数は、ISNA関数とは逆に、#N/AエラーだけはFALSEで、他のエラーをTRUEと判定します。
先ほどの表のD列に
=ISERR(A1)
と数式を入力して、D8セルまでオートフィルすると下図のような状態になります。
- 『もしかして、論理式がよくわからないままExcelを…』のコラム目次
- 『もしかして、論理式がよくわからないままExcelを使ってませんか?: 条件付き書式はIF関数といっしょに理解しよう!』リリースしました。
最終更新日時:2019-04-11 13:08
- Newer:PowerPoint VBAでセクションを追加する
- Older:VBAで特定の列から空白セルを取得する
Home » Excel(エクセル)の関数・数式の使い方 » 論理・情報 » ISNA関数とISERROR関数の違い