Excelで色付きセルを数えたいとき、まず結論からお伝えします。標準の関数だけでは、手で塗ったセルの色をそのまま数えることはできません。いちばん早い方法は、フィルターで色分けして件数を確認する方法です。もし集計結果をセルに自動表示したいなら、VBAのユーザー定義関数を使う方法が便利ですよ。この記事では、仕事中にすぐ使える方法から順番に、最短で分かるように整理して解説します。
まず結論:色付きセルを数えるならこの2パターンです
- 今すぐ件数だけ知りたい:フィルター機能を使う
- 表の中で自動集計したい:VBAで関数を作る
- 今後も集計しやすくしたい:色ではなく、分類用の文字や記号を別列に入れてCOUNTIF関数で数える
ここを押さえておくと、「関数が効かない」「なぜ数えられないの?」で時間を取られにくくなります。
いちばん簡単:フィルターで色付きセルをカウントする方法
「とにかく急ぎで件数を確認したい」というときは、この方法が最速です。関数の設定も不要で、Excel標準機能だけで対応できます。
- 色付きセルがある表全体を選択します
- [データ]タブをクリックします
- [フィルター]をクリックします
- 見出しセルに表示された▼をクリックします
- [色でフィルター]を選びます
- 数えたいセルの色をクリックします
- 絞り込まれた行数を確認します
件数の確認場所は、Excelの画面下のステータスバーや、行番号の表示件数で判断できます。表の見出しを除いて何件表示されているかを見るだけなので、かなり手早く確認できますよ。
フィルターで数えるときのコツ
- 表に見出し行がある状態で使うと見やすいです
- 同じ色でも微妙に色味が違うと別扱いになることがあります
- 塗りつぶし色だけでなく、フォント色でフィルターすることもできます
毎回目視で数えるのが面倒な場合は、次のVBA関数の方法が向いています。
セルに自動表示したい場合:VBAで色付きセルをカウントする方法
手で塗ったセルの色を、ワークシート関数だけで直接数えることはできません。そこで、VBAでユーザー定義関数を1つ作る方法を使います。少しだけ設定は必要ですが、一度作れば繰り返し使えて便利です。
手順1:VBAの画面を開く
- Alt + F11を押します
- VBAエディターが開いたら、対象のブックを確認します
- [挿入]→[標準モジュール]をクリックします
手順2:コードを貼り付ける
標準モジュールに、次のような関数を貼り付けます。
Function CountColor(rng As Range, colorCell As Range) As Long
Dim c As Range
For Each c In rng
If c.Interior.Color = colorCell.Interior.Color Then
CountColor = CountColor + 1
End If
Next c
End Function
- コードを貼り付けます
- Ctrl + Sで保存します
- ファイル形式はマクロ有効ブック(.xlsm)で保存します
- Excel画面に戻ります
手順3:ワークシートで関数を使う
たとえばA2:A20の色付きセルを数えたい場合、見本の色をC1セルに塗っておき、次のように入力します。
=CountColor(A2:A20,C1)
これで、A2:A20の中でC1と同じ塗りつぶし色のセル数を返せます。見本セルの色を変えるだけで、別の色の件数も確認できます。
関数で数えられない理由を先に知っておきましょう
ExcelのCOUNTIFやCOUNTAは、セルの値を条件に数える関数です。一方、手で付けた塗りつぶし色は、値ではなく書式として扱われます。そのため、普通の関数だけでは「黄色のセルを3個数える」のような使い方ができません。
この仕様を知らないと、「COUNTIFでできるはず」と何度も試して時間をロスしやすいです。仕事で再利用する表なら、最初から色に頼りすぎず、別列にステータスを入れる設計にしておくと後が楽ですよ。
実務でおすすめ:色ではなく別列で管理してCOUNTIFを使う方法
今後も継続して集計するなら、この方法がいちばん安定します。たとえば「完了」「確認中」「未対応」などの文字を別列に入力して、色は見やすさの補助にする形です。
- ステータス用の列を1つ追加します
- 各行に「完了」「保留」などの文字を入力します
- 件数を出したいセルにCOUNTIF関数を入力します
例として、B列にステータスが入っているなら、完了件数は=COUNTIF(B:B,"完了")で数えられます。
- マクロ不要で安全に使えます
- 並べ替えや集計がしやすいです
- 担当者が変わっても運用しやすいです
見た目の色だけで管理すると、あとで分析や共有がしにくくなるので、長く使うファイルほどこの方法がおすすめです。
うまくいかない場合のチェックポイント
「フィルターしても数が合わない」「VBA関数が動かない」ときは、次の点を確認してみてください。
フィルターで数えられないとき
- 表全体を選べていない:途中の列だけ選んでいると正しく絞り込めません
- 見出し行がずれている:フィルターの範囲が不自然になることがあります
- 似た色が混ざっている:同じ黄色に見えても別の色コードだと別扱いです
- 条件付き書式の色か手塗りの色かが混在している:想定と違う結果になる場合があります
VBA関数が動かないとき
- ファイル形式が.xlsxのまま:マクロが保存できないので、.xlsmで保存しましょう
- マクロが無効になっている:ファイルを開いたときに有効化が必要です
- 色を変えたのに結果が更新されない:ユーザー定義関数は色変更だけでは再計算されにくいことがあります。F9を押して再計算してみましょう
- 見本セルの色が違う:C1などの参照セルが、対象と完全に同じ色か確認します
件数が合わないとき
- 空白セルにも色が付いていないか確認します
- セル結合があると、見た目とカウントがずれることがあります
- フィルター後の表示件数と、数式で出した件数を混同していないか確認します
特に多いのは、「同じ色だと思っていたら微妙に違っていた」というケースです。別のファイルからコピーした表では起こりやすいので注意してくださいね。
関連する時短ワザ
最後に、色付きセルの管理と相性がいい時短ワザも紹介します。
条件付き書式を使って色を自動化する
手で毎回塗るより、条件付き書式で自動的に色を付けるほうがミスを減らせます。たとえば「期限切れなら赤」「完了なら緑」のように設定できます。
- 対象範囲を選択します
- [ホーム]→[条件付き書式]をクリックします
- ルールを選んで条件を設定します
これなら見た目もそろいやすく、運用がかなり楽になります。
よく使うショートカット
- Ctrl + Shift + L:フィルターのオン・オフ
- Alt + F11:VBAエディターを開く
- F9:再計算
- Ctrl + S:保存
特にCtrl + Shift + Lは、フィルター作業が多い人なら覚えておくと便利です。
まとめ
Excelで色付きセルをカウントする方法は、目的によって使い分けるのがポイントです。
- すぐ件数を知りたいならフィルターで色分けして確認
- セルに件数を表示したいならVBAの関数を作成
- 今後も集計するなら別列に分類を入れてCOUNTIFで管理
急ぎの作業ではフィルター、継続運用では別列管理。この考え方で進めると、Excel作業のムダがかなり減ります。まずは一番手軽なフィルターから試してみましょう。
