条件に一致したデータの件数を知りたいCOUNTIF関数COUNTIFS関数-GSS/Excel/関数
条件に一致したデータの件数を知りたいCOUNTIF関数COUNTIFS関数-GSS/Excel/関数
条件に合致したデータの件数をカウントするCOUNTIFS関数・COUNTIF関数
売上データから特定の担当者の案件数を知りたい、特定の期間の取引件数を調べたいことってありますよね。
今回はCOUNTIFS・COUNTIF関数をご紹介します。
正直COUNTIFSでCOUNTIFを包含するので、COUNTIFSだけ書き方を覚えればOKです!早速やっていきましょう。
A | B | C | D | E | F | G | H | I |
---|---|---|---|---|---|---|---|---|
日付 | 担当者 | チーム | 顧客名 | 商品 | 単価 | 数量 | 売上 | 案件数 |
2024/1/5 | 田中 | AAA | 株式会社X | 商品A | 1000 | 10 | 10000 | 1 |
2024/1/6 | 佐藤 | BBB | 株式会社Y | 商品B | 2000 | 5 | 10000 | 1 |
2024/1/7 | 田中 | AAA | 株式会社Z | 商品A | 1000 | 15 | 15000 | 1 |
2024/1/8 | 山田 | CCC | 株式会社W | 商品C | 3000 | 3 | 9000 | 1 |
いつものシートです。今回は[K4]セルにお題が書かれているとします。
チームごとの案件数をカウントしていきます。
構文
=COUNTIF(条件範囲,条件)
正解例(仮)
まず正解例は下記の通り。
ただこれも最適解ではないので、その辺りも説明していきます。
チームは[C5:C19]に書かれています。まず条件範囲を指定し、その後に条件を入力します。
上の式で言うと、
条件範囲1は[C5:C19]。
条件1は[K6]。
今回は条件が1つしかないので条件範囲2以降は続かないのでこれで終了です。
合体させた結果が[L6]=COUNTIFS(C5:C19,K6)になります。
条件が増えた場合は、同じように、条件範囲と条件を増やしていくだけです。意外と簡単ですよね?
先ほどこれが最適解ではないと言いました。それはなぜかというと、範囲が全て固定されていない状態のままだからです。
K | L |
---|---|
チーム | 案件数 |
AAA | =COUNTIFS(C5:C19,K6) |
BBB | |
CCC |
改めて表を見ていきます。
AAA、BBB、CCCそれぞれで案件数の合計値を出そうとしています。計算して表示するセルが3つありますが、全て先ほどのように関数を入力するのは手間ですよね?
関数の中の「条件範囲」が一緒で、「条件」だけが違うので、コピペでいけそうって思いませんか?
結論、いけます。
絶対参照と相対参照
ただ[L6]=COUNTIFS(C5:C19,K6)のまま[L7][L8]セルにコピペをするとこうなります。
K | L |
---|---|
チーム | 案件数 |
AAA | =COUNTIFS(C5:C19,K6) |
BBB | =COUNTIFS(C6:C20,K7) |
CCC | =COUNTIFS(C7:C21,K8) |
一瞬合ってそうって思いますよね。でも範囲をよく見てみてください。
[L7]=COUNTIFS(C6:C20,K7)となっており、「条件範囲」がずれてしまっていることがわかります。
ここで使うのが「$」。範囲を固定します。
通常セルを使った関数を別のセルにコピペすると、相対参照され、位置がずれます。コピペ元の6行目から7行目にコピペしたことで、相対参照された結果、指定していた範囲が[C5:C19]から[C6:C20]に行がずれてしまいました。
行がずれることで、指定したい範囲がずれてしまうので、行を固定します。そこで書き直した式が下記です。
このセルの状態で、[L6]を[L7][L8]にコピペすると
K | L |
---|---|
チーム | 案件数 |
AAA | =COUNTIFS(C$5:C$19,K6) |
BBB | =COUNTIFS(C$5:C$19,K7) |
CCC | =COUNTIFS(C$5:C$19,K8) |
[L7]=COUNTIFS(C$5:C$19,K7)
行がずれずに正しい式がコピペできました。
本当の正解
今度は複数の条件でカウントしてみましょう。担当者別かつチーム別の案件数を出してみます。
書き直した式がこちらです。
K | L | M |
---|---|---|
チーム | 担当者 | 案件数 |
AAA | 田中 | =COUNTIFS($B$5:$B$19,L6,$C$5:$C$19,$K6) |
BBB | 佐藤 | |
CCC | 山田 |
条件範囲1(担当者)は[$B$5:$B$19]でずれて欲しくないので、列も行も固定します。
条件1(担当者の条件)は[L6]で行はずれて欲しいですが、列はずれて欲しくありません。
条件範囲2(チーム)は[$C$5:$C$19]でずれて欲しくないので、列も行も固定します。
条件2(チームの条件)は[$K6]で行はずれて欲しいですが、列はずれて欲しくありません。
合わせた結果が[M6]=COUNTIFS($B$5:$B$19,L6,$C$5:$C$19,$K6)です。
応用例:複数条件での絞り込み
COUNTIFS関数の真価は複数条件を組み合わせた時に発揮されます。以下のような条件で案件数をカウントしてみましょう。
- 特定の期間内の案件数
- 売上金額が一定以上の案件数
- 特定の商品カテゴリの案件数
この式は以下の条件を満たす案件数をカウントします:
- 日付が2024年1月5日以降
- 日付が2024年1月10日以前
- 売上が10,000円以上
日付や数値の比較では「>=」「」「<」の演算子を使用できます。文字列の部分一致には「*」(ワイルドカード)を使用します。
まとめ
COUNTIFS関数・COUNTIF関数の使い所
- あるデータから条件が合致するデータの件数を知りたいとき
- 複数の条件を組み合わせてデータを分析したいとき
- データの傾向や分布を把握したいとき
構文
=COUNTIF(条件範囲,条件)
例文
COUNTIF($C$5:$C$19,$K6)
覚えておきたいポイント
- 絶対参照($)と相対参照を使い分けてコピペを効率化
- 複数条件は条件範囲と条件をペアで追加
- 比較演算子(>=、、<)で数値や日付の範囲指定が可能
- ワイルドカード(*、?)で文字列の部分一致検索が可能
このように正しく絶対参照と相対参照を使いこなすことで、作る関数の数を最小限にすることができます。
ぜひ使いこなせるようにたくさん使ってみてくださいね。