中級

条件に合うセルの個数を求める
(COUNTIF関数)


(約文字)

2018-11-12 2019-05-20

エクセルで指定条件に一致するセルを数える「COUNTIF関数」を解説。

エクセルで指定条件に一致するセルを数える「COUNTIF関数」を解説。

エクセルで、指定した条件に一致するセルの数をカウントする、”IF関数”と”COUNT関数”を合わせた様な、とても便利な関数「COUNTIF関数」を、初心者の方にも解りやすく・詳しく解説します。

COUNTIF関数の使い方や使い処、数値を検索条件にしてカウントする方法や、文字列を検索条件にしてカウントするする方法も解説しています。

1.COUNTIF関数とは

COUNTIF関数は”条件に一致したセルの数を求める”関数です。該当するセルの個数が知りたい場合に便利な関数です。 例えば「点数が30点以下の生徒が何人か」を求める場合などに使えます。

COUNTIF関数に似た「SUMIF関数」がありますが、SUMIF関数は”条件に一致した値の合計を求める”関数です。 例えば「クラスの女子だけ(男子を除く)の合計点」を求める場合などにつかえます。

整理すると以下の様になります。

COUNTIF関数”条件に一致したセルの数を求める”
SUMIF関数”条件に一致した値の合計を求める”

SUMIF関数については、以下の記事で詳しく解説しています。ぜひご覧ください。

2.COUNTIF関数の基本的な使い方

COUNTIF関数の使い方でですが、条件に一致したセルの数を求めたい場所(セル)に以下の数式を入力します。

=COUNTIF(検索範囲,検索条件)

引数1の[検索範囲]と、引数2の[検索条件]は、あなたが指定する必要があります。

引数1[検索範囲]に指定する内容

COUNTIF関数の引数1[検索範囲]には、検索条件に一致する内容が入力されたセル範囲を指定します。 例えば、セルA1~B10の範囲に対象が含まれる場合は以下の様に指定します。

=(A1:B10,[検索条件])

又、離れた複数の範囲を指定する方法は以下の様に指定します。

=COUNTIF(A1:B10,[検索条件])+COUNTIF(C11:D20,[検索条件])

この様に複数のCOUNTIF関数の結果を足し算で合計すれば求めるられます。

(ちなみに以下の様に、離れた複数の範囲を指定することは出来ません。)

=COUNTIF(A1:B10,C11:D20,[検索条件])

これは引数2つであるべきところ、3つ指定しているので、「この関数に対して、多すぎる引数が入力されています」と表示されてエクセル側が受け付けてくれません。

引数2[検索条件]に指定する内容

COUNTIF関数の引数2[検索条件]には、検索条件を指定します。 検索条件を指定する場合にいくつかの注意点があります。

注意点1

検索したい条件が文字列を指定する場合は、"文字列"と検索条件の文字列を"(ダブルコーテーション記号)で括ります。

=(検索範囲,"あいう")

この様に文字列をダブルコーテーションで括るのがポイントです。

注意点2

検索条件を文字列にした場合は、大文字と小文字は区別されず、”ABC”と”abc”は同じとみなされ一致します。

注意点3

検索条件には比較演算子やワイルドカードを使って指定することもできます。エクセルで使えるワイルドカードは以下の2種類があります。

  • 1.一部だけ揃っていて他は何でもよい場合には「*」(アスタリスク記号)を使います。
  • 2.任意の一文字でよい場合には「?」(クエスチョンマーク)を使います。

検索条件として”数値”と”文字列”を指定する具体的な例を以下で紹介します。

3.数値を検索条件にしてカウントする(等号や不等号)

検索条件を”完全一致”としたい場合の指定

完全一致を条件にしたい場合は記号「=」(イコール)を使います。この記号は、左の値が右の値と同じかを判断します。検索条件は関数の引数2に以下の様に指定します。例えば、

=COUNTIF(検索範囲,"=100")

この場合、検索範囲に指定されたセルに入力されている数値が「100にぴったり一致する」セルの数を返します。

(ちなみに「=(検索範囲,100)」と指定することも可能です。)

「100」に一致した場合はカウントの対象ですが、「10」や「1000」は不一致なのでカウントの対象外です。 具体的な例を挙げると、あるクラスのテストの結果が入ったセルB2~B9の中で、100点の優秀な生徒の人数を求めたい場合、以下の様に指定します。

=COUNTIF(B2:B9,"=100")

検索条件を”超える”としたい場合の指定方法

超えるを条件にしたい場合は記号「>」(大なり)を使います。この記号は、左の値が右の値より大きいかを判断します。検索条件は関数の引数2に以下の様に指定します。例えば、

=COUNTIF(検索範囲,">80")

この場合、検索範囲に指定されたセルに入力されている数値が「80を超える(80は含まない)」のセルの数を返します。 「81」「80.1」はカウントの対象ですが、「80」「79.9」はカウントの対象外です。 具体的な例を挙げると、あるクラスのテストの結果が入ったセルB2~B9の中で、80点を超える(80点は含まない)の優秀な生徒の人数を求めたい場合、以下の様に指定します。

=COUNTIF(B2:B9,">80")

検索条件を”以上”としたい場合の指定方法

以上を条件にしたい場合は記号「>=」(大なりイコール)を使います。この記号は、左の値が右の値より大きい、又は、左の値と右の値は同じかを判断します。検索条件は関数の引数2に以下の様に指定します。例えば、

=COUNTIF(検索範囲,">=80")

この場合、検索範囲に指定されたセルに入力されている数値が「80以上(100を含む)」のセルの数を返します。 「80.1」「80」はカウントの対象ですが、「79.9」「79」はカウントの対象外です。 具体的な例を挙げると、あるクラスのテストの結果が入ったセルC2~C9の中で、80点以上(80点を含む)の優秀な生徒の人数を求めたい場合、以下の様に指定します。

=COUNTIF(C2:C9,">=80")

検索条件を”以下”としたい場合の指定方法

以下を条件にしたい場合は記号「<=」(小なりイコール)を使います。この記号は、左の値が右の値より小さい、又は、左の値と右の値は同じかを判断します。検索条件は関数の引数2に以下の様に指定します。例えば、

=COUNTIF(検索範囲,"<=30")

この場合、検索範囲に指定されたセルに入力されている数値が「30以下(30を含む)」のセルの数を返します。 「29.9」「30」はカウントの対象ですが、「30.1」「31」はカウントの対象外です。 具体的な例を挙げると、あるクラスのテストの結果が入ったセルC2~C9の中で、30点以下(30点を含む)の成績の悪い生徒の人数を求めたい場合、以下の様に指定します。

=COUNTIF(C2:C9,"<=30")

検索条件を”未満”としたい場合の指定方法

未満を条件にしたい場合は記号「<」(小なり)を使います。この記号は、左の値が右の値より小さいかを判断します。検索条件は関数の引数2に以下の様に指定します。例えば、

=COUNTIF(検索範囲,"<30")

この場合、検索範囲に指定されたセルに入力されている数値が「30未満(30は含まない)」のセルの数を返します。 「29」「29.9」はカウントの対象ですが、「30」「30.1」はカウントの対象外です。 具体的な例を挙げると、あるクラスのテストの結果が入ったセルB2~B9の中で、30点未満(30点は含まない)の成績の悪い生徒の人数を求めたい場合、以下の様に指定します。

=COUNTIF(B2:B9,"<30")

4.文字列を検索条件にしてカウントする(ワイルドカード)

検索条件を”完全一致”としたい場合の指定方法

これは”数値を検索条件にしてカウントする”と同じで、完全一致を条件にしたい場合は記号「=」(イコール)を使います。この記号は、左の値が右の値と同じかを判断します。例えば、

=COUNTIF(検索範囲,"あいう")

この場合、検索範囲に指定されたセルに入力されている文字列が「あいう」に一致しているセルの数を返します。 「あいう」に完全に一致した場合はカウントの対象ですが、「あい」や「あいうえ」や「アイウ」はカウントの対象外です。 具体的な例を挙げると、あるクラスの生徒の性別が入力されたセルD2~D9の中で、”♂”に該当する場合、以下の様に指定します。

=COUNTIF(D2:D9,"♂")

検索条件を”部分一致(0文字以上の任意の文字)”としたい場合の指定方法

部分一致(0文字以上の任意の文字)を条件にしたい場合は記号「*」(アスタリスク)を使います。この記号は、0文字以上の任意の文字列と認識され判断します。

=COUNTIF(検索範囲,"abc*")

この場合、検索範囲に指定されたセルに入力されている文字列が「abcから始まっている」に一致しているセルの数を返します。 「abc」「abcd」「ABC」「AbC123」はカウントの対象ですが、「zabc」「012abc345」はカウントの対象外です。

(ちなみに、「*」の位置は文字列の末尾だけではなく、文字列の途中(例えばa*b*c)や、文字列の先頭(例えば*abc)と、指定することが出来ます。)

具体的な例を挙げると、あるクラスの生徒の苗字が入力されたセルE2~E9の中で、”山”から始まるに該当する場合、以下の様に指定します。

=COUNTIF(E2:E9,"山*")

これで「山田」さん、「山川」さん、「山本」さん、「山崎」さんなどが、カウントされます。

検索条件を”部分一致(任意の1文字)”としたい場合の指定方法

部分一致(任意の1文字)を条件にしたい場合は記号「?」(クエスチョンマーク)を使います。この記号は、任意の1文字と認識され判断します。例えば、

=COUNTIF(検索範囲,"abc?")

この場合、検索範囲に指定されたセルに入力されている文字列が「abcから始まっている4文字」に一致しているセルの数を返します。 「abcd」「ABCD」「ABC0」はカウントの対象ですが、「abc」「ABCDE」はカウントの対象外です。

(ちなみに、「?」の位置は文字列の末尾だけではなく、文字列の途中(例えばa?b?c)や、文字列の先頭(例えば?abc)や、連続(a??b???c????)と、指定することが出来ます。)

具体的な例を挙げると、あるクラスの生徒の名前が入力されたセルF2~F9の中で、”○子”に該当する場合、以下の様に指定します。

=COUNTIF(F2:F9,"?子")

これで「恵子」さん、「智子」さん、「花子」さん、「洋子」さんなどが、カウントされます。

この記事は以上です。最後までご覧頂き、ありがとうございました。