【エクセル中級者向け】VLOOKUP関数を使う中で実際に困った「あるある」事例6選
AさんAさん

VLOOKUP関数にだいぶ慣れてきました!VLOOKUP関数はほんとうに便利ですねー。
ただ、場合によっては、VLOOKUP関数の数式をいちいち直さなければならないこともあるのが、ちょっと面倒ですよね。

森田森田

「数式を直す」ということは、もしかしたらVLOOKUP関数単独では対応できないケースなのでしょうね。
しかし、VLOOKUP関数は、別の関数と組み合わせたり、参照する表の構成を工夫すると、ほとんどのケースに対応できますよ!
つまり、「数式を手で直す」ことなく、関数のみで自動化できるかもしれないということです。
そう考えるとワクワクしませんか?

AさんAさん

えっ、それはすごいです!!!
もうしょうがないことだと思ってましたよ。。関数は奥が深いなー。
ぜひ、対応方法を教えてくださいっ!!!

森田森田

わかりました(笑)
今回は、私の実務経験の中で実際に困ったVLOOKUP関数の「あるある」6ケースについてご紹介していきますね。

Excelステップ講座

はじめに

本題に入る前に、この記事がおすすめな人を挙げてみます。

  • データの転記・集約作業が多い人
  • エクセルを使う頻度が高い人
  • 事務職の人

ちなみに、最低限「VLOOKUP関数の基礎」を把握している想定での記事となります。
※自信がない方はこちらの記事で学んでください。
【初心者向け】データ転記の作業時間を9割カット!VLOOKUP関数の使い方

【CASE1】同じ「検索値」の複数列のVLOOKUP関数を1回のコピペで済ませたい!

言葉だけだといまいち伝わっていない方もいると思いますが、要は以下のような状態を指しています。

この場合、同じ列であれば同じ数式をコピペすれば良いですが、違う列になるとVLOOKUP関数の引数「列番号」をいちいち手修正する必要がありますね。

これって列が多ければ多いほど面倒になります。

こちらの解決方法の詳細は下記の記事をご覧ください。↓

【中級者向け】VLOOKUP関数の引数「列番号」を自動で変更する3つのテクニック | Excelを制する者は人生を制す ~No Excel No Life~

【CASE2】VLOOKUP関数の検索を行なう表にデータ追加すると、いちいち数式中の「範囲」を直すのが面倒。。

けっこうあるあるですが、VLOOKUP関数で参照している表にデータを追加すると、その追加したデータで検索しようとすると、範囲外で「エラー」なんてことがあります。

たとえば、以下のようなイメージですね。

VLOOKUP関数が入っているセルをダブルクリック(もしくはF2キー)すると、追加したデータのみが引数「範囲」の対象外になっていることがわかりやすいですね。

こうなると、VLOOKUP関数の引数「範囲」に指定しているセル範囲を再度手作業で設定し直さければならないので面倒です。

こちらの解決方法の詳細は下記の記事をご覧ください。↓

【中級者向け】データ追加してもVLOOKUP関数の引数「範囲」を自動で拡張させる2つのテクニック | Excelを制する者は人生を制す ~No Excel No Life~

【CASE3】VLOOKUP関数で検索を行なう表の右端をキーに検索をかけたい!

つまり、以下のようなイメージですね。

上記はシンプルな2列の表で、VLOOKUP関数での取り扱いは各列以下のとおりです。

  • 左側の列(1列目)はVLOOKUP関数の戻り値(返り値)にしたいデータ群
  • 右側の列(2列目)は引数「検索値」にしたいキーワードがあるデータ群

通常は左から右方向にVLOOKUP関数は検索してくれますが、今回の表はいつもと逆で、右から左方向へ検索したいということになります。

こちらの解決方法の詳細は下記の記事をご覧ください。↓

【初心者向け】VLOOKUP関数で引数「範囲」の1番右側の列を検索したい場合の対応策 | Excelを制する者は人生を制す ~No Excel No Life~

【CASE4】VLOOKUP関数で検索したい表の中に同じ「検索値」の別データがある場合、2つ以上のキーワードで検索したい!

よくあるのは、取引などの出来事を記録している表ですね。

たとえば、次のような取引の記録をまとめた「台帳」というシートがあるとします。

この中で一意(他データと重複していない)のデータはありませんね。

B列の「日付」もC列の「商品名」も2つ以上の重複したデータばかりです。

この表を元に、VLOOKUP関数で次の「請求明細書」シートへ任意の「日付」に該当するデータをすべて明細部分(黄色の塗りつぶし範囲)へ転記したいとします。

VLOOKUP関数の仕様上、1つのキーワードしか引数「検索値」に指定できません。

よって、VLOOKUP関数を普通に使うと、たとえば”2017/1/7”を「検索値」にする場合は、2行目のデータしか検索・転記できませんね。

こちらの解決方法の詳細は下記の記事をご覧ください。↓

【中級者向け】VLOOKUP関数で同一の「検索値」が複数存在する場合に2つ以上の条件で検索する方法 | Excelを制する者は人生を制す ~No Excel No Life~

【CASE5】VLOOKUP関数で「検索値」に指定したキーワードが「範囲」の中にあるのに、なぜかエラーになってしまう。。

たとえば、次のような状態を指します。

「検索用」シートのB3セルのVLOOKUP関数がエラーになっていますね。

このVLOOKUP関数の引数「検索値」は、同じシートのA3セルにある”1”です。
また、引数「範囲」は「仕入数(数値_日付)」シートのA~C列です。

この中の1番左のA列中には”1”がA2セルにあるのに、VLOOKUP関数がエラーになっているのは不思議ですね。

こちらの解決方法の詳細は下記の記事をご覧ください。↓

【中級者向け】検索する表の中にVLOOKUP関数の引数「検索値」があるのに、なぜかエラーになる3+1ケースの原因と対策 | Excelを制する者は人生を制す ~No Excel No Life~

【CASE6】VLOOKUP関数で検索をかけたい表が複数ある場合、いちいち数式中の「範囲」を直すのが面倒。。

エクセルでデータ管理を行っていると、1つの表でなく、表を分けて管理した方がわかりやすい場合があります。

たとえば、以下のように、表の構成やデータの形式は共通しているものの、それぞれのデータを区別したいというケースです。

他にも、データを区別する基準として良くあるケースは以下のとおりですね。

  • 平日と休日
  • 会員と非会員、あるいはランク別
  • グループ別(クラス、部署、顧客属性など)
  • 時系列別(年度、月別、日別、時間別など)

こちらの解決方法の詳細は下記の記事をご覧ください。↓

【中級者向け】VLOOKUP関数の引数「範囲」を条件に応じて切り替えるテクニック【INDIRECT関数+「名前の定義」機能】 | Excelを制する者は人生を制す ~No Excel No Life~

その他、基本的なエラー対応も必要!

上記は特定の状況で起こり得るVLOOKUP関数のよくある困りごとでしたが、それ以外の基本的な部分の漏れや誤りで関数の結果がエラーになることも多いです。

だいたいの原因は、数式の入力ルールから外れていたり、VLOOKUP関数の意図しないデータを指定している、などのちょっとしたことですね。

基本的なエラー対応の詳細は下記の記事をご覧ください。↓

さいごに

VLOOKUP関数を使い込むと、上記のケースに遭遇する可能性が高くなります。

しかし、実際に解決方法をネットで探そうとしても、なかなか探しにくいものです。

私も実際に困ってネットを巡回した経験がありますが、なかなか自分の希望する内容を探すのは骨が折れました。

その経験を踏まえて、私が過去に実務で直面したVLOOKUP関数の困りごとをこの記事に丸ごと盛り込みましたので、きっとあなたのお役にも立てるはずです。

上記の各種VLOOKUP関数のテクニックは私の書籍でも紹介しているので、こちらもご参考にしていただければと思います。

▼VLOOKUP関数を基本から応用まで体系的に学びたい方向け

▼VLOOKUP関数の応用テクニックに加えて、その他IF関数なども学びたい方向け

ご参考になれば幸いですm(_ _)m

森田森田

上記以外にVLOOKUP関数の困りごとがあれば、コメントフォームでご連絡くださいね。
場合によっては、あるある事例に加えて、より一層充実した記事にしていきたいと思っています。