Excelを勉強しましょう EnjoyExcel

アイコンの機能や関数の説明、VBA初心者向けの勉強方法について情報掲載しています。関数、VBAともに理解が進むように出来るだけ事例を交えて説明しています。

VLOOKUP関数の戻り値#N/Aを非表示にする関数の組み合わせ

f:id:EnjoyExcel:20210626121942p:plain

VLOOKUP関数の戻り値#N/Aを非表示にする関数の組み合わせ

前回の記事では動画があっただけで式についてあまり説明していませんでした。今回はもう少し式の内容について解説させていただきます。

 

先にお伝えしておきますと2つ目に紹介しているIFERROR関数だけ見ておけば9割大丈夫です。最初に説明するISERROR関数が分かりにくいと思った方は読み飛ばしてください。

 

目次でIFERROR関数までショートカット出来ますのでご利用ください。

 

前回の記事はこちらです。

enjoyexcel.hatenablog.com

関数の説明:ISERROR関数を使う

ひとまずISERROR関数を使って書いたコードはこちら。

 

=IF(ISERROR(VLOOKUP(H7,$D$5:$F$34,3,FALSE)),"該当なし",VLOOKUP(H7,$D$5:$F$34,3,FALSE))

 

なんか長いから読むの嫌になりますよね。そこをなんとかお付き合いください。

 

まず関数の建付けとしてはこんな感じ。

f:id:EnjoyExcel:20210416133028p:plain

基本はIF文になります。IF文の論理式の中にISERROR関数とVLOOKUP関数が居ます。ISERROR関数はテストの対象がFALSEを返してきたらISERROR関数はTRUEを返すという特異な関数です。

「テストの対象はエラーですよね?」と聞いてくる関数と考えると納得がいきます。

 

  • テストの対象はエラーですか? → そうです。エラーです。(可決) → TRUEを返す
  • テストの対象はエラーですか? → 違います。エラーじゃないです。(否決) → FALSEを返す

 

というかたちです。ISERROR関数はTRUEかFALSEを返す関数です。条件を設定する際のきっかけで使われる事が多いと思っています。これをふまえて以下説明を見ていきましょう。

 

セルへの戻り値有の場合

  1. IF文の論理式を確認
  2. 論理式内でISERROR関数の中にVLOOKUP関数が使われている事を確認
  3. VLOOKUP関数が実行された際戻り値がTRUEだとする(=戻り値有の場合)
  4. 3の結果からISERROR関数はFALSEを返す事になる
  5. 4の結果よりIF文の論理式はFALSEを返す事になる
  6. IF文の分岐はFALSE青枠)に進む
  7. IF文のFALSEに書かれている式を実行する(ここの式は3と同じ)

 

セルへの戻り値無しの場合(値が無いので代わりに"該当なし"を表示させる場合)

  1. IF文の論理式を確認
  2. 論理式内でISERROR関数の中にVLOOKUP関数が使われている事を確認
  3. VLOOKUP関数が実行された際戻り値がFALSEだとする(=#N/Aが出る場合)
  4. 3の結果からISERROR関数はTRUEを返す事になる
  5. 4の結果よりIF文の論理式はTRUEを返す事になる
  6. IF文の分岐はTRUE緑枠)に進む
  7. IF文のTRUEに書かれている式を実行する ここでは"該当なし"を表示している

 

ここで引っかかるのは戻り値関係無くおそらく4番です。

 

上記でも説明したのですがISERROR関数は「テストの対象はエラーですか?」と聞いてくる関数でしたね。だからエラーが出たらTRUEになります。

 

よって今回はVLOOKUP関数を実行してFALSE(エラー #N/A)が返ってきたらVLOOKUP関数の1つ外の枠にいるISERROR関数はTRUEになります。

 

反対にVLOOKUP関数でTRUEを返す時は戻り値があるという事ですのでISERROR関数からのといかけ「エラーですか」については「違います」という事になる為ISERROR関数はFALSEを返す事になります。

 

最後にIF文のFALSE部に書かれている関数について説明しておきます。これはIF文の論理式にあるVLOOKUP関数と同じです。

 

同じという事はやってる事は同じですがIF文の論理式にあるVLOOKUP関数はあくまでIF文のTRUEとFALSEを決める為の条件というかたちで採用されています。

 

IF文の論理式でVLOOKUP関数を使った結果として戻り値があるなら(IF文FALSEなら)またIF文の論理式と同じ式を使ってその値を返して(出して)

 

というロジックで式が書かれている為同じ式が2回出てくることになります。もう言いたいことは分かりますよ。「ややこしすぎるやろ」ですよね。そこで登場するのがIFERROR関数です。ISERRORのややこしさを少し改善しています。次を見ていきましょう。

関数の説明:IFERROR関数を使う

次に IFERROR で書いたコードはこちら。

 

=IFERROR(VLOOKUP(H8,$D$5:$F$34,3,FALSE),"該当無し")

 

こっちはシンプルなので画像無しでこのまま説明しますよ。

 

IFERROR(値 , エラーの時の値) 

これだけです。前方の引数 値 のところでVLOOKUP関数を実行してエラーが出たら ”該当なし" を表示してという事だけです。

 

エラーが出ない時はVLOOKUP関数の式を実行して出た値がそのまま表示されるという事になります。かなりシンプルになりましたよね。

まとめ

・・・どうでしょうか。伝わりましたでしょうか?1人で使うだけなら好みで使い分けて良いと思います。あまり深く考えずまずは使ってみましょう。これは分かりにくいので質問あればコメントお願い致します。

 

なぜ分かりにくい方法もお伝えしたかといいますとISERRORで書かれたデータに遭遇した時に分からないと困るからです。昔から使っている古いデータ等対面する可能性は排除出来ませんので知っておく必要があります。

 

あとは記憶内で2つの式が混ざってしまい間違って使っている人もいますね。IFERROR関数を使いたいのにISERRORの建付けで式を書こうとして「なんでエラーが出るんですか」と聞いてくる人も結構居ます。

 

覚えてなくても良いのでここに書いてあることを覚えておいてください。忘れたらまた見に来て・・・を繰り返せば3回ぐらいで覚えると思います。

 

繰り返しますがこのくだりは誰に教えても何回か説明が必要です。私の説明が良くないというのもあり毎回反省してます。だからほかの方の記事を見ていただくのも良いかと思いますが私に質問いただければ必ず理解出来るまで説明させていただきます。では。