エクセルでデータ管理をしていると、特定の項目を分かりやすくするためにセルを塗りつぶすことがよくあります。しかし、後から「色がついたセルがいくつあるか数えたい」と思ったときに、標準の関数だけではうまくいかず困った経験はないでしょうか。
実は、エクセルには「背景色を条件にして個数を出す」という専用の関数が用意されていません。そのため、フィルター機能や検索機能、あるいは少し高度なマクロ(VBA)といったテクニックを組み合わせて対応する必要があります。
この記事では、エクセル塗りつぶしカウントを誰でも簡単に行えるよう、初心者向けの基本操作から、自動化に役立つ応用テクニックまで詳しく解説します。作業の時短に直結する内容ですので、ぜひ最後まで読み進めてみてください。
エクセル塗りつぶしカウントを実現する代表的な3つのアプローチ

エクセルで色のついたセルを数えるには、いくつかの異なるアプローチが存在します。目的や作業の頻度に合わせて、自分にとって最も使いやすい方法を選ぶことが大切です。まずは全体像を把握しましょう。
標準機能のフィルターを組み合わせて数える方法
最も手軽で、追加の知識がなくてもすぐに実践できるのが「フィルター機能」と「SUBTOTAL(サブトータル)関数」を組み合わせる方法です。エクセルのフィルターには「色フィルター」という機能があり、これを使うと特定の色がついた行だけを抽出できます。
そこに「画面上に見えているセルだけを数える」という特性を持つSUBTOTAL関数を合わせることで、擬似的に塗りつぶしセルをカウントすることが可能です。関数を新しく覚える必要もほとんどなく、一時的な確認であればこの方法がもっとも効率的といえます。
ただし、色が何種類もある場合や、頻繁にカウント結果を更新する必要がある場合には、少し手間がかかるという側面もあります。まずはこの基本をマスターし、状況に応じて他の方法を検討すると良いでしょう。
検索機能の「書式検索」を活用して一瞬で数える方法
特定のセル範囲の中から、決まった色のセルがいくつあるかだけをサッと知りたいときは「検索と置換」機能が非常に便利です。多くの人は文字を検索するために使っていますが、実は「セルの塗りつぶし色」を指定して検索することもできます。
この機能を使うと、指定した色のセルがすべてリストアップされ、その総数が画面の左下に表示されます。数式を入力する手間すら省けるため、報告書に数字を書き込むためだけに個数を知りたい、といった場面で重宝するテクニックです。
操作手順もシンプルで、ショートカットキーを活用すれば数秒で結果が得られます。関数が苦手な方や、シートに余計な計算式を残したくないという方には、この検索機能を活用したカウント方法が最もおすすめです。
VBA(マクロ)で独自のカウント関数を作成する方法
「=COUNTCOLOR(範囲, 色)」のように、まるで通常の関数の感覚で色付きセルを数えたい場合は、VBA(マクロ)を使って独自の関数を作るのが正解です。一度設定してしまえば、セルの色を変えるだけで自動的にカウント結果を更新できるようになります。
プログラミングと聞くと難しく感じるかもしれませんが、決まったコードをコピーして貼り付けるだけで準備は完了します。日常的に色付きセルを大量に扱う業務では、この方法が究極の時短術となります。
特に、複数のシートにまたがってカウントしたい場合や、複雑な集計表を作成する場合には、マクロによる自動化が大きな威力を発揮します。少しステップアップしたいと考えている方は、ぜひ挑戦してみてください。
フィルター機能とSUBTOTAL関数で色付きセルを数える手順

まずは、最もポピュラーで誰でもすぐに試せるフィルター機能を使った方法を解説します。この方法は、特別な設定が必要なく、既存の表に少し手を加えるだけで実行できるのが強みです。
SUBTOTAL関数を入力して準備する
まず、カウント結果を表示させたいセルに SUBTOTAL関数 を入力します。通常、データの個数を数えるときはCOUNT関数やCOUNTA関数を使いますが、これらだと「フィルターで隠れているセル」まで数えてしまいます。
そこで、「=SUBTOTAL(103, 範囲)」という式を使います。「103」という数字は「非表示のセルを除いて、データの入っているセルを数える」という命令を意味します。これを使うことで、フィルターで絞り込んだ結果だけを正確に表示できるのです。
範囲の部分には、色がついている列全体(例:A2:A100など)を指定しましょう。これで準備は完了です。この時点では、まだフィルターをかけていないので、全体の件数が表示されているはずです。
色フィルターを適用して特定のセルを抽出する
次に、表の見出しを選択して「データ」タブから「フィルター」を設定します。見出しに表示された「▼」ボタンをクリックし、「色フィルター」という項目を探してください。ここから、カウントしたい背景色を選択します。
色を選択すると、その色がついている行だけが画面に残ります。他の行は非表示になります。この瞬間、先ほど入力しておいたSUBTOTAL関数の結果が、現在表示されているセルの数に連動してパッと切り替わります。
この仕組みを利用すれば、赤いセルを数えたいときは赤でフィルターし、青いセルなら青でフィルターする、といった具合に柔軟な対応が可能です。表を加工することなく、視覚的に確認しながら作業できるのがメリットです。
集計が終わった後の注意点とコツ
この方法を使う際の注意点は、フィルターを解除するとSUBTOTAL関数の数値が全体の件数に戻ってしまうことです。もしカウント結果を記録しておきたい場合は、数値をコピーして別の場所に「値として貼り付け」しておく必要があります。
また、セルの色が「条件付き書式」によって自動でついている場合でも、最新のエクセルであれば色フィルターで抽出することが可能です。非常に汎用性が高いので、まずはこの操作に慣れておくことを強く推奨します。
もし複数の色の合計を一度に把握したい場合は、集計用の列を別途作成し、そこに色の情報を数値化して書き出すといった工夫も考えられます。シンプルな方法だからこそ、アイデア次第で活用の幅が広がります。
検索機能を使って瞬時に色付きセルの個数を確認する

「関数を入力するのが面倒」「今すぐ個数だけ知りたい」という場合には、エクセルの検索機能に隠された「書式検索」を使うのが一番の近道です。このテクニックを知っているだけで、エクセルの操作レベルが一段階上がります。
検索オプションで書式を指定する方法
まずは「Ctrl + F」キーを押して、検索ダイアログを表示させます。通常はここに文字を入力しますが、右側にある「オプション」ボタンをクリックして詳細設定を開いてください。すると、さらに右側に「書式」というボタンが現れます。
この「書式」ボタンの横にある下向き矢印をクリックし、「セルから書式を選択」を選びます。マウスポインタがスポイトの形に変わるので、そのままシート上にある「数えたい色のセル」をどれか一つクリックしてください。
これで、「このセルと同じ色のものを探す」という条件設定が完了しました。検索窓には何も文字を入れなくて大丈夫です。特定の色がついているセルそのものを検索対象にする、という非常に便利な設定です。
「すべて検索」の結果から個数を読み取る
条件がセットできたら、「すべて検索」ボタンをクリックしましょう。すると、ダイアログの下部に検索結果のリストがずらりと表示されます。このとき、リストの左下をよく見てみると、「〇個のセルが見つかりました」というメッセージが出ています。
この「〇個」という数字こそが、あなたが知りたかった塗りつぶしセルの総数です。計算式を一切使わずに、あっという間に個数を把握することができました。リスト内の項目を「Ctrl + A」ですべて選択すれば、該当するセルがシート上で一斉に選択状態になります。
この状態でセルの色を一括で変えたり、値を書き換えたりすることもできるため、単なるカウント以上の効率化が望めます。一時的なチェック作業においては、この検索機能が最強のツールと言えるでしょう。
検索機能をさらに便利に使うための工夫
もしスポイト機能でうまく色を選択できない場合は、書式ボタンを直接クリックして「塗りつぶし」タブからパレットで色を指定することも可能です。ただし、似たような色が並んでいると間違えやすいため、スポイト機能を使うのが最も確実です。
また、検索対象を「シート」から「ブック」に変更すれば、ファイル全体に含まれる同じ色のセルをすべて合算してカウントすることもできます。複数のシートにまたがってチェックを入れている場合などに非常に有効です。
この方法は、データが大量にあっても高速に動作するのが特徴です。数万行あるような大きな名簿や在庫リストから、特定の色がついたデータだけを探し出して数を数える際に、ぜひ試してみてください。
VBA(マクロ)で独自の「塗りつぶしカウント関数」を自作する

頻繁に色の集計を行うなら、いっそのことエクセルに「色を数える専用の関数」を追加してしまいましょう。VBAを使えば、誰でも簡単に独自のユーザー定義関数を作成することが可能です。
マクロを記述するためのVBEを起動する
まず、エクセルを開いた状態で「Alt + F11」キーを同時に押してください。すると、VBE(Visual Basic Editor)という、プログラミングコードを書くための専用ウィンドウが立ち上がります。これがマクロ作成の舞台となります。
次に、上部メニューの「挿入」から「標準モジュール」を選択します。真っ白な画面が表示されたら、そこに特定のコードを書き込んでいきます。自分でゼロから書く必要はありません。ネット上で公開されている信頼できるコードをコピー&ペーストするだけで十分です。
この「標準モジュール」にコードを書くことで、そのブック内であればどこでも自作の関数が呼び出せるようになります。初めての方でも、手順通りに進めればわずか数分で終わる作業です。
コピーして使えるサンプルコードの紹介
以下のコードを、先ほど開いた標準モジュールの画面に貼り付けてみてください。これは、指定した範囲の中から、基準となるセルと同じ色のセルの数を数える「CountColor」という関数を作るためのプログラムです。
Function CountColor(Rng As Range, CRef As Range)
Dim TargetCell As Range
Dim ColorCount As Long
Dim TargetColor As Long
TargetColor = CRef.Interior.Color
For Each TargetCell In Rng
If TargetCell.Interior.Color = TargetColor Then
ColorCount = ColorCount + 1
End If
Next TargetCell
CountColor = ColorCount
End Function
貼り付けが終わったら、VBEの画面は閉じてしまって構いません。これで、あなたのエクセルには「=CountColor()」という新しい関数が実装されました。まるで最初から備わっていた機能のように使えるようになっています。
自作した関数を実際にシートで使ってみる
使い方は非常にシンプルです。個数を表示したいセルに「=CountColor(範囲, 基準セル)」と入力します。「範囲」には数えたいセルの集まりを、「基準セル」には数えたい色が塗ってあるセルを一つ指定してください。
例えば、A1からA10の中に赤いセルがいくつあるか知りたい場合、C1セルに赤を塗っておき、「=CountColor(A1:A10, C1)」と入力します。すると、瞬時に赤いセルの個数が表示されます。基準セルの色を変えれば、連動してカウント対象も変わるので非常に便利です。
注意点として、このマクロを含んだファイルを保存するときは、ファイルの種類を「エクセル マクロ有効ブック(.xlsm)」にする必要があります。通常の「.xlsx」形式で保存すると、せっかく作った関数が消えてしまうので気をつけましょう。
セルの色をカウントする際によくあるトラブルと解決策

エクセル塗りつぶしカウントを実践していると、思い通りに数が合わなかったり、エラーが出たりすることがあります。ここでは、よく遭遇するトラブルとその対処法について解説します。
条件付き書式でついた色が数えられない
最も多いトラブルが、「条件付き書式」によって自動でついた色が、VBAの「Interior.Color」プロパティでは取得できないという問題です。前述したマクロのコードは、人間が手動で塗った色を判別するためのものだからです。
もし条件付き書式のセルを数えたい場合は、VBAで「DisplayFormat.Interior.Color」という命令を使うようにコードを書き換えるか、あるいは「色」ではなく「色が付く条件そのもの」をCOUNTIFS関数などで数えるのが正解です。
例えば、「80点以上のセルを赤くする」という条件付き書式を使っているなら、色を数えるのではなく「80点以上のセルの個数」を数えれば、結果的に赤いセルの数と同じになります。目的を達成するために、より確実なルートを選びましょう。
色が同じに見えても微妙に種類が違う
「見た目は同じ赤色なのに、カウント結果が正しくない」という場合、実は微妙に違うカラーコードが使われている可能性があります。エクセルのパレットには似たような色がたくさんあり、標準の「赤」と、テーマ色の「赤」は内部的に別物として扱われます。
これを防ぐには、「書式のコピー/貼り付け(ハケのアイコン)」を使って、カウントしたいセルの色を統一するのが一番確実です。基準となるセルの色をコピーして、対象のセル範囲に塗り直すことで、不一致を解消できます。
また、セルの塗りつぶしなし(透明)と、白く塗りつぶされているセルも別物です。見た目では判断がつきにくいため、色の設定をリセットしてから塗り直すといったメンテナンスも、正確な集計には欠かせません。
セルの色を変えても計算結果が更新されない
マクロを使った関数(ユーザー定義関数)は、セルの「値」が変わったときには再計算されますが、セルの「色」だけを変えても再計算が走りません。そのため、色を塗り替えた直後は、数値が古いままになってしまいます。
この問題を解決するには、色を変えた後に「F9」キーを押して手動で再計算させるか、どこか適当なセルをダブルクリックして確定させる操作が必要です。これはエクセルの仕様上の制限ですので、知っておかないと計算ミスにつながります。
もしどうしても自動で更新させたい場合は、マクロの中に「Application.Volatile」という一文を加える方法もありますが、動作が重くなる原因にもなります。基本的には「色を変えたら再計算が必要」と覚えておくのが、トラブルを防ぐコツです。
セルの色を変える操作自体は、エクセルにとって「データの変更」とは見なされません。そのため、保存時の「最終更新日時」も色を変えただけでは更新されないことがあります。集計結果を反映させるためには、必ず何か値を入力するか、上書き保存の操作を行う習慣をつけましょう。
エクセル塗りつぶしカウントを使いこなすためのまとめ
エクセル塗りつぶしカウントは、標準のワークシート関数だけでは直接実現できない機能ですが、いくつかの工夫を凝らすことで非常に便利に活用できるようになります。最後に、今回ご紹介した内容のポイントをおさらいしましょう。
| 手法 | 難易度 | おすすめの活用シーン |
|---|---|---|
| フィルター+SUBTOTAL関数 | ★☆☆ | 一時的に特定の色の数を確認したいとき |
| 検索機能(書式検索) | ★☆☆ | 数式を使わず、今すぐ個数だけ知りたいとき |
| VBA(ユーザー定義関数) | ★★★ | 日常的に色付きセルの集計を自動化したいとき |
まず手軽に始めたい方は、フィルター機能や検索機能から試してみてください。これだけでも日常業務の多くはカバーできるはずです。より高度な管理や、複雑な集計表を作成する必要が出てきたら、VBAを使った独自関数の作成にチャレンジしてみるのが良いでしょう。
また、トラブルを避けるためには「条件付き書式による色」と「手動での塗りつぶし」の違いを理解しておくことが重要です。状況に合わせて「色を数えるのか」、それとも「色がつく条件を数えるのか」を判断できるようになれば、エクセルマスターへの道も遠くありません。
セルの色を活用した管理は、視覚的に分かりやすく、チームでの情報共有にも役立ちます。今回解説したカウント手法を身につけて、データ集計の作業時間を大幅に短縮していきましょう。エクセルの機能を最大限に引き出すことで、あなたの事務作業はもっとスムーズで楽しいものに変わるはずです。


