特定の文字列を含むセル数を数える方法

2020年4月8日

COUNTIF関数で、なんらかの文字列を含むセル数を数える方法を紹介します。

例えば「名簿の名前欄を見て、”天”の文字が含まれる人数をカウントする」といった場合に活用できる方法です。

※COUNTIF関数自体を知らない、自身が無いという方は、先に『COUNTIF関数の使い方』を参照することを推奨します!

検索条件に「特定の文字列を”含む”」と指定する方法

COUNTIF関数の検索条件に「特定の文字列を含むセル」を指定するには以下の通り記述します。

特定の文字列を含むセル数をカウントする

=COUNTIF(範囲,"*特定の文字列*“)

上記のように、検索したい文字列をアスタリスク「*」で囲います。このアスタリスクはワイルドカードと呼ばれる特殊な文字です。

ワイルドカードとは

ワイルドカードとは、プログラム等でコンピューターに指示を与える際に使用する特殊な文字のことです。

「*」は「任意の0文字以上の文字」という意味でコンピューターには理解されます。

簡単に言ってしまえば、「『*』の位置に何かしらの文字列が入っている可能性があるから、それを加味して指定した言葉を探せ」と命令するということです。

この「*」を、「*チェックしたい言葉*」のように、対象となる言葉の両端に置くことによって、「チェックしたい言葉の前後に、何らかの文字列、あるいは文章があるかもしれないが、それを探せ!」と指令できるのです。

それってつまり、「チェックしたい言葉が含まれているところを探せ!」ってことなのです。

「*」を利用する場合の構造

COUNTIF関数の検索条件内でワイルドカードを使用することで、特定の文字列を含むセルを数えられます。

上記のように「"*山*"」と記述すると、「『山』の前後に0文字以上の文字が並んでいるケースを探せ」とコンピューターに指示することになるため、以下のようなケースは全てカウントされます。

田:『山』の前に0文字の文字列、後に1文字の文字列
・小:『山』の前に1文字の文字列、後に0文字の文字列
・御村:『山の』前後に1文字の文字列

【注意】長い文章も文字列であり「*」に含まれる

今回は名簿を前提にした例を挙げましたが、「*」は任意の文字列であり、滅茶苦茶長い文章なども該当するので注意が必要です。

例えば上記のケースで、名前欄に間違って田くーん、楽太郎さんの座布団を全部持って行っちゃって」といった文章が入っていた場合、当然カウントされます。

入力手順

入力準備

今回は名簿を検索して、名前に「天」が含まれる人数をカウントしてみましょう。

最初に関数を入れるC2セルを選択してから、数式バーに数式を直入力します。

数式入力

まず「=COUNTIF(」とまで入力してください。

検索範囲は表内をドラッグ&ドロップすれば自動入力されます。

続けて、検索条件として「"*天*"」と入力し、丸カッコを閉じます。

これで数式は完成です!

完成

上図のように、天のつく人数が正確にカウントされました。

このように、特定の文字列を含むセルをカウントしたいときは、検索条件内でアスタリスクで囲うようにしてください。

数式サンプル

=COUNTIF(A2:A8,"*天*“)

【応用1】特定の末尾を持つ文字列を条件指定する

次に、特定の末尾を持つ文字列を指定する場合を紹介します。

といっても方法は単純で、「"*特定の末尾"」と記載すればOKです。

特定の末尾の文字列の前にのみ、「*」=「0文字以上の任意の文字列」があると指定するのです。後ろのアスタリスクが無いので、末尾は必ず指定文字列となります。

実際にやってみたのが下のケースです。末尾が「天君」の人数をカウントしてみました。

数式サンプル (特定の末尾を持つテキストを検索)

=COUNTIF(A2:A8,"*天君")

【応用2】特定の文字列から始まるテキストを条件指定

同じように、特定の文字列から始まる場合も、ワイルドカードを使ってカウントすることが可能です。

「"特定の文字列*“」と記載すればOKです。 こうすれば、特定の文字列の後方に何かがくっついているケースが全て指定されます。

実際に「黄」から始まるセルをカウントしたのが以下です。

数式サンプル(特定の文字列から始まるテキストを検索)

=COUNTIF(A2:A8,"黄*")

COUNTIF関数で、特定の文字列を含むセルをカウントする方法は以上です。

単純なテキスト完全一致を条件にできない場合、この方法を試してみてください!