
ExcelのCOUNTIF関数は、「大文字と小文字」を区別しません。「Appleとapple」を区別してカウントしたい場合、他の関数を組み合わせて実現します。この記事では、大文字と小文字を区別してCOUNTIF関数のようにカウントする方法から、部分一致の検索まで詳しく解説します。
はじめに

COUNTIF関数は、検索キーと一致するセルを数えるとき、全角と半角は区別しますが、「大文字と小文字」を区別しません。
たとえば、A列のテキストの中から「pdf」という文字列を数えたい場合、「PDF・pdf・pDf」のどれがA列にあっても、一致したものとしてカウントします。
例:COUNTIF(A2:A5,"pdf")
COUNTIF関数の引数:(範囲, 条件)
COUNTIF:大文字・小文字を区別してカウントする

大文字と小文字を区別して数えたい場合は、SUMPRODUCT関数とEXACT関数を組み合わせます。
たとえば、A列のテキストの中から「pdf」と完全に一致する文字列を数えたい場合は、次の数式を使います。
例:=SUMPRODUCT(EXACT(A2:A5,"pdf")*1)
この数式では、まずEXACT関数で2つの文字列が同一であるかを検証し、その結果を{FALSE; TRUE; FALSE;FALSE}のような配列で返します。
次に*1がこの配列を{0; 1; 0; 0}という数値の配列に変換し、SUMPRODUCT関数がこの配列を受け取り、合計を返します。
SUMPRODUCT関数の引数:(配列1, [配列2, …])
COUNTIF:部分一致で厳密に検索する
COUNTIFは、ワイルドカード(*や?)を使って部分一致を検索できますが、その場合も大文字と小文字を区別しません。
もし、部分一致でこれらを区別したい場合は、SUMPRODUCT関数に、それぞれFIND,LEFT,RIFHTといった関数を組み合わせます。
「~を含む」の場合

たとえば、A列のテキストの中から「pdf」という文字列を含むもの(大文字・小文字を区別して)を数えたい場合は、次の数式を使います。
例:=SUMPRODUCT(ISNUMBER(FIND("pdf",A2:A5))*1)
FIND関数の引数:(検索文字列, 検索対象のテキスト, [開始位置])
この数式では、まずFIND関数が検索文字列がテキスト内に最初に現れる位置を取得し、その結果をISNUMBER関数が{TRUE;TRUE; FALSE;のような配列で返します。TRUE}
次に*1がこの配列を{1; 1; 0; 1}という数値の配列に変換し、SUMPRODUCT関数がこの配列を受け取り、合計を返します。
「~で始まる」の場合

たとえば、A列のテキストの中から「pdf」という文字列で始まるもの(大文字・小文字を区別して)を数えたい場合は、次の数式を使います。
例:=SUMPRODUCT(EXACT(LEFT(A2:A5,LEN("pdf")),"pdf")*1)
LEFT関数の引数:(文字列, [文字数])
この数式では、まずLEN関数が検索文字列の文字数(3)を取得し、LEFT関数がテキストの左から3文字を取り出します。
次にEXACT関数が、その取り出した文字列が「pdf」と完全に一致するかを検証し、その結果を{FALSE; TRUE; FALSE;FALSE}のような配列で返します。
最後に*1がこの配列を{0; 1; 0; 0}という数値の配列に変換し、SUMPRODUCT関数がこの配列を受け取り、合計を返します。
「~で終わる」の場合

たとえば、A列のテキストの中から「pdf」という文字列で終わるもの(大文字・小文字を区別して)を数えたい場合は、次の数式を使います。
例:=SUMPRODUCT(EXACT(RIGHT(A2:A5,LEN("pdf")),"pdf")*1)
RIGHT関数の引数:(文字列, [文字数])
この数式では、まずLEN関数が検索文字列の文字数(3)を取得し、RIGHT関数がテキストの右から3文字を取り出します。
次にEXACT関数が、その取り出した文字列が「pdf」と完全に一致するかを検証し、その結果を{FALSE; TRUE; FALSE;FALSE}のような配列で返します。
最後に*1がこの配列を{0; 1; 0; 0}という数値の配列に変換し、SUMPRODUCT関数がこの配列を受け取り、合計を返します。