Excelのワイルドカードとは?まず基本を押さえよう
Excelで大量のデータを扱っていると、「○○を含むデータだけを抽出したい」「あいまいな条件で検索したい」と感じる場面が多いのではないでしょうか。そんなときに活躍するのがワイルドカードです。
ワイルドカードとは、任意の文字列や文字を代用する特殊記号のことです。プログラミングやコマンドラインでもおなじみの概念ですが、Excelでも検索・置換や関数の中で幅広く利用できます。
この記事では、Excelワイルドカードの基本から応用まで、実務で即使える具体例を交えながら徹底的に解説します。「VLOOKUP関数であいまい検索をしたい」「COUNTIF関数で部分一致のカウントをしたい」といった悩みも、この記事を読めばすべて解決できます。ぜひ最後までご覧ください。
Excelワイルドカードの種類と意味【3つだけ覚えればOK】
Excelで使えるワイルドカードは、実はたったの3種類しかありません。それぞれの記号と意味を正確に理解しておきましょう。
| ワイルドカード | 記号 | 意味 | 使用例 | マッチする文字列の例 |
|---|---|---|---|---|
| アスタリスク | (半角) | 任意の文字数の文字列(0文字以上) | 東京 | 東京、東京都、東京タワー |
| クエスチョンマーク | ?(半角) | 任意の1文字 | 東京? | 東京都、東京駅(「東京」のみは不一致) |
| チルダ | ~(半角) | ワイルドカード文字のエスケープ | ~ | そのものを検索 |
(アスタリスク)の詳細
最も使用頻度が高いワイルドカードです。0文字以上の任意の文字列に一致します。「0文字以上」という点がポイントで、文字がまったくない場合にもマッチします。
たとえば「東京」と指定すると、「東京」「東京都」「新東京」「南東京支店」など、「東京」という文字列を含むすべてのデータに一致します。
?(クエスチョンマーク)の詳細
こちらはちょうど1文字だけに一致するワイルドカードです。文字数を厳密にコントロールしたい場合に便利です。
「???」と指定すれば、ちょうど3文字の文字列だけにマッチします。「東京都」はマッチしますが、「東京」(2文字)や「神奈川県」(4文字)はマッチしません。
~(チルダ)の詳細
「」や「?」をワイルドカードとしてではなく、文字そのものとして検索したい場合に使います。これを「エスケープ」と呼びます。
たとえばセルの中に「印」というテキストが入っている場合、「~印」と入力すれば、アスタリスクをワイルドカードではなくリテラル(文字通り)として扱ってくれます。
ワイルドカードが使えるExcel関数一覧と具体例
ワイルドカードはすべてのExcel関数で使えるわけではありません。使える関数と使えない関数を明確に把握しておくことが大切です。
ワイルドカード対応の主な関数
| 関数名 | 用途 | ワイルドカード使用例 |
|---|---|---|
| COUNTIF / COUNTIFS | 条件に一致するセルの個数を数える | =COUNTIF(A:A,”東京“) |
| SUMIF / SUMIFS | 条件に一致するセルの合計を求める | =SUMIF(A:A,”支店”,B:B) |
| AVERAGEIF / AVERAGEIFS | 条件に一致するセルの平均を求める | =AVERAGEIF(A:A,”東京?”,B:B) |
| VLOOKUP | 表から値を検索して取得する | =VLOOKUP(““&A1&”“,範囲,列,FALSE) |
| HLOOKUP | 横方向に値を検索して取得する | =HLOOKUP(“商品“,範囲,行,FALSE) |
| MATCH | 検索値の位置を返す | =MATCH(“東京“,A:A,0) |
| SEARCH | 文字列の位置を返す(大文字小文字区別なし) | =SEARCH(“?京”,A1) |
| XLOOKUP(Microsoft 365) | 柔軟な検索関数 | ワイルドカードモード(match_mode=2)で使用可能 |
ワイルドカードが使えない主な関数
以下の関数ではワイルドカードが使えないため注意が必要です。
- IF関数:条件式にワイルドカードは使えません。代わりにCOUNTIFやSEARCH関数と組み合わせて使います。
- FIND関数:完全一致の文字列検索専用です。あいまい検索にはSEARCH関数を使いましょう。
- EXACT関数:完全一致の比較専用です。
- LEFT / RIGHT / MID関数:文字列操作関数にはワイルドカードの概念がありません。
この「使える・使えない」の区別を知らないと、数式がエラーになったり、意図しない結果が返ってきたりするため、しっかり覚えておきましょう。
【実践編1】COUNTIF・SUMIFでワイルドカードを使いこなす
業務で最も多く使うのが、COUNTIFやSUMIFとワイルドカードの組み合わせです。具体的な使用シーンを見ていきましょう。
COUNTIF:部分一致でデータを数える
たとえば、A列に顧客名が入っていて、「株式会社」を含む顧客の数を数えたいとします。
=COUNTIF(A2:A100,”株式会社“)
この数式で「株式会社○○」「○○株式会社」「○○株式会社○○支店」など、「株式会社」を含むすべてのセルがカウントされます。
COUNTIF:前方一致・後方一致
前方一致(○○で始まる)と後方一致(○○で終わる)も簡単に指定できます。
- 前方一致:=COUNTIF(A2:A100,”東京“) →「東京」で始まるデータを数える
- 後方一致:=COUNTIF(A2:A100,”支店”) →「支店」で終わるデータを数える
COUNTIF:セル参照とワイルドカードを組み合わせる
検索キーワードをセルに入力して動的に使いたい場合は、&(アンパサンド)で文字列を結合します。
B1セルに「東京」と入力してある場合:
=COUNTIF(A2:A100,”“&B1&”“)
これで、B1セルの値を変更するだけで検索条件を柔軟に変えられます。実務では、ドロップダウンリストと組み合わせると非常に便利です。
SUMIF:条件に合うデータの合計を求める
A列に支店名、B列に売上金額が入っているとします。「東京」を含む支店の売上合計を求める場合:
=SUMIF(A2:A100,”東京“,B2:B100)
これだけで「東京支店」「東京第二支店」「新東京営業所」など、東京を含むすべての拠点の売上を合算できます。手動でフィルターをかけて集計するよりもはるかに効率的です。
COUNTIFS・SUMIFS:複数条件での使用
複数条件関数でもワイルドカードは使えます。たとえば「東京を含む支店」かつ「売上が100万円以上」のデータを数える場合:
=COUNTIFS(A2:A100,”東京“,B2:B100,”>=1000000″)
条件をさらに増やすことも可能で、最大127個の条件ペアを指定できます。
【実践編2】VLOOKUP・XLOOKUPでのあいまい検索テクニック
VLOOKUP関数は完全一致検索で使うのが基本ですが、ワイルドカードを使えば部分一致の検索も可能です。
VLOOKUPで部分一致検索
商品コードの一部だけ分かっている場合を考えてみましょう。A列に商品コード(例:PRD-001-A、PRD-002-B)、B列に商品名が入っているとします。
=VLOOKUP(“001“,A2:B100,2,FALSE)
この数式で、商品コードに「001」を含む最初のデータの商品名が返されます。
セル参照を使った動的なあいまい検索
C1セルに検索キーワードを入力する形にすると、さらに実用的になります。
=VLOOKUP(““&C1&”“,A2:B100,2,FALSE)
C1に「001」と入力すれば「001」を含むデータ、「PRD」と入力すれば「PRD」を含むデータが検索されます。
VLOOKUPのワイルドカード使用時の注意点
- 最初にマッチしたデータのみが返されます。複数の該当データがある場合、2件目以降は無視されます。
- 第4引数(検索方法)は必ずFALSE(完全一致)を指定してください。TRUE(近似一致)ではワイルドカードが正しく動作しません。
- 大量のデータではパフォーマンスが低下する場合があります。検索範囲をできるだけ絞りましょう。
XLOOKUP(Microsoft 365)でのワイルドカード
Microsoft 365で使えるXLOOKUP関数では、第5引数のmatch_mode(一致モード)に「2」を指定するとワイルドカード検索が有効になります。
=XLOOKUP(“東京“,A2:A100,B2:B100,”該当なし”,2)
XLOOKUPはVLOOKUPよりも柔軟で、左側の列も検索できるため、新しいバージョンのExcelを使っている方はこちらを推奨します。
【実践編3】IF関数でワイルドカードを使う裏ワザ
先ほど「IF関数ではワイルドカードが使えない」と説明しましたが、他の関数と組み合わせることで同等の機能を実現できます。これは多くの人がつまずくポイントなので、詳しく解説します。
方法1:COUNTIF関数と組み合わせる
A1セルに「東京」という文字が含まれているかどうかを判定したい場合:
=IF(COUNTIF(A1,”東京“),”含む”,”含まない”)
COUNTIF関数は条件に一致すれば1以上を返し、一致しなければ0を返します。IF関数は0をFALSE、0以外をTRUEと判定するため、この組み合わせで部分一致の条件分岐が可能になります。
方法2:SEARCH関数と組み合わせる
SEARCH関数を使う方法もあります。
=IF(ISNUMBER(SEARCH(“東京”,A1)),”含む”,”含まない”)
SEARCH関数は文字列が見つかると位置番号を返し、見つからないとエラーになります。ISNUMBER関数でエラーかどうかを判定し、IF関数で分岐させる仕組みです。
どちらの方法を選ぶべきか
| 比較項目 | COUNTIF方式 | SEARCH方式 |
|---|---|---|
| 数式の簡潔さ | ◎ シンプル | ○ やや長い |
| ワイルドカード(?)対応 | ◎ 使用可能 | ◎ 使用可能 |
| 大文字小文字の区別 | × 区別しない | × 区別しない |
| 処理速度(大量データ) | ○ 普通 | ◎ やや速い |
基本的にはCOUNTIF方式がシンプルでおすすめです。ただし、文字列の位置情報が必要な場合はSEARCH方式を選びましょう。
【実践編4】検索・置換機能でのワイルドカード活用
関数だけでなく、Excelの検索・置換機能(Ctrl+H)でもワイルドカードが使えます。大量データの一括修正に非常に役立ちます。
検索でのワイルドカード使用
Ctrl+Fで検索ダイアログを開き、検索文字列に「東京支店」と入力すると、「東京第一支店」「東京中央支店」「東京南支店」など、「東京」で始まり「支店」で終わるすべてのセルが検索されます。
置換でのワイルドカード使用
Ctrl+Hで置換ダイアログを開き、以下のように設定します。
- 検索する文字列:株式会社
- 置換後の文字列:(空欄にする)
この設定で、「株式会社」以降の文字列をすべて削除できます。顧客データのクレンジングなどで非常に便利です。
置換時の重要な注意点
置換機能でワイルドカードを使うとき、置換後の文字列に「」や「?」を入力しても、それはワイルドカードではなくリテラル(文字そのもの)として扱われます。つまり、置換後の文字列ではワイルドカードの特殊な意味はなくなります。
また、置換操作は元に戻す(Ctrl+Z)が可能ですが、ファイルを保存してしまうと戻せません。必ず事前にバックアップを取ってから実行しましょう。
「」や「?」そのものを検索・置換する方法
セル内の「」や「?」の文字自体を検索したい場合は、前述のチルダ(~)を使います。
- 「」を検索したい → 検索文字列に「~*」と入力
- 「?」を検索したい → 検索文字列に「~?」と入力
- 「~」を検索したい → 検索文字列に「~~」と入力
これを知らないと、意図せずすべてのセルがマッチしてしまうことがあるので覚えておきましょう。
ワイルドカード使用時のよくあるエラーと対処法
ワイルドカードを使っていてうまくいかない場合、以下のケースに該当していないか確認してください。
エラー1:全角の「*」「?」を使っている
Excelのワイルドカードは必ず半角で入力する必要があります。日本語入力モード(IME)がオンの状態で入力すると全角になりやすいので注意してください。数式バーで文字をよく確認しましょう。
エラー2:数値データに対してワイルドカードを使っている
ワイルドカードは文字列データに対してのみ有効です。数値として認識されているセルに対しては機能しません。数値を文字列に変換するか、TEXT関数を使って文字列化する必要があります。
たとえば、電話番号が数値として入力されている場合、=COUNTIF(A:A,”090“)は正しくカウントされません。セルの表示形式を「文字列」に変更するか、数値の前にアポストロフィ(’)を付けて再入力してください。
エラー3:ワイルドカード非対応の関数で使っている
IF関数やFIND関数など、ワイルドカード非対応の関数で「」を使っても、単なる文字列として扱われるだけです。前述の対応関数一覧を再確認してください。
エラー4:XLOOKUP関数でmatch_modeを指定し忘れている
XLOOKUP関数はデフォルトでは完全一致検索です。ワイルドカードを使う場合は第5引数に「2」を指定することを忘れないでください。
エラー5:スペースや不可視文字が混入している
データにスペースや改行コードが含まれていると、ワイルドカードが意図どおりにマッチしないことがあります。TRIM関数やCLEAN関数で事前にデータを整形しておくと安全です。
ワイルドカードの実務活用シーン7選
ここまでの知識を活かして、実際の業務でどのように活用できるかを具体的に紹介します。
シーン1:顧客データから特定の法人形態を抽出
=COUNTIF(A:A,”株式会社“) で株式会社を含む顧客数を集計。合同会社、有限会社なども同様に集計でき、顧客分析に活用できます。
シーン2:メールアドレスのドメイン別集計
=COUNTIF(A:A,”@gmail.com”) で、Gmailユーザーの人数をカウント。マーケティングのターゲット分析に役立ちます。
シーン3:商品コードの体系別抽出
商品コードが「カテゴリ-連番-サイズ」の形式(例:SHT-001-M)の場合、=COUNTIF(A:A,”SHT--M”) でシャツカテゴリのMサイズだけを数えられます。
シーン4:日報・報告書からキーワード検索
日報が入力されたセル範囲に対して =COUNTIF(A:A,”クレーム“) とすれば、「クレーム」に関する報告がいくつあるか即座に把握できます。
シーン5:住所データの都道府県別集計
=SUMIF(A:A,”東京都“,B:B) で東京都のデータに紐づく売上を合計。47都道府県分の数式を作成すれば、地域別の分析表が完成します。
シーン6:ファイル名の命名規則チェック
ファイル名が「YYYYMMDD_報告書」という規則の場合、=IF(COUNTIF(A1,”????????_報告書”),”OK”,”NG”) で8桁の日付+アンダースコア+報告書の形式になっているかチェックできます。?を8つ並べることで、ちょうど8文字であることを検証しています。
シーン7:データクレンジングでの一括置換
顧客名から「株式会社」「有限会社」などの法人格を一括削除する場合、置換機能で検索文字列を「株式会社」や「株式会社」として空文字に置換すれば、効率的にデータを整理できます。
ワイルドカードとExcel正規表現の違い
より高度なパターンマッチングを行いたい場合、「正規表現(Regular Expression)」を使いたいと思うかもしれません。しかし、Excel標準機能では正規表現をサポートしていません。
| 比較項目 | ワイルドカード | 正規表現 |
|---|---|---|
| Excel標準対応 | ◎ 対応 | × 非対応(VBA経由で可能) |
| 使用できる記号 | , ?, ~の3種類 | 数十種類以上 |
| 複雑なパターン指定 | 限定的 | 非常に柔軟 |
| 学習コスト | 低い | 高い |
| 関数内での使用 | 可能 | VBAが必要 |
多くの業務タスクはワイルドカードだけで十分に対応できます。正規表現が必要になるのは、「先頭が数字3桁で始まり、末尾がアルファベット2文字で終わる」といった非常に複雑なパターンを指定したい場合です。その場合はVBA(Visual Basic for Applications)でRegExpオブジェクトを利用する方法があります。
まずはワイルドカードを完璧にマスターし、それでは対応できないケースが出てきたときに正規表現の学習を検討するのがおすすめです。
まとめ:Excelワイルドカードをマスターして業務効率を劇的に改善
この記事で解説したExcelワイルドカードのポイントを整理します。
- ワイルドカードは3種類:(任意の文字列)、?(任意の1文字)、~(エスケープ)
- 対応関数を正確に把握:COUNTIF、SUMIF、VLOOKUP、MATCHなどで使用可能。IF関数では直接使えない
- IF関数での部分一致はCOUNTIFやSEARCH関数と組み合わせて実現
- セル参照と&で結合すれば、動的な検索条件を作成できる
- 検索・置換機能でもワイルドカードが使え、大量データの一括処理に便利
- 半角で入力し、数値データではなく文字列データに対して使用する
- XLOOKUPではmatch_mode=2を指定することを忘れない
- 正規表現はExcel標準では非対応。まずはワイルドカードの活用を優先する
ワイルドカードは一度覚えてしまえば、データ検索・集計・分析のあらゆる場面で威力を発揮します。ぜひ今日から実務で使ってみてください。
よくある質問(FAQ)
Excelのワイルドカードとは何ですか?
Excelのワイルドカードとは、検索や関数の条件指定で使える特殊記号です。*(アスタリスク)は任意の文字数の文字列、?(クエスチョンマーク)は任意の1文字、~(チルダ)はワイルドカード文字のエスケープに使います。あいまいな条件でデータを検索・集計したい場合に活用します。
ワイルドカードが使えるExcel関数はどれですか?
COUNTIF、COUNTIFS、SUMIF、SUMIFS、AVERAGEIF、AVERAGEIFS、VLOOKUP、HLOOKUP、MATCH、SEARCH、XLOOKUPなどの関数でワイルドカードが使えます。一方、IF関数、FIND関数、EXACT関数などでは直接使用できません。IF関数で部分一致を行うにはCOUNTIF関数やSEARCH関数と組み合わせます。
VLOOKUPでワイルドカードを使うにはどうすればよいですか?
VLOOKUPの第1引数(検索値)にワイルドカードを含めて指定します。例:=VLOOKUP(“東京“,A2:B100,2,FALSE)。セル参照を使う場合は=VLOOKUP(““&A1&”“,A2:B100,2,FALSE)のように&で結合します。第4引数は必ずFALSE(完全一致)を指定してください。
IF関数でワイルドカードを使って部分一致の判定はできますか?
IF関数単体ではワイルドカードを使えませんが、COUNTIF関数と組み合わせることで実現できます。例:=IF(COUNTIF(A1,”東京“),”含む”,”含まない”)。また、=IF(ISNUMBER(SEARCH(“東京”,A1)),”含む”,”含まない”)というSEARCH関数を使った方法もあります。
ワイルドカードの*(アスタリスク)と?(クエスチョンマーク)の違いは何ですか?
(アスタリスク)は0文字以上の任意の文字列に一致します。例えば「東京」は「東京」「東京都」「東京タワー」にマッチします。一方、?(クエスチョンマーク)はちょうど1文字だけに一致します。「東京?」は「東京都」「東京駅」にマッチしますが、「東京」(2文字)や「東京タワー」(5文字)にはマッチしません。
ワイルドカードが正しく動作しないときの原因は何ですか?
主な原因は5つあります。(1)全角で入力している(半角で入力する必要があります)、(2)数値データに対して使っている(文字列データのみ有効)、(3)ワイルドカード非対応の関数で使っている、(4)XLOOKUPでmatch_modeの指定を忘れている、(5)データにスペースや不可視文字が混入している。これらを順番に確認してみてください。
Excelで正規表現は使えますか?ワイルドカードとの違いは?
Excel標準機能では正規表現はサポートされていません。正規表現を使うにはVBA(マクロ)でRegExpオブジェクトを利用する必要があります。ワイルドカードは*、?、~の3種類のみで指定できるパターンが限定的ですが、学習コストが低く関数内で直接使えるメリットがあります。ほとんどの業務タスクはワイルドカードで対応可能です。

コメント