

こんばんは。
超初心者です。教えてください。
VLOOKUP関数で、検索結果がみつかったらその値を表示する式で
=IF(ISERROR(VLOOKUP(A1,表,列,処理方法)),"",VLOOKUP(A1,表,列,処理方法))
という書き方と
=IF(ISNA(VLOOKUP(A1,表,列,処理方法)),"",VLOOKUP(A1,表,列,処理方法))
という書き方をみつけました。
1.どちらがよいのでしょうか?
2.どちらも同じ答えがでるのでしょうか?
3.またISERRORとISNAでは何が違うのでしょうか?
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんばんは。
>=IF(ISERROR(VLOOKUP(A1,表,列,処理方法)),"",VLOOKUP(A1,表,列,処理方法))
こちらがオーソドックスだと思います。
理由は、VLOOKUPの吐き出すエラーの種類は、VLOOKUPは、#VALUE!, #REF!, #N/A!, #NAME! があります。(他にも出るかもしれません)
#N/A! というのは、
VLOOKUP(検索値,範囲,列番号,検索の型)
この中の「検索値」が見つからなかったことに対して、エラーを出さないようにするためのものです。ISERRORでも基本的には同じことです。ワークシートの数式入力というは、心理的に短いほうを選ぶという習慣がありますが、こういうときは、ISERRORという何でもエラー対応のほうが安心できます。しかし、ISNA でも間違いではありません。
ありがとうございました。
実はISERRORで作成していたのですが、
いろいろインターネットをみていたらISNAで
作られているものが多く、「間違った」と不安に
なっていたのでした。
ありがとうございます。
No.2
- 回答日時:
ISNA関数はテスト対象セルの値が#N/Aのエラーの時TRUEを返す.
ISERROR関数はテスト対象セルの値がエラーの時TRUEを返す。
ISERRはエラーが#N/Aのエラー以外の時TRUEを返す.
ーー
VLOOKUP関数は関数を入力する段階のエラーを除き、検索値が、表に
見つからないというエラーがほとんど(注)で、その場合#N/Aが出るから
質問のケースはどちらでも良いということだと思う。
ISERR関数を使うと不適当ということはいえるが。
ISNAはせいかくに捉えていつとも言えるが、それ以外のエラーの予防線を張っておくことも用途も言えるし、他の関数も含めて一律で
やるというのもありと思う。
(注)(1)前もってVLOOKUPを入れておくが、第1引数が未入力でエラー
(2)第1引数が入力されたが、検索表に見当たらないのでエラー
の2種ある。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
String""から型'Double'への変...
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
ACCESSで値を代入できないとは?
-
【VBA】ワークブックを開く時に...
-
「実行時エラー '3167' レコー...
-
文字列内で括弧を使うには
-
Filter関数を用いた結果、何も...
-
Findプロパティを取得できません
-
助けてください
-
ExecuteNonQueryメソッドの戻り値
-
グローバル変数はDLLの中で使え...
-
グラフを表示するとき「’~’メソ...
-
コンボボックスの特定項目だけ...
-
ApplicationとWorksheetFunctio...
-
VBAでのファイル読込エラー...
-
【Access】Excelインポート時に...
-
pythonのopenpyxlについて
-
インポート時のエラー「データ...
-
Perlのエラーについてご教授く...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
【VBA】ワークブックを開く時に...
-
VBAでfunctionを利用しようとし...
-
String""から型'Double'への変...
-
実行時エラー 438 の解決策をお...
-
マクロで"#N/A"のエラー行を削...
-
レコード登録時に「演算子があ...
-
文字列内で括弧を使うには
-
【Access】Excelインポート時に...
-
インポート時のエラー「データ...
-
Filter関数を用いた結果、何も...
-
ApplicationとWorksheetFunctio...
-
On ErrorでエラーNoが0
-
Excel vbaについての質問
-
ACCESSで値を代入できないとは?
-
VBA データ(特定値)のある最...
-
【VBAエラー】Nextに対するFor...
-
「実行時エラー '3167' レコー...
-
実行時エラー'-2147467259(8000...
おすすめ情報