ExcelのCOUNTIF関数でワイルドカードで検索する方法をご紹介!

ExcelのCOUNTIF関数でワイルドカードで検索する方法をご紹介!

ExcelではCOUNTIF関数で文字列の検索をすることができます。さらにワイルドカードを使うことで、あいまい検索(部分一致検索)を行うことができます。本記事ではExcelのCOUNTIF関数でワイルドカードを使った検索方法をご紹介します。


目次[非表示]

  1. ExcelのCOUNTIF関数でワイルドカードで検索したい
  2. ExcelのCOUNTIF関数でワイルドカードで検索する方法

ExcelのCOUNTIF関数でワイルドカードで検索したい

COUNTIF関数とは?

COUNTIF関数とは、ある範囲内において指定した条件に一致するものの数を求める関数です。以下の形式で使用します。

= COUNTIF(範囲, 検索条件)
Excel表_年齢
(例)
= COUNTIF(B2:B7, ">=30")

結果:4
年齢の範囲の中に、30以上の数は4つあります。

ワイルドカードとは?

ワイルドカードとは任意の文字列を表すことができる代替文字で、「*」(=半角アスタリスク)、「?」(=半角疑問符)のことを言います。「*」はどんな文字にも文字数にもなることができ、「?」は任意の一文字になることができます。

ちなみに「~」(=半角チルダ)というものもあり、「*」「?」をワイルドカードではなくそのままの文字として認識させて使いたい場合に「~*」「~?」として使用します。

COUNTIF関数でワイルドカードを使うと出来ること

COUNTIF関数では文字列を検索することができます。さらにワイルドカードを使うことで完全一致ではなく、あいまい検索を行うことができます。

例えば「ABC」を含む文字列を検索したい時、ワイルドカードを使うことで「ABCDEF」「DEFABC」「DABCEF」といった文字列を検出することができます。

本記事では、上記のようにCOUNTIF関数でワイルドカードを使って部分一致検索をする方法をご紹介していきます。

ExcelのCOUNTIF関数でワイルドカードで検索する方法

文字列を検索する

ワイルドカードを使って文字列を検索する方法をご紹介します。

以下表の「名前」を検索範囲として「子」を検索するパターンにも複数あります。この中からそれぞれ目的に応じた方法を使ってみてください。

Excel表_名前

「子」を含む文字列の数を探したい場合

= COUNTIF(A2:A7, "*子*")

結果:4
名前の範囲の中に、子が含まれる文字列は4つあります。

「子」を語頭に含む文字列の数を検索したい場合

= COUNTIF(A2:A7, "子*")

結果:0
名前の範囲の中に、子が語頭に含まれる文字列はありません。

「子」を語尾に含む文字列の数を検索したい場合

= COUNTIF(A2:A7, "*子")

結果:3
名前の範囲の中に、子が語尾に含まれる文字列は3つあります。

「子」を語尾に含み、5文字の文字列を検索したい場合

= COUNTIF(A2:A7, "????子")

結果:3
名前の範囲の中に、子が語尾に含まれるかつ計5文字の文字列は3つあります。
※半角空欄も1文字としてカウントします。

数字を検索する

続いて、ワイルドカードを使って数字を検索する方法をご紹介します。基本的には文字列を検索する時と方法は同じです。

Excel表_入会日
(例)
= COUNTIF(C2:C7, "2019*")

結果:3
入会日の範囲の中に、2019を語頭に含む数は3つあります。

注意:範囲のデータが数字のみであると、ワイルドカードが使えません。

気を付けないといけないのが、検索範囲のデータが数字のみの場合、ワイルドカードを使用した検索ができないということです。書式を文字列に変換しても結果は同じです。

Excel表_入会日_数字
(例)
= COUNTIF(C2:C7, "2019*")
= COUNTIF(C2:C7, "2019????")

結果:0
検索する範囲の中のデータが数字のみの場合、ワイルドカードで検索できません。

セル参照をして検索する

「検索条件」に直接値を入れるのではなく、セルに値を入れてセル参照をする形でも使用することができます。

Excel表_セル参照

セル参照しワイルドカードを使って検索する

= COUNTIF(A2:A7, "*" & A10 & "*")

結果:4
名前の範囲の中に、子が含まれる文字列は4つあります。
※アスタリスク位置を「*A10*」とすると検索できません。

ワイルドカードを含むセルの参照をして検索する

= COUNTIF(A2:A7, C10)

結果:3
名前の範囲の中に、子が語尾に含まれる文字列は3つあります。


関連記事