Excel VLOOKUP関数で特定文字列を含む(前方一致、部分一致、後方一致)検索を行う方法

2025年12月11日

English version.

はじめに

VLOOKUP関数の通常の使用方法では、完全一致または近似一致でのデータ検索が可能ですが、「特定の文字列を含むデータ」や「先頭が一致するデータ」を探したい場合には不向きです。

本記事では、ワイルドカード(*)を活用することで、前方一致、部分一致、後方一致といった柔軟な検索を実現する方法を解説します。

また、ワイルドカードが機能しない場合のトラブル対処法や、VLOOKUP関数では解決できない応用課題への対応策も提示します。

概要解説動画

検索値を正確に捉える:VLOOKUPの基本機能の復習

VLOOKUP関数は、表の左端列を検索し、該当する行から指定した列の値を取得する関数です。

第4引数の「検索の型」では、完全一致(FALSE)または近似一致(TRUE)のいずれかを指定します。

VLOOKUP関数の基本的な制約として、通常の使用方法では検索値と完全に一致するデータ、あるいは近似値しか取得できません。

例えば「東京」という検索値では「東京都」や「東京支店」といったデータは取得できず、完全一致する「東京」のみが検索対象となります。

本記事では、この制約を克服し、以下のような検索を実現する方法を扱います。

  • 特定の文字列が含まれる(部分一致)データの取得
  • 先頭が一致する(前方一致)データの取得
  • 末尾が一致する(後方一致)データの取得

VLOOKUPで特定文字列を「あいまい検索」する仕組み

VLOOKUP関数で部分一致や前方一致といったあいまい検索を実現するキーワードは、ワイルドカード(*)です。

ワイルドカードは、任意の数の文字列を表す特殊な記号です。

0文字も含むため、例えば「東京*」という検索値は「東京」「東京都」「東京支店」のいずれにも一致します。

ワイルドカードVLOOKUP関数で利用する際は、第1引数の検索値にワイルドカードを組み込みます。

検索値が文字列の場合はダブルクォーテーションで囲み、セル参照の場合は&演算子で結合します。

重要な条件として、ワイルドカードを使用する際は第4引数の検索の型を必ずFALSE(完全一致)に設定する必要があります。

この設定により、ワイルドカードを含むパターンマッチングが有効になります。

【実例】ワイルドカード(*)を使った3つの検索パターン

ワイルドカードの配置位置により、検索の動作が変わります。

以下、具体的な3つのパターンを解説します。

前方一致検索

前方一致検索は、セルの先頭の文字列が検索値と一致するデータを抽出する方法です。

例えば「東京」で前方一致検索を行うと、「東京都」「東京支店」「東京タワー」などが該当します。

数式の記述方法として、検索値の後にワイルドカード*を付けます。

=VLOOKUP("東京*", A2:B10, 2, FALSE)

セル参照を使用する場合は、以下のように&演算子で結合します。

=VLOOKUP(D2&"*", A2:B10, 2, FALSE)

この数式では、D2セルの値(例:「東京」)の後に*が付加され、「東京*」というパターンで検索が実行されます。

後方一致検索

後方一致検索は、セルの末尾の文字列が検索値と一致するデータを抽出する方法です。

例えば「支店」で後方一致検索を行うと、「東京支店」「大阪支店」「名古屋支店」などが該当します。

数式の記述方法として、検索値の前にワイルドカード(*)を付けます。

=VLOOKUP("*支店", A2:B10, 2, FALSE)

セル参照を使用する場合の記述例は以下の通りです。

=VLOOKUP("*"&D2, A2:B10, 2, FALSE)

部分一致検索(含む検索)

部分一致検索は、セル内のどこかに検索値の文字列が含まれるデータを抽出する方法です。

例えば「東京」で部分一致検索を行うと、「東京都」「大東京」「日本国東京都渋谷区」などが該当します。

数式の記述方法として、検索値の前後に*を付けます。

=VLOOKUP("*東京*", A2:B10, 2, FALSE)

セル参照を使用する場合は、以下のように前後に*を配置します。

=VLOOKUP("*"&D2&"*", A2:B10, 2, FALSE)

この方法は「特定の文字列を含む」検索として、最も柔軟な検索パターンとなります。

応用編:VLOOKUPで部分一致の「逆引き」

VLOOKUP関数は表の左端列でのみ検索が可能であり、検索値が右側の列にある場合(逆引き)には対応できません。

例えば、A列に名前、B列にコードがある表で、コードから名前を取得することはVLOOKUP関数では実現できません。

この制約を克服する方法として、INDEX関数とMATCH関数の組み合わせが有効です。

=INDEX(A2:A48, MATCH("*東京*", B2:B48, 0))

この数式では、MATCH関数がB列(検索範囲)で「東京」を含むデータの位置を特定し、INDEX関数がその位置に対応するA列の値を返します。

MATCH関数の第3引数を0にすることで、ワイルドカードを使用した部分一致検索が可能になります。

INDEX関数とMATCH関数の組み合わせは、VLOOKUP関数よりも柔軟性が高く、検索列の位置に制約がないため、複雑なデータ構造にも対応できます。

トラブルシューティング:ワイルドカードが「使えない」場合の対処法

ワイルドカードを使用したVLOOKUP関数が期待通りに動作しない場合、以下のチェックポイントを確認してください。

チェックポイント1:検索の型(第4引数)はFALSEか

ワイルドカードを使用する際は、必ずVLOOKUP関数の第4引数をFALSE(完全一致)に指定する必要があります。

TRUE(近似一致)や省略した場合、ワイルドカードは機能しません。

誤った例:

=VLOOKUP("*東京*", A2:B10, 2, TRUE)

正しい例:

=VLOOKUP("*東京*", A2:B10, 2, FALSE)

第4引数をFALSEに設定することで、Excelはワイルドカードを特殊文字として認識し、パターンマッチングを実行します。

チェックポイント2:ワイルドカード自体を文字として検索したい場合

データ内に実際の*(アスタリスク)記号が含まれており、その記号自体を検索したい場合は、*の前に~(チルダ)を付けて~*とする必要があります。

同様に、?(クエスチョンマーク)もワイルドカードとして意味があるため文字として検索する場合は~?とします。

例えば、「東京*?~」という文字列を検索する場合:

=VLOOKUP("東京~*~?~~", A2:B10, 2, FALSE)

~(チルダ)は、直後の文字をワイルドカードではなく通常の文字として扱うエスケープ記号として機能します。

チェックポイント3:検索値がセル参照の場合の記述方法

検索値をセル参照で指定する場合、ワイルドカードを&演算子で正確に結合する必要があります。

記述ミスによりワイルドカードが機能しないケースが多く見られます。

誤った例:

=VLOOKUP(*D2*, A2:B10, 2, FALSE)

正しい例:

=VLOOKUP("*"&D2&"*", A2:B10, 2, FALSE)

&演算子の前後にスペースを入れないこと、ワイルドカード部分をダブルクォーテーションで囲むことが重要です。

セル参照とワイルドカードの結合が正しく行われていない場合、エラーまたは意図しない検索結果となります。

XLOOKUPでワイルドカードを使う方法

XLOOKUP関数は、Excel 365およびExcel 2021以降で使用可能な新しい検索関数です。

VLOOKUP関数の制約を解消した設計となっており、ワイルドカードの使用も可能です。

XLOOKUP関数ワイルドカードを使用する際の重要な相違点として、一致モード(第5引数)に2を指定する必要があります。

この指定を省略すると、ワイルドカードは機能しません。

基本的な記述例:

=XLOOKUP("*東京*", B2:B10, A2:A10, "", 2)

各引数の意味は以下の通りです。

  • 第1引数:検索値(ワイルドカード含む)
  • 第2引数:検索範囲
  • 第3引数:戻り値の範囲
  • 第4引数:見つからない場合の戻り値
  • 第5引数:一致モード(2 = ワイルドカード文字一致)

XLOOKUP関数ワイルドカード検索では、VLOOKUP関数と同様に*の配置により前方一致、後方一致、部分一致を使い分けることができます。

また、XLOOKUP関数は検索列の位置制約がなく、VLOOKUP関数の「逆引き」問題も自然に解決できる利点があります。

セル参照を使用する場合の記述例:

=XLOOKUP("*"&D2&"*", B2:B10, A2:A10, "", 2)

XLOOKUP関数が使用できる環境では、ワイルドカード検索においてもXLOOKUP関数の利用を推奨します。

まとめと次のステップ

本記事では、VLOOKUP関数ワイルドカード(*)を組み合わせた部分一致、前方一致、後方一致の検索方法を解説しました。

検索値の前後に*を配置することで、完全一致では対応できない柔軟な検索が可能になります。

ワイルドカードが機能しない場合は、第4引数がFALSEであることの確認、セル参照時の&演算子による正確な結合、XLOOKUPでは一致モードに2を指定することを確認してください。

VLOOKUP関数の構造的な制約である逆引きや複数結果の取得については、INDEX関数とMATCH関数やフィルタ機能といった代替手段の活用が効率的です。

また、Excel 365以降の環境ではXLOOKUP関数の使用により、より直感的で柔軟な検索処理が実現できます。

これらの手法を日々の業務に取り入れることで、データ検索と照合作業の効率が向上し、手動での確認作業を削減できます。

関連項目

XLOOKUP(VLOOKUP)関数の使い方・活用方法の記事一覧

Excel完全マスター: 関数・テクニック・新機能を網羅した決定版ガイド

本書は、Excelの基礎から応用まで、包括的に学べるガイドブックです。当サイトの豊富な情報を、電子書籍向けに最適化し、読みやすく再構成しました。

【本書の特徴】

  • 情報量:Word-A4サイズ換算で1,400ページ相当
  • 基本操作から高度なテクニックまで、段階的に学習可能
  • 140種類の関数を詳細に解説
  • 109種類の実用的なテクニックと具体例を紹介
  • 最新機能(XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピル等)を徹底解説

【対象読者】

  • Excel初心者からプロフェッショナルまで
  • 体系的にExcelスキルを向上させたい方
  • 業務効率化を目指すビジネスパーソン
  • データ分析や可視化のスキルを磨きたい方

【本書の強み】

  • 実務に即した例題と解説
  • 視覚的な図表やスクリーンショットで理解を促進
  • 最新のExcelバージョンに対応した内容
  • 著者の長年の経験に基づく、実践的なTipsを多数収録

【更新とサポート】

  • 常に最新の情報を反映するため、定期的に内容を更新
  • 最新版の入手方法:Amazonカスタマーサポートへお問い合わせください

【入手方法】

  • 買い切り:950円
  • Kindle Unlimited:読み放題プランで利用可能

Excelマスターを目指す方、業務効率を劇的に向上させたい方に、自信を持っておすすめできる一冊です。この1冊で、Excelの可能性を最大限に引き出す力が身につきます。