

こんばんは。
超初心者です。教えてください。
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) Formulaプロパティーを使ってセルに数式を組んだのですが簡潔にしたい。 3 2022/08/21 20:51
- Excel(エクセル) Excelの関数についての質問です。(vlookup関数) A列 B列. C 1 大阪 50. 検索 6 2023/08/11 13:35
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) マクロを簡潔にしたい 6 2022/09/16 10:37
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) エクセルのvlookupについて質問です 3 2023/01/05 15:15
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- その他(Microsoft Office) エクセルについて教えてください。 2 2022/10/20 14:55
- Excel(エクセル) 下記エクセルの式がなぜこうなるのか理由が知りたいです。 6 2022/08/20 00:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
VBAでfunctionを利用しようとし...
-
お助けください!VBAのファイル...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
VBA データ(特定値)のある最...
-
ApplicationとWorksheetFunctio...
-
実行時エラー 438 の解決策をお...
-
エクセルVBAでApplication.Sum...
-
VB.NETでMessageBoxが表示され...
-
【VB.NET】 パワポ操作を非表示で
-
レコード登録時に「演算子があ...
-
VBA GoTo Error 処理が上手くい...
-
エラーの種類
-
ACCESSで値を代入できないとは?
-
String""から型'Double'への変...
-
On ErrorでエラーNoが0
-
ASPでこんなエラーが出たんです...
-
C言語のエラーについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロOn Error GoTo ErrLabel...
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
String""から型'Double'への変...
-
文字列内で括弧を使うには
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
インポート時のエラー「データ...
-
【VBAエラー】Nextに対するFor...
-
ACCESSで値を代入できないとは?
-
【Access】Excelインポート時に...
-
VBでSQL文のUPDATE構文を使った...
-
【VB.NET】 パワポ操作を非表示で
-
「実行時エラー '3167' レコー...
-
実行時エラー 438 の解決策をお...
-
実行時エラー'-2147467259(8000...
おすすめ情報