電子書籍の厳選無料作品が豊富!

こんばんは。
超初心者です。教えてください。
VLOOKUP関数で、検索結果がみつかったらその値を表示する式で
=IF(ISERROR(VLOOKUP(A1,表,列,処理方法)),"",VLOOKUP(A1,表,列,処理方法))
という書き方と
=IF(ISNA(VLOOKUP(A1,表,列,処理方法)),"",VLOOKUP(A1,表,列,処理方法))
という書き方をみつけました。

1.どちらがよいのでしょうか?
2.どちらも同じ答えがでるのでしょうか?
3.またISERRORとISNAでは何が違うのでしょうか?

よろしくお願いいたします。

A 回答 (2件)

こんばんは。



>=IF(ISERROR(VLOOKUP(A1,表,列,処理方法)),"",VLOOKUP(A1,表,列,処理方法))

こちらがオーソドックスだと思います。

理由は、VLOOKUPの吐き出すエラーの種類は、VLOOKUPは、#VALUE!, #REF!, #N/A!, #NAME! があります。(他にも出るかもしれません)

#N/A! というのは、
VLOOKUP(検索値,範囲,列番号,検索の型)

この中の「検索値」が見つからなかったことに対して、エラーを出さないようにするためのものです。ISERRORでも基本的には同じことです。ワークシートの数式入力というは、心理的に短いほうを選ぶという習慣がありますが、こういうときは、ISERRORという何でもエラー対応のほうが安心できます。しかし、ISNA でも間違いではありません。
    • good
    • 1
この回答へのお礼

ありがとうございました。
実はISERRORで作成していたのですが、
いろいろインターネットをみていたらISNAで
作られているものが多く、「間違った」と不安に
なっていたのでした。
ありがとうございます。

お礼日時:2007/10/23 01:02

ISNA関数はテスト対象セルの値が#N/Aのエラーの時TRUEを返す.


ISERROR関数はテスト対象セルの値がエラーの時TRUEを返す。
ISERRはエラーが#N/Aのエラー以外の時TRUEを返す.
ーー
VLOOKUP関数は関数を入力する段階のエラーを除き、検索値が、表に
見つからないというエラーがほとんど(注)で、その場合#N/Aが出るから
質問のケースはどちらでも良いということだと思う。
ISERR関数を使うと不適当ということはいえるが。
ISNAはせいかくに捉えていつとも言えるが、それ以外のエラーの予防線を張っておくことも用途も言えるし、他の関数も含めて一律で
やるというのもありと思う。
(注)(1)前もってVLOOKUPを入れておくが、第1引数が未入力でエラー
(2)第1引数が入力されたが、検索表に見当たらないのでエラー
の2種ある。
    • good
    • 0
この回答へのお礼

ありがとうございました。
ISNAのほうが正確にとらえているのですね。
勉強になりました。
ありがとうございます。

お礼日時:2007/10/23 01:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!