Excelの書式・印刷 Excel一覧 色付き カウント 高度な書式と計算

【Excel】色別にセルをカウントする方法と関数

Excelでデータを視覚的に整理するためにセルの色を使うことがありますが、「特定の色のセルがいくつあるか?」 を数えたい場合、標準関数(COUNTIFやSUMIF)では対応できません。

本記事では、「VBAを使ったカスタム関数(UDF)」や「フィルター機能」を活用して、色別にセルをカウントする方法 を詳しく解説します。

Excelの標準関数で色付きセルはカウントできる?

結論: Excelの標準関数(COUNTIF, SUMIFなど)では、セルの色を直接判定してカウントすることはできません
そのため、以下の方法を使って色別にセルをカウントします。

✅ 色別でセルをカウントする方法
  1. VBAを使ったカスタム関数(UDF)
  2. フィルター機能を活用する(VBAなし)
  3. 条件付き書式 + COUNTIFを使う

VBAを使って色別にセルをカウントする関数を作成する

色別セルをカウントするカスタム関数(UDF)

以下のVBAコードを使用すると、指定した色のセルの数をカウント できます。

【VBAコード】

Function CountColorCells(rng As Range, colorCell As Range) As Integer

Dim cell As Range
Dim count As Integer
count = 0

' 範囲内のセルをループ
For Each cell In rng

If cell.Interior.Color = colorCell.Interior.Color Then

count = count + 1

End If

Next cell

CountColorCells = count

End Function

VBAの設定と実行方法

  1. VBAエディタを開く
    • Alt + F11 を押して VBAエディタ を開く
  2. 「挿入」→「モジュール」を選択
  3. 上記のVBAコードを貼り付け
  4. Excelに戻る
  5. 以下の数式を入力
    =CountColorCells(A2:A10, C1)

    • A2:A10 → 色別にカウントしたい範囲
    • C1 → カウントする色が付いたセル
  6. Enterキーを押すと結果が表示される

結果:
C1セルと同じ色のセルの数がカウントされます。

フィルター機能を使って色別にカウントする(VBAなし)

VBAを使わずに色付きセルをカウントするには、「フィルター機能」を活用します。

手順
  1. データ範囲を選択(例: A1:A100
  2. 「データ」タブ →「フィルター」
  3. フィルターのドロップダウンをクリック
  4. 「フィルターオプション」から「フィルターの色」を選択
  5. 特定の色を選ぶ
  6. 左下の「件数」を確認

結果:
フィルターで表示されているセルの数が色別のカウント数になります。

条件付き書式を使用して色別にカウント(COUNTIF)

条件付き書式を使ってセルの色を変更した場合、COUNTIF関数でカウントできます。

✅ COUNTIF関数を使用する方法

  1. セルに条件を入力する
    • 例: "高", "中", "低" などの値
  2. COUNTIF関数を使用
    =COUNTIF(A2:A10, "高")

  3. 結果を確認
    • "高" に設定されたセルの数がカウントされる

結果:
条件付き書式で色を変更している場合は、COUNTIF関数が有効です。

色別の合計値を求める関数(SUMColorCells)

特定の色のセルの合計を求めたい場合 は、以下のVBAコードを使用します。

📌 VBAコード

Function SumColorCells(rng As Range, colorCell As Range) As Double

Dim cell As Range
Dim total As Double
total = 0

' 範囲内のセルをループ
For Each cell In rng

If cell.Interior.Color = colorCell.Interior.Color Then

total = total + cell.Value

End If

Next cell

SumColorCells = total

End Function

使用方法

  1. VBAを登録
  2. 以下の関数をセルに入力
    =SumColorCells(A2:A10, C1)

  3. Enterキーを押す

結果:
C1セルと同じ色のセルの数値を合計してくれます。

色別のカウントに関する注意点

条件付き書式で色付けされたセルはVBAでカウントできない
VBAの Interior.Color は手動で設定したセルの色しか取得できません。
条件付き書式で色付けされたセルをカウントしたい場合、COUNTIF関数を使用。

VBA関数はブックを開くたびに再計算しない

  • VBA関数は自動更新されないため、計算を更新するには F9 を押す。

フィルターの色でカウントする方法もある

  • フィルター機能を活用すると、VBAを使わずに色別にカウントできる。

まとめ

Excelの標準関数では色別にセルを直接カウントできません
用途に応じて、以下の方法を選択しましょう。

方法メリットデメリット
VBAを使ったカウント関数(UDF)自動カウントできるVBAの知識が必要
フィルターを使う(VBAなし)直感的にカウントできる手動操作が必要
条件付き書式 + COUNTIF簡単にカウントできる条件付き書式の色変更には非対応
📌 おすすめの使い分け

VBAを使いたくないフィルター機能を使う
自動で色別セルをカウントしたいVBAのカスタム関数(UDF)を使う
条件付き書式の色をカウントしたいCOUNTIF関数を使う

-Excelの書式・印刷, Excel一覧, 色付き カウント, 高度な書式と計算