エクセルでデータを管理していると、重要な項目を赤色に塗ったり、完了したタスクを青色で塗りつぶしたりすることがよくあります。しかし、いざ「色のついたセルがいくつあるか数えたい」と思っても、エクセルには色を直接数える専用の関数が用意されていません。
標準の関数だけでは解決できないため、多くのユーザーが手作業で一つずつ数えているのが現状です。大量のデータを扱う際に手動でエクセル セルの色 カウントを行うのは、時間がかかるだけでなくミスの原因にもなります。
この記事では、特別な知識がなくてもできる基本的なカウント方法から、マクロ(VBA)を活用した自動集計のテクニックまで、わかりやすくステップを追って紹介します。ご自身のスキルや作業内容に最適な方法を見つけて、業務効率を大幅にアップさせましょう。
エクセルでセルの色をカウントする手軽な基本操作

エクセルには「色を数える関数」はありませんが、既存の標準機能を組み合わせることで、特別な設定をせずとも色付きのセルを数えることが可能です。まずは、もっともシンプルで初心者の方でもすぐに試せる方法から見ていきましょう。
フィルター機能とSUBTOTAL関数を組み合わせる方法
もっとも一般的で確実なのが、フィルター機能で特定の色を抽出し、表示されているセルの数だけを計算する方法です。この方法では、SUBTOTAL(サブトータル)関数を使用するのがポイントです。
まず、集計したいデータ範囲にフィルターを設定します。次に、集計結果を表示させたいセルに「=SUBTOTAL(3, 範囲)」と入力しましょう。ここで使う「3」という数字は、COUNTA関数と同じ「空白以外のセルの個数を数える」という意味になります。
数式を入力した後に、列の見出しにあるフィルターボタンから「色フィルター」を選択し、カウントしたい色を選んでください。すると、画面に表示されているセルの数に合わせて、SUBTOTAL関数の結果が自動的に書き換わります。
検索機能を使って個数を確認する裏ワザ
数式をシートに残す必要がなく、今すぐに個数だけを知りたい場合は「検索」機能が非常に便利です。エクセルで「Ctrl + F」キーを押して検索ダイアログを開いてください。
ダイアログ内の「オプション」ボタンをクリックすると、「書式」というボタンが現れます。このボタンの右側にある「セルから書式を選択」を選び、シート上のカウントしたい色がついたセルを直接クリックしましょう。
色の指定ができたら「すべて検索」ボタンを押してください。ダイアログの左下に「〇個のセルが見つかりました」というメッセージが表示され、その色のセルが全部でいくつあるかを一瞬で把握できます。
ステータスバーでの簡易カウント活用
もっとも原始的ですが、意外と知られていないのがステータスバーの活用です。特定の範囲をマウスで選択した際、エクセル画面の右下(ステータスバー)には選択範囲の「データの個数」が表示されます。
フィルター機能で色を絞り込んだ状態であれば、その範囲をドラッグするだけで、現在見えている色付きセルの数がステータスバーに表示されます。数式を入力する手間すら省けるため、一時的な確認であればこの方法がもっともスピーディーです。
ただし、ステータスバーに個数が表示されない場合は、バーの上で右クリックをして「データの個数」にチェックが入っているか確認してみてください。
名前定義とGET.CELL関数を使った色カウントのテクニック

「フィルターを使わずに、通常の関数のようにはセルの色を数えられないのか」という疑問を持つ方も多いでしょう。実は、少し特殊な設定を行うことで、セルの色情報を数値として取得し、それを元にカウントする方法があります。
マクロ関数「GET.CELL」とは何か
GET.CELL(ゲット・セル)関数は、かつての「Excel 4.0 マクロ」という古い仕組みで使われていた特別な関数です。現在のワークシート上で直接入力することはできませんが、「名前の定義」という機能を経由することで利用できます。
この関数を使うと、セルの背景色や文字の色を「色番号」という数値に変換して取得できます。色番号さえ分かれば、あとはエクセルの得意分野であるCOUNTIF関数などで集計ができるようになるのです。
ただし、これはマクロの技術を一部利用しているため、ファイルを保存する際にはファイル形式を「Excel マクロ有効ブック(.xlsm)」にする必要がある点に注意してください。
名前の定義で色を取得する手順
まずは、色の付いたセルの隣に、色番号を表示させるための設定を行います。リボンの「数式」タブから「名前の定義」をクリックして、新しい名前を作成しましょう。
「名前」欄には「CellColor」など分かりやすい名前を入力します。そして、もっとも重要な「参照範囲」の欄に以下の数式をコピーして貼り付けてください。
=GET.CELL(63, !A1)+NOW()*0
ここで「63」という数字は背景色の情報を指しています。「!A1」の部分は、現在選択しているセルの左隣を参照するための記述です。後半の「+NOW()*0」は、色が変更されたときに再計算を促すためのおまじないのようなものです。
COUNTIF関数で特定の色を合算する
名前の定義が完了したら、色を取得したいセルの隣の列に「=CellColor」と入力してみましょう。すると、背景色に応じた「0」や「3」「6」といった色番号が表示されます。
一度すべての行にこの数式をコピーすれば、どのセルがどの色番号を持っているかが一目瞭然になります。あとは、集計したい場所に「=COUNTIF(範囲, 色番号)」と入力するだけです。
例えば、赤色の色番号が「3」であれば、COUNTIF関数で「3」の数を数えることで、間接的に赤色のセルの数をカウントできます。フィルター操作なしで常に数値を表示させておきたい場合に非常に有効な手法です。
GET.CELL関数は、セルの色を変えただけでは自動的に再計算されません。色を塗り替えた後は、「F9」キーを押すか、数式が入力されているセルをダブルクリックして再計算を確定させる必要があります。
VBAマクロで色付きセルを自動集計するユーザー定義関数

より高度に、かつスマートに色のカウントを行いたい場合は、VBA(プログラミング)を使って自分だけの専用関数を作るのがベストです。一度設定してしまえば、通常のSUM関数やCOUNT関数と同じ感覚で使えるようになります。
専用のカウント関数を作成する準備
まずはマクロを記述するためのエディタを開きましょう。エクセルで「Alt + F11」キーを同時に押すと、VBAの編集画面が立ち上がります。メニューの「挿入」から「標準モジュール」を選択してください。
真っ白な画面が表示されたら、そこに色付きセルを数えるためのプログラムコードを記述します。プログラムと聞くと難しく感じるかもしれませんが、基本的なコードは決まっているため、コピー&ペーストで対応可能です。
作成する関数は、「指定した範囲」の中から「指定した見本の色」と同じ色のセルを数えるという仕組みにします。これにより、どんな色であっても柔軟にカウントできるようになります。
コピペで使えるVBAサンプルコード
以下のコードを、先ほど開いた標準モジュールの画面に貼り付けてください。これが、特定の色のセルの個数を返す自作関数の本体になります。
Function CountColor(Rng As Range, ColorRng As Range) As Long
Dim C As Range, TargetColor As Long
TargetColor = ColorRng.Interior.Color
For Each C In Rng
If C.Interior.Color = TargetColor Then CountColor = CountColor + 1
Next C
End Function
このコードは「CountColor」という名前の関数を定義しています。「Rng」が集計したいデータの範囲で、「ColorRng」がカウントしたい色の「見本」となるセルを指定するための引数(ひきすう)です。
ワークシートで自作関数を呼び出す
コードを貼り付けたら、VBAの画面を閉じてエクセルのシートに戻りましょう。集計したいセルに「=CountColor(集計範囲, 見本のセル)」と入力してみてください。
例えば、A1からA10の範囲にある「赤色のセル」を数えたい場合、どこか別のセル(例えばC1)を赤く塗っておき、「=CountColor(A1:A10, C1)」と入力します。これだけで、見本のセルと同じ色の数が瞬時に計算されます。
この方法の最大のメリットは、複数の色を同時に集計できることです。青色、黄色、緑色と、それぞれの見本セルを用意して関数を入力すれば、色別の集計表が簡単につくれてしまいます。
条件付き書式でついた色をカウントする際の考え方

ここまで紹介した方法は、すべて「手動でセルを塗りつぶした場合」に有効なものです。しかし、エクセルの機能である「条件付き書式」によって自動的に付いた色は、実はこれまでの方法では正しくカウントできない場合があります。
条件付き書式の特殊な性質を理解する
条件付き書式による色の変更は、セルの見た目だけを変えている「仮の色」のような状態です。エクセルの内部データとしては「背景色:なし」のまま、フィルターや画面上の表示だけが変わっていることが多いためです。
そのため、先ほどのGET.CELL関数やVBAの「Interior.Color」プロパティを使っても、条件付き書式の判定結果を拾うことができず、カウントが「0」になってしまうというトラブルが頻発します。
この問題を解決するには、「色を数える」のではなく「色が付く条件を数える」という発想の転換が必要になります。
色が付く「条件」をCOUNTIF関数で数える
例えば、「80点以上のセルを赤くする」という条件付き書式を設定している場合、赤色のセルを数える代わりに「80以上の数値が入っているセル」を数えれば良いのです。
この場合、使用するのはおなじみのCOUNTIF関数です。「=COUNTIF(範囲, “>=80”)」という数式を入力すれば、結果として赤いセルの数と同じ値が得られます。
条件付き書式は必ず何らかの「論理的なルール」に基づいて色が付きます。そのルールをそのまま関数の条件として利用することが、もっとも正確でエラーの少ないカウント方法と言えます。
DisplayFormatプロパティを利用したVBA
どうしても色そのものを基準にカウントしたい、かつ条件付き書式の色も対象にしたいという場合には、VBAの「DisplayFormat」というプロパティを使用します。
このプロパティは「現在画面に見えているそのままの書式」を取得できるため、条件付き書式の色も判別可能です。ただし、DisplayFormatはワークシート上のユーザー定義関数内では直接使えないという制限があります。
そのため、この方法を使う場合は「ボタンを押した時にマクロを実行して、結果をセルに書き出す」といった処理を組む必要があります。少し手間はかかりますが、複雑な条件付き書式が多用されているシートでは頼りになる手法です。
条件付き書式の色をカウントしたい場合は、まずはその「条件」を数式化できないか考えてみましょう。それがもっともシンプルで、誰が見ても分かりやすいエクセルシートを作るコツです。
色でデータを管理する際の注意点とトラブル解決

セルの色をカウントできる仕組みを整えても、運用中に思い通りの数値が出ないことがあります。エクセルの仕様を理解していないと、集計ミスに気づかず間違ったデータを報告してしまうリスクもあります。
色を変えても数値が更新されない問題
エクセルの数式は、通常「セルの中身(値)」が書き換わったときに再計算されます。しかし、「セルの塗りつぶし色」を変えただけでは再計算が実行されません。
そのため、VBAで作った関数やGET.CELL関数を使っている場合、色を塗り替えた直後は古い集計結果が表示されたままになります。これが「色がカウントされない」というトラブルの正体です。
数値を最新の状態にするには、「F9」キーを押して手動で再計算させるか、どこか適当なセルの値を入力し直す必要があります。また、VBAのコード内に「Application.Volatile」という記述を足すと、シートのどこかが変更されるたびに再計算させることも可能です。
標準パレット以外の色による判定ミス
目で見ると同じ「黄色」に見えても、エクセル内部では微妙に異なる色番号として扱われていることがあります。特に、他人が作ったファイルから色をコピーしたり、テーマの色を変えたりした場合に起こりやすい問題です。
「見た目は同じなのにカウントされない」と感じたら、見本となるセルの色と、集計対象のセルの色を「書式のコピー」で完全に一致させてみてください。
また、セルの「パターン」や「グラデーション」が設定されている場合も、単純な色カウント関数では正しく判定できないことがあります。できるだけシンプルな単色塗りを心がけるのが、ミスを防ぐポイントです。
将来的なメンテナンス性を考える
セルの色で情報を管理するのは視覚的にわかりやすい反面、あとで集計するのが大変になるというデメリットがあります。GET.CELLやVBAは便利な機能ですが、自分以外の人がファイルを触る際に混乱を招くこともあります。
もし可能であれば、色で管理するのではなく「ステータス」という列を一つ作り、そこに「完了」「未着手」といった文字を入力し、その文字に基づいてセルの色を変える運用を検討してみてください。
文字による管理であれば、標準のCOUNTIF関数だけで誰でも簡単に集計できます。システムのトラブルやスキルの差に左右されない、メンテナンスしやすいシート作りも、トラブル解決の大切な一歩です。
エクセルのセルの色をカウントする手順のまとめ
エクセルの標準機能には、残念ながらセルの色を直接数える関数は存在しません。しかし、今回ご紹介したいくつかの代替案を活用することで、状況に合わせた柔軟な集計が可能になります。
一時的な確認であれば、「フィルター機能とSUBTOTAL関数」や「検索機能」を使うのがもっとも手軽で安全です。設定の手間がかからず、誰でもすぐに結果を確認できるのが大きなメリットです。
日常的に色付きセルを管理し、自動で集計させたい場合には、「名前の定義とGET.CELL関数」や、より柔軟な「VBAによる自作関数」の作成に挑戦してみましょう。これらはマクロ有効ブック(.xlsm)での保存が必要になりますが、一度仕組みを作れば作業効率は飛躍的に高まります。
最後に、「条件付き書式」で付いた色は、色そのものではなく「条件」を数えるのがエクセルの鉄則です。これらのテクニックを使い分け、トラブルのないスマートなデータ管理を目指してください。



