
ExcelやGoogleスプレッドシートのCOUNTIF関数で、「~を含む」「~を含まない」などの部分一致を検索する方法をご紹介します。ワイルドカードを使った条件を、複数指定する方法についても解説しているので、ぜひ参考にしてみてください。
COUNTIF関数にワイルドカードを使う方法
COUNTIF関数で「部分一致」を含むセルを数えたいときに、ワイルドカードと呼ばれる特殊な記号を使うと便利です。ワイルドカードには、主に以下の2種類があります。
*(アスタリスク):0文字以上の任意の文字列を表します。?(クエスチョンマーク):1文字の任意の文字を表します。
「~を含む」をカウントする方法

特定の文字列を含むセルを数えたい場合、指定する文字列の前後に*を付けます。
たとえば、A列のテキストが「PDF」を含むセルをカウントしたい場合、数式は以下のようになります。
例:=COUNTIF(A2:A5,"*PDF*")
「~を含まない」をカウントする方法

特定の文字列を含まないセルを数えたい場合、指定する文字列の前後に*を付け、さらにその前に否定を表す<>を追加します。
たとえば、A列のテキストが「PDF」を含まないセルをカウントしたい場合、数式は以下のようになります。
例:=COUNTIF(A2:A5,"<>*PDF*")
「~で始まる」をカウントする方法

特定の文字列で始まるセルを数えたい場合、指定する文字列の後に*を付けます。
たとえば、A列のテキストが「PDF」で始まるセルをカウントしたい場合、数式は以下のようになります。
例:=COUNTIF(A2:A5,"PDF*")
「~で終わる」をカウントする方法

特定の文字列で終わるセルを数えたい場合、指定する文字列の前に*を付けます。
たとえば、A列のテキストが「PDF」で終わるセルをカウントしたい場合、数式は以下のようになります。
例:=COUNTIF(A2:A5,"*PDF")
COUNTIF関数でワイルドカード条件をセル参照にする方法

特定の文字をセル参照にしたい場合、ワイルドカードとセル参照を&で結合します。
たとえば、A列のテキストから「B2セルのテキスト」を含むセルをカウントしたい場合、数式は以下のようになります。
例:=COUNTIF(A2:A5,"*"&B2&"*")
「含む」の条件が複数ある場合(AND条件/OR条件)
すべての文字列を含む場合(AND条件)

ワイルドカードを使用した複数の文字列を、すべて含むセルを数えたい場合、条件を複数指定できるCOUNTIFS関数を使用します。
たとえば、A列のテキストから「PDF」と「File」の両方を含むセルをカウントしたい場合、数式は以下のようになります。
例:=COUNTIFS(A2:A5,"*PDF*",A2:A5,"*File*")
いずれかの文字列を含む場合(OR条件)
Excelの場合

ワイルドカードを使用した複数の文字列のうち、いずれか一つでも含まれるセルを数えたい場合、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関数とREGEXMATCH関数を組み合わせます。
たとえば、A列のテキストから「File」または「com」を含むセルをカウントしたい場合、数式は以下のようになります
例:=ArrayFormula(COUNTIF(REGEXMATCH(A2:A5,"File|com"),TRUE))
REGEXMATCH関数は、指定したテキストが正規表現に一致するかどうかを判定します。|(パイプ)は「または」を意味するので、「File」または「com」のいずれかが含まれていればTRUE、そうでなければFALSEが返されます。
REGEXMATCH関数の引数:(テキスト, 正規表現)