COUNTIF関数:「含む・含まない」をワイルドカードで検索!始まる・終わるも

ExcelやGoogleスプレッドシートのCOUNTIF関数で、「~を含む」「~を含まない」などの部分一致を検索する方法をご紹介します。ワイルドカードを使った条件を、複数指定する方法についても解説しているので、ぜひ参考にしてみてください。

スポンサーリンク

COUNTIF関数にワイルドカードを使う方法

COUNTIF関数で「部分一致」を含むセルを数えたいときに、ワイルドカードと呼ばれる特殊な記号を使うと便利です。ワイルドカードには、主に以下の2種類があります。

  • * (アスタリスク):0文字以上の任意の文字列を表します。
  • ? (クエスチョンマーク):1文字の任意の文字を表します。

「~を含む」をカウントする方法

COUNTIF関数:「含む・含まない」をワイルドカードで検索!始まる・終わるも

特定の文字列を含むセルを数えたい場合、指定する文字列の前後に*を付けます。

たとえば、A列のテキストが「PDF」を含むセルをカウントしたい場合、数式は以下のようになります。

例:=COUNTIF(A2:A5,"*PDF*")

「~を含まない」をカウントする方法

COUNTIF関数:「含む・含まない」をワイルドカードで検索!始まる・終わるも

特定の文字列を含まないセルを数えたい場合、指定する文字列の前後に*を付け、さらにその前に否定を表す<>を追加します。

たとえば、A列のテキストが「PDF」を含まないセルをカウントしたい場合、数式は以下のようになります。

例:=COUNTIF(A2:A5,"<>*PDF*")

「~で始まる」をカウントする方法

COUNTIF関数:「含む・含まない」をワイルドカードで検索!始まる・終わるも

特定の文字列で始まるセルを数えたい場合、指定する文字列の後に*を付けます。

たとえば、A列のテキストが「PDF」で始まるセルをカウントしたい場合、数式は以下のようになります。

例:=COUNTIF(A2:A5,"PDF*")

「~で終わる」をカウントする方法

COUNTIF関数:「含む・含まない」をワイルドカードで検索!始まる・終わるも

特定の文字列で終わるセルを数えたい場合、指定する文字列の前に*を付けます。

たとえば、A列のテキストが「PDF」で終わるセルをカウントしたい場合、数式は以下のようになります。

例:=COUNTIF(A2:A5,"*PDF")

スポンサーリンク

COUNTIF関数でワイルドカード条件をセル参照にする方法

COUNTIF関数:「含む・含まない」をワイルドカードで検索!始まる・終わるも

特定の文字をセル参照にしたい場合、ワイルドカードとセル参照を&で結合します。

たとえば、A列のテキストから「B2セルのテキスト」を含むセルをカウントしたい場合、数式は以下のようになります。

例:=COUNTIF(A2:A5,"*"&B2&"*")

スポンサーリンク

「含む」の条件が複数ある場合(AND条件/OR条件)

すべての文字列を含む場合(AND条件)

COUNTIF関数:「含む・含まない」をワイルドカードで検索!始まる・終わるも

ワイルドカードを使用した複数の文字列を、すべて含むセルを数えたい場合、条件を複数指定できるCOUNTIFS関数を使用します。

たとえば、A列のテキストから「PDF」と「File」の両方を含むセルをカウントしたい場合、数式は以下のようになります。

例:=COUNTIFS(A2:A5,"*PDF*",A2:A5,"*File*")

いずれかの文字列を含む場合(OR条件)

Excelの場合

COUNTIF関数:「含む・含まない」をワイルドカードで検索!始まる・終わるも

ワイルドカードを使用した複数の文字列のうち、いずれか一つでも含まれるセルを数えたい場合、SEARCH関数、ISNUMBER関数、IF関数SUM関数を組み合わせます。

たとえば、A列のテキストから「File」または「com」を含むセルをカウントしたい場合、数式は以下のようになります

例:=SUM(IF(ISNUMBER(SEARCH("File",A5:A8))+ISNUMBER(SEARCH("com",A5:A8))>0,1,0))

この数式は配列数式であるため、入力後に Ctrl + Shift + Enter キーを押して確定する必要があります。 確定すると、数式全体が自動的に {= ... } のように波括弧で囲まれます。

※Microsoft 365のExcelやExcel 2021など、動的配列に対応したバージョンをお使いの場合は、Ctrl + Shift + Enter は不要で、Enterキーのみで確定できます。


まずSEARCH関数で、セル内に指定した文字列が「最初に現れる位置」を取得します。もし見つかればその位置を数字で返し、見つからなければエラーになります。

次にISNUMBER関数で、SEARCH関数の結果が数字かどうか(文字列が見つかったかどうか)を判定します。見つかればTRUE、見つからなければFALSEを返します。

そして、複数の条件を+(プラス)でつなぐことで『いずれかの条件を満たす』というOR条件を表現します。例えば、{1;1;0;1}+{0;0;0;1}={1;1;0;1}のように、TRUE(1)とFALSE(0)の配列が足し合わされます。

最後にIF関数を使って、この足し算の結果が0より大きい場合(いずれかの条件を満たしたセル)は1に、そうでない場合は0に変換し、SUM関数で合計します。

Googleスプレッドシートの場合

COUNTIF関数:「含む・含まない」をワイルドカードで検索!始まる・終わるも

ワイルドカードを使用した複数の文字列のうち、いずれか一つでも含まれるセルを数えたい場合、COUNTIF関数REGEXMATCH関数を組み合わせます。

たとえば、A列のテキストから「File」または「com」を含むセルをカウントしたい場合、数式は以下のようになります

例:=ArrayFormula(COUNTIF(REGEXMATCH(A2:A5,"File|com"),TRUE))


REGEXMATCH関数は、指定したテキストが正規表現に一致するかどうかを判定します。|(パイプ)は「または」を意味するので、「File」または「com」のいずれかが含まれていればTRUE、そうでなければFALSEが返されます。

REGEXMATCH関数の引数:(テキスト, 正規表現)

タイトルとURLをコピーしました