PR

【Excel】VLOOKUP関数で左側を検索する方法|CHOOSE関数で解決する裏技と注意点

Excel
記事内に広告が含まれています。

「VLOOKUP関数で左側を検索したいのにできない…」

・検索したい列が左にある
・列を並び替えられない
・既存ファイルだから構造を変えられない

実務でExcelを使っていると、一度はぶつかったことがあるのではないでしょうか。

結論から言うと、VLOOKUP関数とCHOOSE関数を組み合わせれば“左側検索”は可能です。
ただし、この方法には注意点もあります。

この記事では、VLOOKUP関数で左側を検索する方法を図解で分かりやすく紹介するとともに、注意点や他に使うべき関数まで、実務目線で解説します。

🔍今回の記事で分かること
  • なぜVLOOKUP関数は左検索できないのか
  • CHOOSE関数を使った具体的な解決方法
  • 実務で使う際の注意点と他に使うべき関数

なぜVLOOKUP関数は左側を検索できないのか?

まず前提として、VLOOKUP関数は、
・「検索範囲の一番左の列」からしか検索できない
という仕様となっています。

VLOOKUP関数の構文は以下のとおりです。

=VLOOKUP(検索値, 範囲, 列番号, 検索方法)

ここで重要なのは「列番号」です。
列番号は、指定した範囲の左端を1として数えます。

つまり、
・検索列が左端にないと使えない
・右から左へは検索できない

これが、左検索できない問題の正体です。

VLOOKUP×CHOOSEで左側を検索する方法

実はVLOOKUP関数とCHOOSE関数と組み合わせることで、左側を検索することができます。

CHOOSE関数は簡単に言うと、
・指定した番号に対応する値を返す関数
です。
CHOOSE関数の構文は以下の通りです。

=CHOOSE(インデックス,値1,[値2],[値3],...)

例えば以下のような表から、”ニンジン”の金額を検索するとします。
この場合、”品名”より”金額”が左側にあるので、VLOOKUP関数単体では検索できません。

この場合、CHOOSE関数と組み合わせることで、”金額”を検索することができます。
以下のように入力します。

=VLOOKUP(E2,CHOOSE({1,2,3},C1:C7,B1:B7,A1:A7),3,0)

これで、左側の”金額”を検索することができます。

何が起きているのか?

なぜ左側を検索することができるのか?
それは、CHOOSE関数が「仮想テーブル」を作ってるからです。

CHOOSE関数部分は、以下のように入力しています。

=CHOOSE({1,2,3},C1:C7,B1:B7,A1:A7)

これは、
・1列目:C列
・2列目:B列
・3列目:A列

という新しい配列を作成し、VLOOKUP関数で検索する範囲に使用しています。

つまり、
・CHOOSE関数で列の並び順を入れ替えた“仮想の表”を作成し、VLOOKUP関数が参照する範囲を組み替えている
することによって、VLOOKUP関数での検索を可能にしているのです。

メリットと注意点|VLOOKUP×CHOOSEを使う前に知っておくべきこと

VLOOKUP×CHOOSEを組み合わせることでのメリットと注意点をまとめました。

★VLOOKUP×CHOOSE組み合わせの”メリット”
✅表の構造を変えなくていい
✅列の並び替え不要
✅既存ファイルでも使える

VLOOKUP関数で検索するために、わざわざ列の並び替えをしたことがある人もいると思います。
CHOOSE関数で列の並び替えをすることにより、元の表を編集せずに済むというメリットはあります。

このように応急処置としては非常に優秀ですが、注意点もあります。

★VLOOKUP×CHOOSE組み合わせの”注意点”
⚠️可読性が悪い
⚠️ファイルが重くなる可能性がある

⚠️根本的な解決ではない

入力した数式が、パっと見分かりにくいという注意点があります。
内容を修正するときや、第三者が理解するのに時間がかかったりする可能性があります。

VLOOKUP×CHOOSEの組み合わせは、必要な場合に限定して活用することをオススメします。

結局どれを使うべき?実務での最適な選択

今回はVLOOKUP関数で左側のデータを検索する方法を紹介しました。
CHOOSE関数と組み合わせることで、左側のデータを検索できますが、数式が複雑になって可読性が悪くなったりと、使うときは注意が必要です。

現在のExcelであれば、XLOOKUP関数がシンプルで安全

現在のExcel環境であれば、XLOOKUP関数を使うのが最もシンプルで安全です。

XLOOKUP関数であれば、
✅左右どちらでも検索が可能
✅列番号指定が不要
✅列挿入しても壊れにくい
✅可読性が高い

など、VLOOKUP関数と比べて使いやすい数式です。

先ほどの表だと、以下のように入力すれば”金額”を検索することができます。

=XLOOKUP(E2,C1:C7,A1:A7)

圧倒的にシンプルで分かりやすいですよね。

👉XLOOKUP関数の使い方については、様々な記事を出しております。
部分一致やAND/OR検索など、さらに活用できる内容をまとめているので、ぜひチェックしてみてください。

とはいえ、「XLOOKUP関数が使えない環境」というケースもあります。

それでもVLOOKUP関数を使うべきケース

たとえば、Excel 2016などXLOOKUP関数が使えない環境では、VLOOKUP関数を使うしかないケースもあります。
また、会社の共有ファイルがVLOOKUP関数前提で設計されている場合、互換性を優先する必要があるでしょう。
「XLOOKUP関数が使えないからVLOOKUP関数で対応したい」という状況では、CHOOSE関数との組み合わせも現実的な選択肢になります。

✅Excel2016など古い環境
✅共有ファイルの互換性が必要
✅既存ブックを壊せない
などの場合、VLOOKUP×CHOOSEも”現実解”となります。

まとめ|VLOOKUP関数で左検索はできる。でも状況に合わせた関数選択をするのがベター

VLOOKUP関数で左側を検索する方法はあります。
しかしそれは“応急処置”的な考えで使用したほうがいいと考えます。

VLOOKUP×CHOOSEは便利なテクニックですが、これから新しく設計するなら、将来性や保守性も考えた関数選択を意識しましょう。

これから新しく設計するなら、最初からXLOOKUP関数を使う方が安全です。
もしXLOOKUP関数をまだ使ったことがないなら、仕組みから理解しておくことをおすすめします。

ただどうしてもXLOOKUP関数が使えない、でも左側のデータを検索したい、というケースは、今回の記事を参考にしてみてください。

最後まで読んでいただき、ありがとうございました。

ろじゃー

仕事・子育てに奮闘中の社会人です。
仕事でも日常生活でも、ちょっとでも便利になることが紹介できるブログを書いています!
 
仕事柄、PC操作やエクセル、VBAなどは得意です!
Excel歴は10年以上の事務職。
関数やVBAを活用して、資料作成やデータ分析をはじめとした様々な業務の効率化・自動化に取り組んできました。
 
このブログでは、実際の業務で使える効率化テクニックを発信しています。
「わからない」や「困った」など問題を抱える方や、もっと効率化したいと思っている方に、少しでも役立てれば幸いです!

ご質問・ご相談など、お気軽にご連絡ください。

ろじゃーをフォローする
ご質問・ご相談はこちらへ!
 ろじゃー|日々、ちょっとずつ良くなることを目指すブロガー
Excel歴10年以上。VBAや関数、業務効率化などを発信中。
📩 お問い合わせはこちら
Excel
シェアする
ろじゃーをフォローする

コメント

タイトルとURLをコピーしました