excel VLOOKUP()でエラーのときは何も表示させない

「VLOOKUP()」で「#N/A」が表示されるとき、空白にしたい。

作成日:2018-05-25, 更新日:2018-05-25

基本

「VLOOKUP()」で「#N/A」が表示されるのは、単純に見つからなかったとき。

▼VLOOKUP()の基本的な構文

=VLOOKUP(検索させる値,検索範囲,表示させる列数,FALSE)
A B C
1 鳥精 タレ、塩 140
2 鳥ハツ タレ、塩 130
3 豚精 タレ、塩 140
4 鳥レバー タレ、塩 130
5 豚レバー タレ、塩 130
6 豚ハツ タレ、塩 130
7 丸ごとシマウマ タレ、塩 240
8
9 ▼入力 ▼vlookupで表示
10

・「セル:A10」に「セル:A1~A7」のどれかを入力してもらう
・「セル:B10」に対応する「セル:C1~C7」のどれか表示させる

例えば・・・
・「セル:A10」に「丸ごとシマウマ」を入力すると
・「セル:B10」に「240」を表示させたい。

「セル:B10」に入力する内容

=vlookup(A10,A1:C7,3,FALSE)

■一つ目の「A10」は「検索させる値」。
「セル:A10」をどこかから探す。

■二つ目の「A1:C7」は「検索範囲」。
「セル:A1~C7」が検索範囲。

一つ目の「A10」と比較するのは「検索範囲内の一番左の列」。
つまり「A10」が「A1~A7」にあるかチェック。

■三つ目の「3」は「検索範囲」の中の「表示させる列数」。
「検索範囲:A~C」で「表示させる列数:3」なので「列C」を表示させる。

「VLOOKUP()」が「#N/A」になるとき

上記の「セル:A10」に存在しない文字を入力したとき「#N/A」が表示される。

ココからが本題。

・「#N/A」のときは空白
・「#N/A」じゃないならそのまま表示。

▼まず解答

=if(iserror(vlookup(〇,〇,〇,false)),"",vlookup(〇,〇,〇,false))

説明

▼見やすいように空白や改行をいれてみた

=if(
   iserror( vlookup(〇, 〇, 〇, false) ),
   "",
   vlookup(〇, 〇, 〇, false)
)

▼概要
・「if()」で
・「iserror( vlookup(〇, 〇, 〇, false) )」のときは空白、
・他は「vlookup(〇, 〇, 〇, false)」を表示
をしている。

一つ目の「iserror( vlookup(〇, 〇, 〇, false) )」

・「iserror()」で
・「vlookup(〇, 〇, 〇, false)」の結果を調べる
・エラーのときは「FALSE」が返ってくる。
※エラーじゃないときは・・・興味なし

「if()」で「iserror()がfalseのとき」を条件にした。

二つ目の「""」

「if()」で条件が真のときに表示する内容。

条件を「iserror()がfalseのとき」としているので「エラーのときに表示」させる内容。

三つ目の「vlookup(〇, 〇, 〇, false)」

「if()」で条件が偽のときに表示する内容。

条件を「iserror()がfalseのとき」としているので「エラーじゃないときに表示」させる内容。

「VLOOKUP()」が「0」になるとき

存在するけど・・・表示させようとしたセルが空白の場合「0」が表示される

その時は、諦める。

▼諦めるわけにいかないとき

=if(iserror(vlookup(〇,〇,〇,false)),"",if(vlookup(〇,〇,〇,false)=0,"",vlookup(〇,〇,〇,false)))

▼見やすいように空白や改行をいれてみた

=if(
   iserror( vlookup(〇,〇,〇,false) ),
   "",
   if(
      vlookup(〇,〇,〇,false)=0,
      "",
      vlookup(〇,〇,〇,false)
   )
)

条件が偽のとき、またif()で条件分岐させただけ。