Excelで色付きセルを数えたいとき、まず結論からお伝えします。標準の関数だけでは、手で塗ったセルの色をそのまま数えることはできません。いちばん早い方法は、フィルターで色分けして件数を確認する方法です。もし集計結果をセルに自動表示したいなら、VBAのユーザー定義関数を使う方法が便利ですよ。この記事では、仕事中にすぐ使える方法から順番に、最短で分かるように整理して解説します。

まず結論:色付きセルを数えるならこの2パターンです

手で塗った色を数える最短手順は「データ → フィルター → 色でフィルター → 表示件数を確認」です。セルに結果を自動表示したい場合は、VBAで色付きセルを数える関数を作成しましょう。
  • 今すぐ件数だけ知りたい:フィルター機能を使う
  • 表の中で自動集計したい:VBAで関数を作る
  • 今後も集計しやすくしたい:色ではなく、分類用の文字や記号を別列に入れてCOUNTIF関数で数える

ここを押さえておくと、「関数が効かない」「なぜ数えられないの?」で時間を取られにくくなります。

いちばん簡単:フィルターで色付きセルをカウントする方法

「とにかく急ぎで件数を確認したい」というときは、この方法が最速です。関数の設定も不要で、Excel標準機能だけで対応できます。

  1. 色付きセルがある表全体を選択します
  2. [データ]タブをクリックします
  3. [フィルター]をクリックします
  4. 見出しセルに表示されたをクリックします
  5. [色でフィルター]を選びます
  6. 数えたいセルの色をクリックします
  7. 絞り込まれた行数を確認します

件数の確認場所は、Excelの画面下のステータスバーや、行番号の表示件数で判断できます。表の見出しを除いて何件表示されているかを見るだけなので、かなり手早く確認できますよ。

フィルターで数えるときのコツ

  • 表に見出し行がある状態で使うと見やすいです
  • 同じ色でも微妙に色味が違うと別扱いになることがあります
  • 塗りつぶし色だけでなく、フォント色でフィルターすることもできます

毎回目視で数えるのが面倒な場合は、次のVBA関数の方法が向いています。

セルに自動表示したい場合:VBAで色付きセルをカウントする方法

手で塗ったセルの色を、ワークシート関数だけで直接数えることはできません。そこで、VBAでユーザー定義関数を1つ作る方法を使います。少しだけ設定は必要ですが、一度作れば繰り返し使えて便利です。

手順1:VBAの画面を開く

  1. Alt + F11を押します
  2. VBAエディターが開いたら、対象のブックを確認します
  3. [挿入]→[標準モジュール]をクリックします

手順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

  1. コードを貼り付けます
  2. Ctrl + Sで保存します
  3. ファイル形式はマクロ有効ブック(.xlsm)で保存します
  4. Excel画面に戻ります

手順3:ワークシートで関数を使う

たとえばA2:A20の色付きセルを数えたい場合、見本の色をC1セルに塗っておき、次のように入力します。

=CountColor(A2:A20,C1)

これで、A2:A20の中でC1と同じ塗りつぶし色のセル数を返せます。見本セルの色を変えるだけで、別の色の件数も確認できます。

関数で数えられない理由を先に知っておきましょう

ExcelのCOUNTIFやCOUNTAは、セルの値を条件に数える関数です。一方、手で付けた塗りつぶし色は、値ではなく書式として扱われます。そのため、普通の関数だけでは「黄色のセルを3個数える」のような使い方ができません。

この仕様を知らないと、「COUNTIFでできるはず」と何度も試して時間をロスしやすいです。仕事で再利用する表なら、最初から色に頼りすぎず、別列にステータスを入れる設計にしておくと後が楽ですよ。

実務でおすすめ:色ではなく別列で管理してCOUNTIFを使う方法

今後も継続して集計するなら、この方法がいちばん安定します。たとえば「完了」「確認中」「未対応」などの文字を別列に入力して、色は見やすさの補助にする形です。

  1. ステータス用の列を1つ追加します
  2. 各行に「完了」「保留」などの文字を入力します
  3. 件数を出したいセルにCOUNTIF関数を入力します

例として、B列にステータスが入っているなら、完了件数は=COUNTIF(B:B,"完了")で数えられます。

  • マクロ不要で安全に使えます
  • 並べ替えや集計がしやすいです
  • 担当者が変わっても運用しやすいです

見た目の色だけで管理すると、あとで分析や共有がしにくくなるので、長く使うファイルほどこの方法がおすすめです。

うまくいかない場合のチェックポイント

「フィルターしても数が合わない」「VBA関数が動かない」ときは、次の点を確認してみてください。

フィルターで数えられないとき

  • 表全体を選べていない:途中の列だけ選んでいると正しく絞り込めません
  • 見出し行がずれている:フィルターの範囲が不自然になることがあります
  • 似た色が混ざっている:同じ黄色に見えても別の色コードだと別扱いです
  • 条件付き書式の色か手塗りの色かが混在している:想定と違う結果になる場合があります

VBA関数が動かないとき

  • ファイル形式が.xlsxのまま:マクロが保存できないので、.xlsmで保存しましょう
  • マクロが無効になっている:ファイルを開いたときに有効化が必要です
  • 色を変えたのに結果が更新されない:ユーザー定義関数は色変更だけでは再計算されにくいことがあります。F9を押して再計算してみましょう
  • 見本セルの色が違う:C1などの参照セルが、対象と完全に同じ色か確認します

件数が合わないとき

  • 空白セルにも色が付いていないか確認します
  • セル結合があると、見た目とカウントがずれることがあります
  • フィルター後の表示件数と、数式で出した件数を混同していないか確認します

特に多いのは、「同じ色だと思っていたら微妙に違っていた」というケースです。別のファイルからコピーした表では起こりやすいので注意してくださいね。

関連する時短ワザ

最後に、色付きセルの管理と相性がいい時短ワザも紹介します。

条件付き書式を使って色を自動化する

手で毎回塗るより、条件付き書式で自動的に色を付けるほうがミスを減らせます。たとえば「期限切れなら赤」「完了なら緑」のように設定できます。

  1. 対象範囲を選択します
  2. [ホーム]→[条件付き書式]をクリックします
  3. ルールを選んで条件を設定します

これなら見た目もそろいやすく、運用がかなり楽になります。

よく使うショートカット

  • Ctrl + Shift + L:フィルターのオン・オフ
  • Alt + F11:VBAエディターを開く
  • F9:再計算
  • Ctrl + S:保存

特にCtrl + Shift + Lは、フィルター作業が多い人なら覚えておくと便利です。

まとめ

Excelで色付きセルをカウントする方法は、目的によって使い分けるのがポイントです。

  • すぐ件数を知りたいならフィルターで色分けして確認
  • セルに件数を表示したいならVBAの関数を作成
  • 今後も集計するなら別列に分類を入れてCOUNTIFで管理

急ぎの作業ではフィルター、継続運用では別列管理。この考え方で進めると、Excel作業のムダがかなり減ります。まずは一番手軽なフィルターから試してみましょう。

おすすめの記事