Excel(エクセル)で VLOOKUP 関数を用いてデータを検索をする場合において、検索値と一致するデータが存在しないとエラー表示「#N/A」が出てしまいます。
今日は、このエラー表示「#N/A」を出さない方法を紹介します。
最初に1でVLOOKUP 関数の使い方から説明していますが、不要な方はパスして下さい。
1、VLOOKUP 関数の使い方
さて、以前にこちらの記事で説明した内容と同じですが VLOOKUP 関数の使い方を説明しておきます。
VLOOKUP 関数 は「=VLOOKUP(検索値,範囲,列番号,検索方法)」となり4つの引数を用います。
少々ややこしい関数ですが、まず「引数が4つ」ということを覚えると良いと思います。
例えば、次のように従業員の情報(名前、性別、年齢)をまとめた表があったとします。
そして、セル「H4」に入力する従業員の「名前」から「性別」と「年齢」の情報を引っ張り出したい場合、
・性別を表示させるセル「H5」に「=VLOOKUP(H4,B6:D15,2,FALSE)」
・年齢を表示させるセル「H6」に「=VLOOKUP(H4,B6:D15,3,FALSE)」
と関数を入力します。
その状態で従業員の「名前」をセル「H4」に入力すると、その従業員の「性別」と「年齢」の情報がそれぞれセル「H5」とセル「H6」に表示されます。例えば名前が「あああ」の従業員であれば↓のようになります。
同様に、名前が「おおお」の従業員であれば↓のようになります。
このように、個々の従業員の情報を「名前」という条件から検索できるようになるのです。
さて、4つの引数(検索値,範囲,列番号,検索方法)の意味について説明したいと思います。
検索値
まず、「検索値」というのは検索の条件のことです。この例では従業員の「名前」という条件で検索していることになります。
性別を表示させるセル「H5」に「=VLOOKUP(H4,B6:D15,2,FALSE)」と入力しました。「検索値」はセル「H4」となっており「H4」に入力された「名前」と一致する従業員の情報を取り出すことになります。
範囲
「範囲」とは検索の条件である「検索値」の候補となるデータごとの情報の集まりです。上の例ではB6~D15が該当し「B6:D15」のように書きます。
ここで1点注意が必要なのですが、「検索値」の候補となるデータはこの「範囲」の一番左側の列(B列)にしなければなりません。
「名前」の候補がB列に並んでなければならないということです。
「あああ~こここ」までの名前の中から「検索値」に一致するものを探し出します。
列番号
「列番号」とは「範囲」の中で「検索値」の候補となるデータの列を1列目とした場合に、何列目の情報を取り出したいかを表します。
・1列目(B列) 「名前」
・2列目(C列) 「性別」
・3列目(D列) 「年齢」
となります。
「性別」を表示させるセル「H5」の場合は、この「列番号」は2(列目)となります。
検索方法
最後の「検索方法」ですが、「TRUE」、「FALSE」のいずれかを入力します。
・TRUE 近似一致
・FALSE 完全一致
という意味です。
上の例ではFALSE としており、セル「H4」に入力した「検索値」とB列の「検索値」の候補となるデータが 完全に一致するものを取り出します。
セル「H4」に「おおお」と入力した場合は、B列の名前(検索値の候補となるデータ)から「おおお」と完全に一致する場合の情報を取り出すということです。
*なお、「検索方法」をTRUEにして良いケースというのは「検索値」の候補となるデータが数値の場合です。
セル「H5」の数式により
①B列の中で検索値「おおお」と完全に一致するデータを探す
②「おおお」と同じ行で 2列目のデータを探す
ということをやっているのです。
2、エラー表示「#N/A」が出てしまうケース
さて、 この VLOOKUP 関数を用いる場合において、エラー表示「#N/A」はどのようなときに出てしまうのか?
具体例を見てみましょう。
上のシートでセル「H4」に名前として「さささ」と入力してみます。
すると「性別」を表示するセル「H5」と、「年齢」を表示するセル「H6」にエラー表示 「#N/A 」が出てきます。
これは、検索値である名前「さささ」と一致するデータがB列(B6~15)に存在しないために起こることです。
3、IFERROR 関数を用いてエラー表示「#N/A」を出さない方法
このエラー表示「#N/A」を出さないようにしたいと思います。
もし検索値と一致するデータが存在しなかった場合、エラー表示ではなく空白のままにすることにします。
IFERROR 関数を用います。
IFERROR 関数は、「=IFERROR(値, エラーの場合の値)」のように記述して使います。
「値」がエラーの場合、「エラーの場合の値 」を表示し
それ以外の場合は、「値」をそのまま表示します。
セル「H5」に「=IFERROR(VLOOKUP(H4,B6:D15,2,FALSE),””)」と入力しましょう。
これによって、「VLOOKUP(H4,B6:D15,2,FALSE)」の計算結果がエラーの場合セル「H5」は「””(空白)」となり、それ以外の場合には「VLOOKUP(H4,B6:D15,2,FALSE)」の計算結果が 表示されます。
同様にセル「H6」には、「=IFERROR(VLOOKUP(H4,B6:D15,3,FALSE),””)」と入力します。
これにより、該当する「名前」が無い場合には「性別」と「年齢」は表示されないようになりました。
4、まとめ
IFERROR 関数を用いて、エラー表示を出さない方法は VLOOKUP 関数を用いる場合以外でも使えます。
エラー表示「#N/A」が出るとうっとうしいので、そのような場合にはなるべく使うようにしています。