Step 37:COUNTIF/COUNTIFS/AVERAGEIF/AVERAGEIFS

📊 Step 37: COUNTIF/COUNTIFS/AVERAGEIF/AVERAGEIFS

条件付きカウント・平均をマスターしよう!

📋 このステップで学ぶこと

  • COUNTIF関数(単一条件でカウント)
  • COUNTIFS関数(複数条件でカウント)
  • AVERAGEIF関数(単一条件で平均)
  • AVERAGEIFS関数(複数条件で平均)
  • 4つの関数の比較と使い分け
  • 実務での活用例

🎯 1. COUNTIF関数の基本

COUNTIF関数は、特定の条件を満たすセルの個数を数える関数です。「合格した人は何人?」「営業部は何人?」といった質問に答えられます。

📝 COUNTIF関数の構文
=COUNTIF(範囲, 検索条件)
引数の説明:
範囲:条件を判定する範囲(どこを調べるか)
検索条件:カウントしたい条件(何を数えるか)
💡 COUNTIFのポイント

個数を数える(合計ではない)
✓ 文字列の条件は「”」で囲む → "合格"
✓ 数値条件(>=、<など)も「"」で囲む → “>=80”
✓ ワイルドカード(*、?)が使える → "*田*"で「田」を含む
📊 COUNTIF関数の動作イメージ
=COUNTIF(B2:B8, “合格”)
A列
氏名
B列
結果
カウント
田中 合格 ✓ 1個目
佐藤 不合格
鈴木 合格 ✓ 2個目
高橋 合格 ✓ 3個目
伊藤 不合格
渡辺 合格 ✓ 4個目
山本 不合格
合格者数 4人

📝 COUNTIF関数の使用例(※横スクロールできます)

【データ】 A列 B列 C列 +——+——+——+ 1 | 氏名 | 結果 | 点数 | +——+——+——+ 2 | 田中 | 合格 | 85 | +——+——+——+ 3 | 佐藤 | 不合格 | 65 | +——+——+——+ 4 | 鈴木 | 合格 | 78 | +——+——+——+ 5 | 高橋 | 合格 | 92 | +——+——+——+ 【例1】合格者数をカウント =COUNTIF(B2:B5, “合格”) 結果:3 【例2】セル参照で条件を指定(D2セルに「合格」と入力されている場合) =COUNTIF(B2:B5, D2) 結果:3 【例3】数値条件(80点以上の人数) =COUNTIF(C2:C5, “>=80”) 結果:2(田中85点、高橋92点) 【例4】ワイルドカード(「田」を含む名前の人数) =COUNTIF(A2:A5, “*田*”) 結果:1(田中)

📝 2. COUNTIFS関数(複数条件)

COUNTIFS関数は、複数の条件をすべて満たすセルの個数を数える関数です。「東京の営業は何人?」のような複合条件に対応できます。

📝 COUNTIFS関数の構文
=COUNTIFS(条件範囲1, 条件1, 条件範囲2, 条件2, …)
引数の説明:
条件範囲1:1つ目の条件を判定する範囲
条件1:1つ目の条件
条件範囲2, 条件2…:追加の条件(AND条件)
🔑 COUNTIFSのポイント

✓ 複数の条件はAND条件(すべてを満たす)
✓ 条件は「範囲, 条件」のペアで指定
✓ 最大127組の条件を指定可能
✓ すべての範囲は同じ行数でなければならない
📊 COUNTIFS関数の動作イメージ
=COUNTIFS(B2:B6, “営業”, C2:C6, “東京”)
A列
氏名
B列
部署
C列
支店
判定
田中 営業 ✓ 東京 ✓ ✓ 1人目
佐藤 開発 ✗ 東京 ✓ ✗ 部署が違う
鈴木 営業 ✓ 大阪 ✗ ✗ 支店が違う
高橋 営業 ✓ 東京 ✓ ✓ 2人目
伊藤 営業 ✓ 名古屋 ✗ ✗ 支店が違う
東京の営業 2人
両方の条件を満たす行だけがカウントされます

📝 COUNTIFS関数の使用例(※横スクロールできます)

【データ】 A列 B列 C列 +——+——+——+ 1 | 氏名 | 部署 | 支店 | +——+——+——+ 2 | 田中 | 営業 | 東京 | +——+——+——+ 3 | 佐藤 | 開発 | 東京 | +——+——+——+ 4 | 鈴木 | 営業 | 大阪 | +——+——+——+ 5 | 高橋 | 営業 | 東京 | +——+——+——+ 【例1】東京の営業の人数 =COUNTIFS(B2:B5, “営業”, C2:C5, “東京”) 結果:2(田中、高橋) 【例2】東京で営業以外の人数(「以外」は<>を使う) =COUNTIFS(C2:C5, “東京”, B2:B5, “<>営業”) 結果:1(佐藤) 【例3】数値条件との組み合わせ(営業で売上1000以上) =COUNTIFS(B2:B10, “営業”, D2:D10, “>=1000”) → 営業部で売上が1000以上の人数

📝 3. AVERAGEIF関数の基本

AVERAGEIF関数は、特定の条件を満たすデータだけの平均を計算する関数です。「営業部の平均売上は?」といった分析ができます。

📝 AVERAGEIF関数の構文
=AVERAGEIF(範囲, 検索条件, 平均範囲)
引数の説明:
範囲:条件を判定する範囲(どこを調べるか)
検索条件:平均を取りたい条件(何を条件にするか)
平均範囲:実際に平均を計算する範囲(どの数値を平均するか)
🎯 AVERAGEIFのポイント

✓ 「範囲」と「平均範囲」は別の列でもOK
✓ 「範囲」と「平均範囲」が同じ場合は省略可能
✓ 該当データがない場合は#DIV/0!エラーになる
✓ エラー対策には=IFERROR(AVERAGEIF(...), 0)を使う
📊 AVERAGEIF関数の動作イメージ
=AVERAGEIF(A2:A6, “営業”, B2:B6)
A列(判定範囲)
部署
B列(平均範囲)
売上
判定結果
営業 ✓ 1000 平均に含める
開発 ✗ 800 含めない
営業 ✓ 1200 平均に含める
総務 ✗ 600 含めない
営業 ✓ 900 平均に含める
営業の平均売上 1,033
(1000 + 1200 + 900) ÷ 3 = 1033.33…

📝 AVERAGEIF関数の使用例(※横スクロールできます)

【データ】 A列 B列 +——+——+ 1 | 部署 | 売上 | +——+——+ 2 | 営業 | 1000 | +——+——+ 3 | 開発 | 800 | +——+——+ 4 | 営業 | 1200 | +——+——+ 5 | 総務 | 600 | +——+——+ 6 | 営業 | 900 | +——+——+ 【例1】営業の平均売上 =AVERAGEIF(A2:A6, “営業”, B2:B6) 結果:1033.33…((1000+1200+900)÷3) 【例2】1000以上の平均(範囲と平均範囲が同じ場合) =AVERAGEIF(B2:B6, “>=1000”, B2:B6) 結果:1100((1000+1200)÷2) 【例3】該当がない場合のエラー対策 =IFERROR(AVERAGEIF(A2:A6, “人事”, B2:B6), 0) 結果:0(「人事」がないのでエラーを0に変換)

📝 4. AVERAGEIFS関数(複数条件)

AVERAGEIFS関数は、複数の条件をすべて満たすデータだけの平均を計算する関数です。「東京の営業の平均売上は?」といった詳細な分析ができます。

📝 AVERAGEIFS関数の構文
=AVERAGEIFS(平均範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, …)
引数の説明:
平均範囲:実際に平均を計算する範囲(最初に指定!
条件範囲1, 条件1:1つ目の条件
条件範囲2, 条件2…:追加の条件(AND条件)
⚠️ 引数の順番に注意!

AVERAGEIF:範囲 → 条件 → 平均範囲(平均範囲が最後
AVERAGEIFS:平均範囲 → 範囲 → 条件…(平均範囲が最初

SUMIFとSUMIFSも同じルールです。「IFS」の方が平均/合計範囲が最初に来ます。

📝 AVERAGEIFS関数の使用例(※横スクロールできます)

【データ】 A列 B列 C列 D列 +——+——+——+——+ 1 | 氏名 | 部署 | 支店 | 売上 | +——+——+——+——+ 2 | 田中 | 営業 | 東京 | 1000 | +——+——+——+——+ 3 | 佐藤 | 開発 | 東京 | 800 | +——+——+——+——+ 4 | 鈴木 | 営業 | 大阪 | 1500 | +——+——+——+——+ 5 | 高橋 | 営業 | 東京 | 1200 | +——+——+——+——+ 【例1】東京の営業の平均売上 =AVERAGEIFS(D2:D5, B2:B5, “営業”, C2:C5, “東京”) 結果:1100((1000+1200)÷2) ↑ 平均範囲が最初! 【例2】営業で1000以上の平均売上 =AVERAGEIFS(D2:D5, B2:B5, “営業”, D2:D5, “>=1000”) 結果:1233.33…((1000+1500+1200)÷3) 【例3】エラー対策付き =IFERROR(AVERAGEIFS(D2:D5, B2:B5, “人事”, C2:C5, “東京”), 0) 結果:0(該当なしの場合は0)

⚖️ 5. 4つの関数の比較と使い分け

条件付き関数を整理すると、以下のようになります。

📊 条件付き関数の比較表
関数名 何をする? 条件数 用途例
SUMIF 合計 1つ 特定商品の売上合計
SUMIFS 合計 複数 東京の営業の売上合計
COUNTIF 個数 1つ 合格者数
COUNTIFS 個数 複数 東京の営業の人数
AVERAGEIF 平均 1つ 営業の平均売上
AVERAGEIFS 平均 複数 東京の営業の平均売上
🔑 引数の順番まとめ

■ 単一条件(IF):
=SUMIF(範囲, 条件, 合計範囲)
=COUNTIF(範囲, 条件)
=AVERAGEIF(範囲, 条件, 平均範囲)

■ 複数条件(IFS):
=SUMIFS(合計範囲, 範囲1, 条件1, ...)
=COUNTIFS(範囲1, 条件1, 範囲2, 条件2, ...)
=AVERAGEIFS(平均範囲, 範囲1, 条件1, ...)

※「IFS」は集計範囲が最初!(SUMIFSとAVERAGEIFS)
🔢 カウント系
条件を満たす個数を数える
COUNTIF:単一条件
COUNTIFS:複数条件
📊 平均系
条件を満たすデータの平均を計算
AVERAGEIF:単一条件
AVERAGEIFS:複数条件
➕ 合計系(前ステップ)
条件を満たすデータの合計を計算
SUMIF:単一条件
SUMIFS:複数条件

💼 6. 実務での活用例

例1:試験結果の分析

【データ】 A列 B列 C列 +——+——+——+ 1 | 氏名 | 学部 | 点数 | +——+——+——+ 2 | 田中 | 文学 | 85 | +——+——+——+ 3 | 佐藤 | 理学 | 92 | +——+——+——+ 4 | 鈴木 | 文学 | 78 | +——+——+——+ 5 | 高橋 | 理学 | 88 | +——+——+——+ 6 | 伊藤 | 文学 | 90 | +——+——+——+ ■ 文学部の合格者数(80点以上): =COUNTIFS(B2:B6, “文学”, C2:C6, “>=80”) 結果:2人(田中、伊藤) ■ 文学部の平均点: =AVERAGEIF(B2:B6, “文学”, C2:C6) 結果:84.33…点 ■ 理学部の合計点: =SUMIF(B2:B6, “理学”, C2:C6) 結果:180点(92+88) ■ 80点以上の人数: =COUNTIF(C2:C6, “>=80”) 結果:4人

例2:商品別売上分析

【データ】 A列 B列 C列 D列 +——–+——–+——–+——+ 1 | 日付 | 商品 | カテゴリ | 売上 | +——–+——–+——–+——+ 2 | 1/5 | りんご | 果物 | 1000 | +——–+——–+——–+——+ 3 | 1/8 | 牛乳 | 乳製品 | 300 | +——–+——–+——–+——+ 4 | 1/10 | みかん | 果物 | 800 | +——–+——–+——–+——+ 5 | 1/15 | りんご | 果物 | 1200 | +——–+——–+——–+——+ ■ 果物カテゴリの売上回数: =COUNTIF(C2:C5, “果物”) 結果:3回 ■ 果物カテゴリの平均売上: =AVERAGEIF(C2:C5, “果物”, D2:D5) 結果:1000円 ■ 1000円以上の売上回数: =COUNTIF(D2:D5, “>=1000”) 結果:2回 ■ りんごの売上合計: =SUMIF(B2:B5, “りんご”, D2:D5) 結果:2200円

例3:勤怠管理

【データ】 A列 B列 C列 +——+——+——+ 1 | 社員 | 出勤 | 遅刻 | +——+——+——+ 2 | 田中 | ○ | なし | +——+——+——+ 3 | 佐藤 | ○ | あり | +——+——+——+ 4 | 鈴木 | 欠勤 | − | +——+——+——+ 5 | 高橋 | ○ | なし | +——+——+——+ ■ 出勤者数: =COUNTIF(B2:B5, “○”) 結果:3人 ■ 遅刻者数: =COUNTIF(C2:C5, “あり”) 結果:1人 ■ 出勤した人の中の遅刻者数: =COUNTIFS(B2:B5, “○”, C2:C5, “あり”) 結果:1人 ■ 出勤率の計算: =COUNTIF(B2:B5, “○”) / COUNTA(B2:B5) 結果:0.75(75%)

📝 練習問題

練習 1
初級

COUNTIF関数で特定の結果をカウントしてください

📝 表(※横スクロールできます)

データ(A1:B6): A列 B列 +——+——+ 1 | 氏名 | 結果 | +——+——+ 2 | 田中 | 合格 | +——+——+ 3 | 佐藤 | 不合格 | +——+——+ 4 | 鈴木 | 合格 | +——+——+ 5 | 高橋 | 合格 | +——+——+ 6 | 伊藤 | 不合格 | +——+——+ 「合格」の人数を数えてください

数式:

=COUNTIF(B2:B6, “合格”)

結果:3人

解説:

COUNTIF関数でB2:B6の範囲を調べ、「合格」のセルが何個あるかを数えます。田中、鈴木、高橋の3人が該当します。

練習 2
中級

AVERAGEIF関数で特定部署の平均を計算してください

📝 表(※横スクロールできます)

データ(A1:B6): A列 B列 +——+——+ 1 | 部署 | 売上 | +——+——+ 2 | 営業 | 1000 | +——+——+ 3 | 開発 | 800 | +——+——+ 4 | 営業 | 1200 | +——+——+ 5 | 総務 | 600 | +——+——+ 6 | 営業 | 900 | +——+——+ 「営業」の平均売上を計算してください

数式:

=AVERAGEIF(A2:A6, “営業”, B2:B6)

結果:1033.33…円

解説:

A列で「営業」を探し、該当するB列の値(1000、1200、900)の平均を計算します。

計算:(1000 + 1200 + 900) ÷ 3 = 1033.33…

練習 3
中級

COUNTIFS関数で複数条件のカウントをしてください

📝 表(※横スクロールできます)

データ(A1:C6): A列 B列 C列 +——+——+——+ 1 | 氏名 | 部署 | 支店 | +——+——+——+ 2 | 田中 | 営業 | 東京 | +——+——+——+ 3 | 佐藤 | 開発 | 東京 | +——+——+——+ 4 | 鈴木 | 営業 | 大阪 | +——+——+——+ 5 | 高橋 | 営業 | 東京 | +——+——+——+ 6 | 伊藤 | 営業 | 名古屋 | +——+——+——+ 「営業」かつ「東京」の人数を数えてください

数式:

=COUNTIFS(B2:B6, “営業”, C2:C6, “東京”)

結果:2人

解説:

B列が「営業」かつC列が「東京」の行を数えます。該当するのは田中と高橋の2人です。

練習 4
上級

複数の条件付き関数を組み合わせて分析してください

📝 表(※横スクロールできます)

データ(A1:D6): A列 B列 C列 D列 +——+——+——+——+ 1 | 氏名 | 部署 | 支店 | 売上 | +——+——+——+——+ 2 | 田中 | 営業 | 東京 | 1000 | +——+——+——+——+ 3 | 佐藤 | 開発 | 東京 | 800 | +——+——+——+——+ 4 | 鈴木 | 営業 | 大阪 | 1500 | +——+——+——+——+ 5 | 高橋 | 営業 | 東京 | 1200 | +——+——+——+——+ 6 | 伊藤 | 営業 | 名古屋 | 900 | +——+——+——+——+ 以下を計算してください: 1. 東京の営業の人数 2. 東京の営業の売上合計 3. 東京の営業の平均売上

1. 東京の営業の人数:

=COUNTIFS(B2:B6, “営業”, C2:C6, “東京”)

結果:2人

2. 東京の営業の売上合計:

=SUMIFS(D2:D6, B2:B6, “営業”, C2:C6, “東京”)

結果:2200円

3. 東京の営業の平均売上:

=AVERAGEIFS(D2:D6, B2:B6, “営業”, C2:C6, “東京”)

結果:1100円

解説:

すべて「部署が営業」かつ「支店が東京」という2つの条件を満たすデータを対象にしています。該当するのは田中(1000円)と高橋(1200円)の2人です。

練習 5
上級

空白や「以外」の条件を使ってカウントしてください

📝 表(※横スクロールできます)

データ(A1:B6): A列 B列 +——+——+ 1 | 商品 | 在庫 | +——+——+ 2 | りんご | 50 | +——+——+ 3 | みかん | | ← 空白 +——+——+ 4 | バナナ | 30 | +——+——+ 5 | ぶどう | 0 | +——+——+ 6 | メロン | | ← 空白 +——+——+ 以下を計算してください: 1. 在庫が空白の商品数 2. 在庫が空白以外の商品数 3. 在庫が0以外の商品数(空白除く)

1. 在庫が空白の商品数:

=COUNTIF(B2:B6, “”)

結果:2(みかん、メロン)

2. 在庫が空白以外の商品数:

=COUNTIF(B2:B6, “<>“)

結果:3(りんご、バナナ、ぶどう)

3. 在庫が0以外の商品数(空白除く):

=COUNTIFS(B2:B6, “<>“, B2:B6, “<>0″)

結果:2(りんご、バナナ)

解説:

・空白の条件は「””」(ダブルクォート2つ)
・空白以外の条件は「<>」
・0以外の条件は「<>0」

❓ よくある質問

Q1: AVERAGEIFで該当データがない場合はどうなりますか?
#DIV/0!エラーになります。これは「0で割った」エラーで、該当データが0個のため平均が計算できないことを示します。IFERROR関数で処理することをお勧めします:
=IFERROR(AVERAGEIF(...), 0) または =IFERROR(AVERAGEIF(...), "該当なし")
Q2: COUNTとCOUNTIFの違いは何ですか?
COUNT:数値が入っているセルの個数を数える(条件なし)
COUNTIF:条件を満たすセルの個数を数える

例:=COUNT(A1:A10) → 数値セルの個数
例:=COUNTIF(A1:A10, "合格") → 「合格」の個数
Q3: 空白セルはカウントされますか?
空白セルはカウントされません。ただし、空白を条件として指定することはできます:
=COUNTIF(A1:A10, "") → 空白セルの個数
=COUNTIF(A1:A10, "<>") → 空白以外のセルの個数
Q4: 「以外」を条件にするにはどうすればいいですか?
不等号(<>)を使います:
=COUNTIF(A1:A10, "<>合格") → 「合格」以外の個数
=SUMIF(A1:A10, "<>営業", B1:B10) → 「営業」以外の合計
=AVERAGEIF(A1:A10, "<>0", B1:B10) → 0以外の平均
Q5: 日付の範囲で条件を指定できますか?
はい、できます。複数条件関数(IFS)を使って、「○○以降」かつ「○○以前」で指定します:
=COUNTIFS(日付範囲, ">=2025/1/1", 日付範囲, "<=2025/1/31")
これで1月のデータの個数を数えることができます。
Q6: ワイルドカードを使った検索はどうやりますか?
*(任意の文字列)と?(任意の1文字)が使えます:
=COUNTIF(A1:A10, "*田*") → 「田」を含む(田中、山田など)
=COUNTIF(A1:A10, "田*") → 「田」で始まる(田中など)
=COUNTIF(A1:A10, "*田") → 「田」で終わる(山田など)
=COUNTIF(A1:A10, "田?") → 「田」+1文字(田中など)
Q7: COUNTIF/COUNTIFSとCOUNTAの違いは?
COUNT:数値セルの個数
COUNTA:空白以外のセルの個数(文字列含む)
COUNTIF/COUNTIFS:条件を満たすセルの個数

データ件数を数えるだけならCOUNTA、条件付きならCOUNTIF/COUNTIFSを使います。

📝 Step 37 のまとめ

✅ このステップで学んだこと

🔢 COUNTIF
単一条件でカウント。「合格者は何人?」
🔢🔢 COUNTIFS
複数条件でカウント。「東京の営業は何人?」
📊 AVERAGEIF
単一条件で平均。「営業の平均売上は?」
📊📊 AVERAGEIFS
複数条件で平均。「東京の営業の平均売上は?」
⚠️ 引数の順番
IFSは集計範囲が最初!(SUMIFS、AVERAGEIFSに注意)
🎯 次のステップへ

条件付きカウント・平均関数をマスターしました!次のStep 38では、ROUND系関数(四捨五入)を学びます。集計結果を見やすく整える重要な関数です。

📝

学習メモ

Excel・Googleスプレッドシート完全マスター - Step 37

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE