Excelには、関数で文字列を柔軟に扱うための便利な機能として「ワイルドカード」があります。特定の文字をあいまいに検索したり、一部だけ一致するデータを抽出したいときに大活躍します。特に大量のデータから該当項目を見つける業務では、ワイルドカードを使いこなせるかどうかで作業効率が大きく変わります。本記事では、Excel関数におけるワイルドカード文字「*」「?」「~」の基本的な使い方から応用テクニックまでをわかりやすく解説します。
ワイルドカードとは、文字列の検索・一致を柔軟に行うための「代用文字」です。Excelでは主に次の3種類があります。
*(アスタリスク)
:任意の文字列(0文字以上)に一致?(クエスチョンマーク)
:任意の1文字に一致~(チルダ)
:ワイルドカード文字を通常の文字として扱うエスケープ記号例えば「a*」とすれば、「apple」「ant」「a」など、aで始まる任意の文字列に一致します。
Excelでは以下のような関数でワイルドカードが使えます。
COUNTIF
/ COUNTIFS
SUMIF
/ SUMIFS
IF
関数(SEARCH
や ISNUMBER
などと併用)VLOOKUP
(検索値にワイルドカードを使う)具体的な使い方を見ていきましょう。
「特定のパターンに一致するデータの個数」をカウントしたい場合、COUNTIF
にワイルドカードを使うと便利です。
=COUNTIF(A2:A100, "A*")
この関数は、セルA2〜A100の範囲で、”A”で始まる文字列をカウントします。
=COUNTIF(A2:A100, "??z*")
2文字目までが何であっても、3文字目が「z」であるものを探します。
合計値を出す際にも条件付きでワイルドカードを使えます。
=SUMIF(B2:B100, "*りんご*", C2:C100)
これは、B列に「りんご」が含まれている行のC列の金額を合計します。
VLOOKUP
でもワイルドカードは使えますが、検索の範囲が昇順に並んでいないと正しく動かない場合があるので注意が必要です。
excelコピーする編集する=VLOOKUP("S*", A2:C100, 2, FALSE)
この関数は「S」で始まる文字列をA列から検索し、その行の2列目の値を返します。
IF
とSEARCH
を組み合わせることで、より柔軟な判定が可能です。
=IF(ISNUMBER(SEARCH("りんご", A2)), "フルーツ", "その他")
SEARCH
関数ではワイルドカードは不要です。含まれるかどうかを判定できます。
ワイルドカードを「記号そのもの」として扱いたいときは、~
(チルダ)を使います。
=COUNTIF(A2:A100, "*~*重要~**")
ここでは、「*」を通常の文字として扱うために、前に「~」をつけています。
MATCH
で0
を使うときなど)*
や?
が含まれる検索値をユーザーが入力する可能性がある場合は、~
でエスケープ処理を検討=IF(COUNTIF(A2, "*株式会社*"), "法人", "個人")
=IF(LEFT(A2,1)="A", "タイプA", IF(LEFT(A2,1)="B", "タイプB", "その他"))
これにワイルドカードを使って"A*"
のようにしても柔軟なパターン検索が可能です。
フィルターと関数を組み合わせることで、ワイルドカードを活かした動的抽出が可能になります。
例:FILTER
関数(Office365以降対応)
=FILTER(A2:B100, ISNUMBER(SEARCH("りんご", A2:A100)))
Excelでのワイルドカードの活用は、検索や集計の精度を一気に高める強力な武器になります。「*」「?」「~」を使いこなせば、条件付きのデータ抽出や分類、検索作業が驚くほどスムーズになります。まずはCOUNTIF
やSUMIF
などから試し、徐々にVLOOKUP
やFILTER
と組み合わせて応用の幅を広げていきましょう。