Excelで事務の仕事をこなすのであれば、覚えておきたいCOUNTIF関数。
COUNTIF関数とは、指定した範囲の中で1つの検索条件に一致するセルがいくつあるかを求める関数です。
COUNTIF関数を活用すれば、特定の文字が入っているセルの個数を数えたり、特定の文字以外のセルの個数を数えることができます。
ほかには空白セル以外を数えたいときにもCOUNTIF関数は活用できます。
そこで今回の記事では、ExcelでのCOUNTIF関数の基本的な使い方をご紹介していきます。
ぜひ参考にしてくださいね。
目次
COUNTIF関数の使い方
COUNTIF関数は指定した条件に合うセルの個数をカウントしたいときに使います。
その名の通り、データの個数を数える「COUNT」関数と、条件を指定して結果を返す「IF」関数の両方の機能が一緒になった関数で、大量のデータを集計する際に役立ちます。
たとえば
- 試験で75点以上取った人の数を数えたい
- 顧客の住所の中に東京という文字が入ったセルを数えたい
- 日付が2022年9月のセルを数えたい
- 目標達成率80%以上の部署を数えたい
など、条件に合ったデータが入っているセルの数を、COUNTIF関数で簡単に求めることができます。
このように、手計算でやるとミスをしてしまったり手間や時間がかかったりする作業でも、COUNTIF関数を使えば大量のデータを短時間で処理できます。
COUNTIF関数が使えるか使えないかでは、作業効率は雲泥の差がでるでしょう。
COUNTIF関数の書式
COUNTIF関数の書式は次の通りです。
=COUNTIF(範囲, 検索条件) |
範囲
範囲は必須入力項目です。
検索の対象とするセルやセルの範囲を指定します。数値や配列、名前付き範囲、参照が指定できます。
検索条件
同じく検索条件も必須入力項目で「範囲」の中からセルを検索するための条件を、数値、式、セル範囲、または文字列で指定します。
文字列を指定する場合は、「”(ダブルクォーテーション)」で囲みます。
なお、COUNTIF関数で指定できるのは、単一の検索条件のみです。 複数の検索条件を指定する場合は、COUNTIFS関数を使用します。
出典:Excel 作業の効率が上がる! 条件に合うセルを数える COUNTIF 関数を徹底解説
COUNTIF関数で使える比較演算子
検索条件で式を指定する際に比較演算子を使用することができます。
比較演算子を表にするとこのようになります。
演算子は、数式の要素に対して実行する計算の種類を指定します。 Excel では、計算の一般的な数学規則 (かっこ、指数、乗算と除算、および加算と減算、または頭字語のPEMDAS ) に従います。 かっこを使用すると、その計算順序を変更することができます。
参考:Microsoft|Excel の数式に計算演算子を使用する
なお、「使用例」ではわかりやすくするために、「A」「B」で表しました。
実際にエクセルで使用する場合は「A1」「B2」のようにセル番地となります。
文書では「≧」や「≦」を使いますが、エクセルで使用する場合は「>=」「<=」のようになるので注意が必要です。
そのため、イコールは後ろに付けることをしっかり覚えておくとよいでしょう。
ExcelでCOUNTIF関数以外でも数を数えてみよう
ここからはCOUNTIF関数以外に数をカウントできる関数をみていきましょう。
特定の数値より大きい値を持つセルの数をカウントする
関数の書式は次のように作成します。
=COUNTIF(範囲,”>X”)
特定の数値より大きい値を持つセルの数をカウントするには、 COUNTIF関数を使用します。数値を含むセルの範囲を表し、Xはカウントするしきい値を表します。
範囲は「C5:C11」と指定しています。
今回のケースではアクティブセルに次の数式が含まれています。
=COUNTIF(C5:C11,”>90″)
COUNTIF関数は、X より大きい数値を含む範囲内のセルの数をカウントし、結果を数値として返します。
たとえば、90以上のセルをカウントする場合は次のように関数を作成します。
=COUNTIF(C5:C11,”>=90″)
条件の一部として別のセルの値を使用する場合は、アンパサンド (&) 文字を使用して次のように連結します。
=COUNTIF(範囲,”>”&a1)
セル a1 の値が “90” の場合、連結後の条件は “>90” になります。
空白のセルをカウントする
一般的な式
= COUNTBLANK(範囲)
空白やブランクのセルの数を数えるには、COUNTBLANK関数が使用できます。
範囲を「 B5:B14」と指定すると次のようになります。
= COUNTBLANK( B5:B14 )
たとえば範囲内に3つの空白セルがある場合、COUNTBLANKは3を返します
COUNTBLANK関数は値を含まない範囲内のセルの数をカウントし、結果としてこの数を返します。
そのためテキスト、数字、日付、エラーなどを含むセルはカウントされません。COUNTBLANK関数は範囲を指定するだけで結果を返します。ですから、今回のセルE5には範囲内に3つの空のセルがあるため、COUNTBLANK関数は3を返します。
注意事項テキスト、数字、エラーなどを含むセルはカウントされません。空のテキスト(””)を返す数式は空白とみなされ、カウントされます。0のセルは空白ではないと見なされ、カウントされません。 |
空白ではないセルをカウントする
空白でないセルをカウントするには、COUNTA関数を使用します。
たとえば結果を返したいセルをE6とした場合、式は次のとおりです。
範囲は「B5:B14」です。空白が3つなので(=範囲内の8つのセルに値が含まれているため)
= COUNTA( B5:B14 ) はE6に7を返します。
COUNTIF関数で複数条件を指定する
複数の条件を指定したい場合は、次の方法があります。
AND条件を指定したい
方法1 COUNTIFS関数を使う
※Ver2007以降 の関数。2003まではSUMPRODUCTかDCOUNTを使う
COUNTIFS関数を使うと複数条件に合致したものをカウントできます。(AND条件 )
= COUNTIFS(条件範囲1,”条件1″,条件範囲2,”条件2″,条件範囲3,”条件3″…)
例:23区内で60歳以上を数える(AND条件)
=COUNTIFS(D1:D7,”区内”,C1:C7,”>=60″) 結果は「2」
方法2 DCOUNT関数を使う
DCOUNT/DCOUNTA関数では、複数条件に合致したものを数えることができます。AND/OR条件、それらの組み合わせ等複雑な条件が可能です。
=DCOUNT ( データベース , 集計したいフィールド名 , 条件エリア※)
方法3 SUMPRODUCT関数を使う
※2003以前のExcelでCOUNTIFSが使えない場合のみ対応します
= SUMPRODUCT((範囲1の条件)*(範囲2の条件))
例:23区内で60歳以上を数える
=SUMPRODUCT((D1:D7=”23区内”)*(C1:C7>=60))
SUMPRODUCT関数とは、引数を指定するだけで配列計算できる関数です。
一般的な構文であるSUMPRODUCT関数(配列1,配列2)では、配列内の各要素をかけあわせて合計します。
今回の例題だと
- 23区内ならTRUE(1),そうでないならFALSE(0)
- 60以上ならTRUE(1),そうでないならFALSE(0)
という配列の各要素の結果(0か1)をかけることで、1×1の場合のみ1が出ます。
これを合計することで個数を数えることができます。
OR条件を指定したい
OR条件でカウントしたい場合は、DCOUNT関数を使うかCOUNTIFS関数を組み合わせて使います。
方法1 COUNTIFS関数を使う
同じフィールドならCOUNTIFS関数を追加するだけでカウントできます。
例:4歳以下または60歳以上
=COUNTIFS(C1:C7,”<=4″) + COUNTIFS(C1:C7,”>=60″)
ただし、異なるフィールドでは重複することがあるので、たした後にダブった分を引く必要があるので注意しましょう。
例:4歳以下または女性
= COUNTIFS(B1:B7,”女”)+COUNTIFS(C1:C7,”<=4″) 結果は「5」
これだけでは「4歳以下で1、女性で1」なので、4歳以下の女性が2回カウントされてしまいます。そのため4歳以下かつ女性分を引かなければなりません。
= COUNTIFS(B1:B7,”女性”)+COUNTIFS(C1:C7,”<=4″) – COUNTIFS(B1:B7,”女性”, C1:C7,”<=4″)
方法2 DCOUNT関数を使う
DCOUNT関数もしくはDCOUNTA関数では、複数条件に一致したものを数えることができる関数です。AND/OR条件といった複雑な条件にも対応可能です。
=DCOUNT ( データベース , 集計したいフィールド名 , 条件エリア)
応用編|DCOUNT/DCOUNTA関数で複数の条件に合致したものを数える
次のデータベースで「60歳以上の区内(AND)」「3歳以下または60歳以上(OR)」といった条件で数えてみましょう。
AND条件(同じ行に入力):例「60歳以上」の「23区内」在住を数えたい。
条件エリアを作成します。AND条件(区内で60以上)は同じ行に入力します。
カウントしたい場所へ式を入力します。
この場合は名前フィールドを数えるのでA1を指定します。
=DCOUNTA($A$1:$D$7,A1,F1:G2)
OR条件(異なる行に入力):例「4歳以下」または「60歳以上」を数えたい。
条件エリアを作成します。
この場合、OR条件(4歳以下もしくは60歳以上)は違う行に入力します。
そして、次の関数を入力します。
=DCOUNTA($A$1:$D$7,A1,F1:G3)
また、以下のような複雑な条件も可能です。
- 23区内の4歳以下または60歳以上
- もしくは20歳以上の女性
この場合、「23区内の60歳以上」または「23区内の4歳以下」または「20歳以上の女性」の個数をカウントします。
これはフィルターオプションで利用する条件範囲と同じです。
フィルタオプションとは、リスト(データベース)から条件に合致したデータの行(レコード)を抽出することができる機能です。
最後にここまで紹介してきたCOUNTIF以外の関数をまとめましたので、振り返りに活用してください。
COUNTBLANK関数空白セルの個数をカウントする関数。関数のダイアログボックスの範囲にセルを指定するだけで求めることが可能。 |
DCOUNT関数DCOUNT関数は、表やデータの中で複数の条件に適合するセルの個数をカウントする関数。ただし、カウントできるのは数値のみ、指定する項目には数値が入力が必須。 |
DCOUNTA関数DCOUNTA関数は、文字列や数式と数値が入ったセルの個数をカウントする関数。複数条件に適合するセルの個数を数えることはDCOUNT関数と同じ。 COUNTIFS関数とDCOUNTA関数の機能はほぼ同じだが、DCOUNTA関数の場合は検索条件を別のリストに作成する必要がある。とはいえ、ORやANDの組み合わせが簡単になるのがDCOUNTA関数の特徴。 |
SUMPRODUCT関数SUMPRODUCT関数はSUM関数の仲間で、構成要素の積を計算してから合計する関数ANDなどを利用すれば複数の条件でカウントが可能。 |
まとめ
いかがでしたでしょうか。
今回の記事ではExcelでよく使用するCOUNTIF関数を含む、条件に一致した数をカウントする関数を紹介してきました。
COUNTIF関数とは1つの条件を満たすセルの数をカウントする便利な関数です。
そのため、データ分析や営業事務、経理・会計業務についている方はよく見かけるでしょう。Excel初心者の方も覚えておいて損はない関数です。
最初からすべて覚えるのは大変ですが、ひとつずつ業務で必要なものから習得し、作業効率化を目指していきましょう。