Excelでデータを視覚的に整理するためにセルの色を使うことがありますが、「特定の色のセルがいくつあるか?」 を数えたい場合、標準関数(COUNTIFやSUMIF)では対応できません。
本記事では、「VBAを使ったカスタム関数(UDF)」や「フィルター機能」を活用して、色別にセルをカウントする方法 を詳しく解説します。
目次
Excelの標準関数で色付きセルはカウントできる?
✅ 結論: Excelの標準関数(COUNTIF, SUMIFなど)では、セルの色を直接判定してカウントすることはできません。
そのため、以下の方法を使って色別にセルをカウントします。
✅ 色別でセルをカウントする方法
- VBAを使ったカスタム関数(UDF)
- フィルター機能を活用する(VBAなし)
- 条件付き書式 + 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の設定と実行方法
- VBAエディタを開く
Alt + F11
を押して VBAエディタ を開く
- 「挿入」→「モジュール」を選択
- 上記のVBAコードを貼り付け
- Excelに戻る
- 以下の数式を入力
A2:A10
→ 色別にカウントしたい範囲C1
→ カウントする色が付いたセル
- Enterキーを押すと結果が表示される
✅ 結果:
C1セルと同じ色のセルの数がカウントされます。
フィルター機能を使って色別にカウントする(VBAなし)
VBAを使わずに色付きセルをカウントするには、「フィルター機能」を活用します。
✅ 手順
- データ範囲を選択(例:
A1:A100
) - 「データ」タブ →「フィルター」
- フィルターのドロップダウンをクリック
- 「フィルターオプション」から「フィルターの色」を選択
- 特定の色を選ぶ
- 左下の「件数」を確認
✅ 結果:
フィルターで表示されているセルの数が色別のカウント数になります。
条件付き書式を使用して色別にカウント(COUNTIF)
条件付き書式を使ってセルの色を変更した場合、COUNTIF関数でカウントできます。
✅ COUNTIF関数を使用する方法
- セルに条件を入力する
- 例:
"高"
,"中"
,"低"
などの値
- 例:
- COUNTIF関数を使用
- 結果を確認
"高"
に設定されたセルの数がカウントされる
✅ 結果:
条件付き書式で色を変更している場合は、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
✅ 使用方法
- VBAを登録
- 以下の関数をセルに入力
- Enterキーを押す
✅ 結果:
C1セルと同じ色のセルの数値を合計してくれます。
色別のカウントに関する注意点
✅ 条件付き書式で色付けされたセルはVBAでカウントできない
VBAの Interior.Color
は手動で設定したセルの色しか取得できません。
条件付き書式で色付けされたセルをカウントしたい場合、COUNTIF関数を使用。
✅ VBA関数はブックを開くたびに再計算しない
- VBA関数は自動更新されないため、計算を更新するには
F9
を押す。
✅ フィルターの色でカウントする方法もある
- フィルター機能を活用すると、VBAを使わずに色別にカウントできる。
まとめ
Excelの標準関数では色別にセルを直接カウントできません。
用途に応じて、以下の方法を選択しましょう。
方法 | メリット | デメリット |
---|---|---|
VBAを使ったカウント関数(UDF) | 自動カウントできる | VBAの知識が必要 |
フィルターを使う(VBAなし) | 直感的にカウントできる | 手動操作が必要 |
条件付き書式 + COUNTIF | 簡単にカウントできる | 条件付き書式の色変更には非対応 |
📌 おすすめの使い分け
✔ VBAを使いたくない → フィルター機能を使う
✔ 自動で色別セルをカウントしたい → VBAのカスタム関数(UDF)を使う
✔ 条件付き書式の色をカウントしたい → COUNTIF関数を使う