VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】

VLOOKUP関数【キッカリ検索編】では、下のようなB2番地に B1番地に入力された[顧客コード]に該当する顧客名を、一覧表から探し出し、表示させる方法をご紹介しました。

でも、VLOOKUP関数は[検索値]となるセルに何も入力されていないと #N/Aエラーが表示されてしまいます。

この解決法はVLOOKUP関数で#N/Aエラーを回避!でご紹介した通りです。
でも実は[検索値]に何も入力されていないケースの他に、もう1つ#N/Aエラーが出てしまうケースがあるんです!

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】1 それは[検索値]となるセルに入力ミスをした場合。
[範囲]に指定した一覧表から該当するものを見つけられないのでエラーが出てしまいます。

このページでは#N/Aエラーが出てしまう2つの要因、 [検索値]となるセルに何も入力していないケースと、入力ミスをしてしまった場合の 両方に対応できるエラー回避法をご紹介します!
でもその前に、まだこちらのページをご覧いただいていない方は最初にご覧ください。


まず、今回の場合、[検索値]に何も入力されていないのか、 そして入力ミスをしていないかというのをExcelに判断させる、と考えるのではなく、 もっと単純に『自分が設定するVLOOKUP関数の数式は、エラーになるか』というのをExcelに判断させます。

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】2 数式がエラーになるかどうかを判定させるのはISERROR関数を使えばいいので、 この判定のための数式はこんな風になります。

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】3 更にVLOOKUP関数がエラーになるかどうか判定した後、 エラーとなる場合には、そのエラーが表示されないよう空欄に、 エラーとならない場合にはVLOOKUP関数で[検索値]となる「顧客コード」を基準に「顧客名」を求めるわけです。
これを図にして整理するとこんな風になりますね。

上の図のようにエラーとなるかどうかでその後の動きを2つに切り分けるわけですから、 ここはやはりIF関数を使います。

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】4 IF関数の引数に合わせて今回やりたいことを整理してみます。

ここまでやりたいことを整理できれば、あとは設定するだけです。
早速数式を設定してみます。


VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】5 数式を設定したいセルを選択し、 IF関数を選びます。

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】6 上の図で整理した通り、 [論理式]ではISERROR関数を使いエラーが出るかどうかを判定します。
[論理式]にISERROR関数を入れなくてはならないので [論理式]の欄にカーソルが入っていることを確認後、 数式バーの左にある[▼]をクリックし ISERROR関数を選びます。

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】7 ダイアログボックスがISERROR関数のものに変わり、 数式バーを見てもIF関数の中にISERROR関数が入ったことが分かります。
ここでISERROR関数の引数を設定するわけですが、やはり先程まで整理した通り、 ISERROR関数の中にVLOOKUP関数を入れなければなりません。
[テストの対象]の欄に文字カーソルがあることを確認し、数式バーの左にある[▼]をクリックし、VLOOKUP関数を選びます。

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】8 これでISERROR関数の中に更にVLOOKUP関数が入りました。

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】9 ダイアログボックスもVLOOKUP関数のものに変わったので、 VLOOKUP関数の引数を設定します。

さて、VLOOKUP関数の引数を設定すると、安心して[OK]ボタンを押したくなりますが 絶対に押してはいけません(笑)。まだ早いっす。

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】10 なぜならここまでの作業は、最初に入れたIF関数の[論理式]を設定しただけで まだ[真の場合]や[偽の場合]の引数は設定していないからです。

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】11 IF関数の残りの引数を設定するため、 関数のダイアログボックスをIF関数のものに戻します。
下の図のように、数式バーの「IF」の文字をクリックすると・・・

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】12 ダイアログボックスが「IF」のものに戻り、 [論理式]の欄にはここまで設定した数式が入っていることが分かります。

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】13 [論理式]に設定した条件に該当していた場合、 つまりVLOOKUP関数の数式にエラーが出る場合には空欄を表示させたいわけですから、 [真の場合]には「空欄」を意味するダブルクォーテーション2つを入力します。

[論理式]に設定した条件に当てはまらなかった場合、 つまりVLOOKUP関数の数式にエラーが出ない場合には、 VLOOKUP関数で「顧客コード」に該当する「顧客名」を求めなければならないわけですから、 [偽の場合]にはもう一度VLOOKUP関数を設定します。

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】14 [偽の場合]の欄に文字カーソルを入れ、 数式バー左の[▼]をクリック、VLOOKUP関数を選びます。
先程VLOOKUP関数を使ったばかりなので、[▼]の隣にも[VLOOKUP]が表示されています。 [▼]をクリックして選ぶ代わりに[VLOOKUP]をクリックしても構いません。

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】15 数式バーを見るとVLOOKUP関数が追加されたことが分かり、

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】16 ダイアログボックスも追加されたVLOOKUPのものに変わったので、 全ての引数を設定します。
ここまでで全ての引数を設定し終わったので、最後に[OK]ボタンをクリックします。

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】17 VLOOKUP関数の数式がエラーにならない場合、 つまり[検索値]が空欄でもなく、入力ミスも無い場合は ちゃんと答えが表示されますが、

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】18 [検索値]となるセルが空欄の場合や、

VLOOKUP関数で#N/Aエラーを回避【ISERROR関数編】19 [検索値]となるセルに入力ミスをするとエラーとなるので、 そのエラーは表示されず、空欄となっていることがわかります!

スポンサーリンク