ExcelのCOUNTIF関数でワイルドカードで検索したい
COUNTIF関数とは?
COUNTIF関数とは、ある範囲内において指定した条件に一致するものの数を求める関数です。以下の形式で使用します。
= COUNTIF(範囲, 検索条件)
ワイルドカードとは?
ワイルドカードとは任意の文字列を表すことができる代替文字で、「*」(=半角アスタリスク)、「?」(=半角疑問符)のことを言います。「*」はどんな文字にも文字数にもなることができ、「?」は任意の一文字になることができます。
ちなみに「~」(=半角チルダ)というものもあり、「*」「?」をワイルドカードではなくそのままの文字として認識させて使いたい場合に「~*」「~?」として使用します。
COUNTIF関数でワイルドカードを使うと出来ること
COUNTIF関数では文字列を検索することができます。さらにワイルドカードを使うことで完全一致ではなく、あいまい検索を行うことができます。
例えば「ABC」を含む文字列を検索したい時、ワイルドカードを使うことで「ABCDEF」「DEFABC」「DABCEF」といった文字列を検出することができます。
本記事では、上記のようにCOUNTIF関数でワイルドカードを使って部分一致検索をする方法をご紹介していきます。
ExcelのCOUNTIF関数でワイルドカードで検索する方法
文字列を検索する
ワイルドカードを使って文字列を検索する方法をご紹介します。
以下表の「名前」を検索範囲として「子」を検索するパターンにも複数あります。この中からそれぞれ目的に応じた方法を使ってみてください。
「子」を含む文字列の数を探したい場合
= COUNTIF(A2:A7, "*子*")
結果:4
名前の範囲の中に、子が含まれる文字列は4つあります。
「子」を語頭に含む文字列の数を検索したい場合
= COUNTIF(A2:A7, "子*")
結果:0
名前の範囲の中に、子が語頭に含まれる文字列はありません。
「子」を語尾に含む文字列の数を検索したい場合
= COUNTIF(A2:A7, "*子")
結果:3
名前の範囲の中に、子が語尾に含まれる文字列は3つあります。
「子」を語尾に含み、5文字の文字列を検索したい場合
= COUNTIF(A2:A7, "????子")
結果:3
名前の範囲の中に、子が語尾に含まれるかつ計5文字の文字列は3つあります。
※半角空欄も1文字としてカウントします。
数字を検索する
続いて、ワイルドカードを使って数字を検索する方法をご紹介します。基本的には文字列を検索する時と方法は同じです。
注意:範囲のデータが数字のみであると、ワイルドカードが使えません。
気を付けないといけないのが、検索範囲のデータが数字のみの場合、ワイルドカードを使用した検索ができないということです。書式を文字列に変換しても結果は同じです。
セル参照をして検索する
「検索条件」に直接値を入れるのではなく、セルに値を入れてセル参照をする形でも使用することができます。
セル参照しワイルドカードを使って検索する
= COUNTIF(A2:A7, "*" & A10 & "*")
結果:4
名前の範囲の中に、子が含まれる文字列は4つあります。
※アスタリスク位置を「*A10*」とすると検索できません。
ワイルドカードを含むセルの参照をして検索する
= COUNTIF(A2:A7, C10)
結果:3
名前の範囲の中に、子が語尾に含まれる文字列は3つあります。