今回は、
・vlookup関数で想定通りのエラー表示をエラーとでないようにしたい
・内容によって結果の出し分けをしたい
という2つの課題について解説していきます。
vlookupのエラー表示をしない方法は2パターン
エラー表示をしない方法は主に代表的に2パターンあります。
①iferror関数でエラーの場合は空白とする(任意の文字列でも可)
②if関数とiserror関数を組み合わせてエラーの場合空白とする(任意の文字列でも可)
とにかくエラーは表示させたくないんだ!という人はiferror関数・iserror関数をすぐに実装して下さい。
エラーの場合は別の計算をしないといけない、別の関数にする必要がある、という場合はif関数を使った方法を実装して下さい。
iferror関数を使ってエラーの判別をする
iferror関数では、このように関数を書きます。
=iferror(VLOOKUP($A2,$G$2:$H$10,2,false),””)
iferror関数は、第一引数を計算し、エラーかどうかを検知して、エラーではない場合第一引数を、エラーの場合は第二引数を返す、という関数です。
そのため、今回は、
第一引数の「VLOOKUP(A2,G2:H10,2,false)」を判別し
エラーでない場合→「VLOOKUP(A2,G2:H10,2,false)」の結果を返す
エラーの場合→「””」を返す。※値が空なので空白
ということになります。
任意の文字列を表示させたい場合は
エラーの場合の処理で「”問題なし”」のように記載すればOKです。
=iferror(VLOOKUP($A2,$G$2:$H$10,2,false),”問題なし”)
一番シンプルな形ですので簡単に済ませたいときはこちらをつかってください。
サンプルデータを見たい人は公開しているのでこちらをみてみてください。
iserror関数を使ってエラーを判別する
iserror関数は、引数を計算してエラーの場合はTRUE、エラーではない場合はFALSEを返す関数です。
iserrorを使う場合はif関数を組み合わせて使っていきます。
処理としては、
①vlookup関数がエラーか判別する
②エラーの場合(TRUEの場合)→空白を返す
③エラーではない場合(FALSEの場合)→vlookup関数の結果を返す
ということになります。
実際書いてみるとこんな感じになります。
=IF(iserror(VLOOKUP($A2,$G$2:$H$10,2,false)),””,VLOOKUP($A2,$G$2:$H$10,2,false))
エラーの判別→iserror(VLOOKUP($A2,$G$2:$H$10,2,false))
エラー(TRUE)の場合の処理→””
エラーではない(FALSE)の場合の処理→VLOOKUP($A2,$G$2:$H$10,2,false)
これでiferror関数と同じ結果が得られました。
個人的にはiferror関数のほうがシンプルなので、そちらをおすすめします。
こちらの関数もサンプルデータに記載してあります。
応用:if関数で条件によって関数を選び、エラー表示しない処理も加える
少し応用の解説をします。
稀にあるのが、複数の場所にデータがあり、場合によって検索する場所を変えないといけないパターンです。
if関数とiserror関数を組み合わせることでより高度な検索をできるようになります。
今回は、エラーの場合別のデータを検索するが、データの構造が若干異なる場合の関数を書いてみます。
サンプルデータはこちら
=IF(ISERROR(VLOOKUP($A2,$F$2:$G$10,2,false)),VLOOKUP($A2,$I$2:$K$10,3,false),VLOOKUP($A2,$F$2:$G$10,2,false))
処理は、
一つ目のデータ範囲からシリアル値を検索し、エラーかどうか判別→ISERROR(VLOOKUP($A2,$F$2:$G$10,2,false))
エラー(TRUE)の場合→2つめのデータ範囲から検索
エラーではない(FALSE)場合→1つめのデータ範囲から検索
こうすることで構造が異なる2つのデータ範囲から検索をかけることができます。
更に、この結果に対して、エラーの場合は空白処理をしたい、という場合は
上記の関数をiferror関数を使って囲めば良いですね。
=iferror(IF(ISERROR(VLOOKUP($A11,$F$2:$G$10,2,false)),VLOOKUP($A11,$I$2:$K$10,3,false),VLOOKUP($A11,$F$2:$G$10,2,false)),””)
このようにして組み合わせるとより高度な検索ができるようになります。
興味がある人はトライしてみてください。
まとめ
今回はvlookup関数でエラーの場合、エラー表示をしない方法を解説しました。
今回の処理は業務をやっていると使う頻度が多い関数です。
見た目もきれいになりますし、ちょっとした気遣いとしても知っておくと得な関数です。
ぜひ試してみて下さい。