【Excel】エクセルで色の付いたセルをカウントする方法(塗りつぶし・文字色を集計)
Excelで表を管理していると、塗りつぶしの色で進捗状況を示したセルや、文字色で重要な数値を区別したセルが何件あるのか確認したい場面があります。
ただし、通常のCOUNTIF関数はセルの表示色を条件にできないため、色付きセルを数えるには目的に合わせて別の方法を選ぶ必要があります。
塗りつぶし色を集計するならフィルターとSUBTOTAL関数、繰り返し使うなら名前の定義、文字色も含めて自動化するならVBAが便利です。
この記事では、1行目に見出しがある表を例に、色の付いたセルを正確にカウントする方法を解説します。
エクセルで塗りつぶし色をカウントする方法【フィルターとSUBTOTAL関数】
それではまず、塗りつぶし色をフィルターで絞り込み、表示された件数を数える方法について解説していきます。
| 担当者 | 案件名 | 進捗 |
|---|---|---|
| 田中 | 見積作成 | 確認中 |
| 佐藤 | 契約処理 | 完了 |
| 鈴木 | 発送準備 | 確認中 |
この表では、C列の黄色いセルだけを抽出して件数を数える場面を想定します。
オートフィルターによる色の抽出
表内のセルを選択し、データタブにあるフィルターをクリックすると、1行目の見出しに絞り込みボタンが表示されます。
進捗列の矢印をクリックし、色フィルターから目的の塗りつぶし色を選択しましょう。

色フィルターは値が異なるセルでも、同じ塗りつぶし色ならまとめて抽出できる機能です。
抽出後は該当する行だけが画面に残るため、対象件数を目視で確認しやすくなります。
SUBTOTAL関数による表示件数の集計
フィルターで表示されたデータを数えるには、表の外側にSUBTOTAL関数を入力します。
=SUBTOTAL(103,C2:C100)
この数式では、103が空白以外のセルを数え、フィルターで非表示になった行を除外する指定です。

C2からC100はデータ範囲なので、実際の最終行に合わせて変更してください。
1行目がヘッダーなら、数式の範囲は必ず2行目から開始します。
黄色で絞り込んだ状態でこの数式を確認すれば、黄色い進捗セルの件数を取得できます。
フィルター解除時の確認手順
別の色を数えたいときは、色フィルターを解除してから次の色を選びます。
すべて選択を選択するか、データタブのクリアをクリックすると、通常の表示に戻せます。
色ごとの件数をメモしておけば、赤は要対応、黄は確認中、緑は完了といった分類別の集計に役立ちます。
【操作のポイント】SUBTOTAL関数はフィルターで隠れた行を除外しますが、手動で非表示にした行も除外したい場合は103を使います。
色付きセルを数える名前の定義とGET.CELL関数
続いては、塗りつぶし色の情報を数値として取り出し、数式で集計する方法を確認していきます。
| 商品 | 在庫数 | 判定 |
|---|---|---|
| ノート | 12 | 適正 |
| ペン | 2 | 要発注 |
| 封筒 | 5 | 確認 |
この方法は古いExcel関数であるGET.CELLを名前の定義から呼び出すため、初回の設定には少し注意が必要です。
名前の管理画面での設定
数式タブから名前の管理を開き、新規作成をクリックします。
名前には「CellColor」など、ほかの名前と重複しない分かりやすい名称を入力します。

参照範囲には、現在選択しているセルの塗りつぶし色を返す設定を登録します。
=GET.CELL(63,INDIRECT(“RC”,FALSE))
63はセルの塗りつぶし色に対応する情報を取得するコードです。
GET.CELLはワークシートに直接入力できないため、名前の定義を経由して使います。
補助列への色番号の表示
たとえば判定がC列にあり、D列を補助列にする場合は、D2に次の数式を入力します。
=CellColor
入力後にD2を選択し、セル右下のフィルハンドルを最終行までドラッグしてオートフィルを行います。

各行に表示される番号は、同じ塗りつぶし色であれば同じ値になる傾向があります。
ただし、テーマ色や色の変更履歴によって番号が異なる場合があるため、先に対象の色の番号を確認しましょう。
COUNTIF関数による色番号の集計
赤いセルの色番号が3と確認できた場合、補助列DをCOUNTIF関数で数えます。
=COUNTIF(D2:D100,3)
この式はD2からD100のうち、数値3が入力されたセルだけをカウントします。
色そのものではなく、補助列に表示した色番号を条件にする点がこの方法の特徴です。
【操作のポイント】塗りつぶし色を変更した後に結果が更新されない場合は、F9キーで再計算するか、数式を再入力して更新を促します。
VBAによる塗りつぶし色と文字色の集計
続いては、塗りつぶし色だけでなく文字色も条件にして集計できるVBAの方法を確認していきます。
| 顧客名 | 売上 | 備考 |
|---|---|---|
| A社 | 120000 | 重点 |
| B社 | 65000 | 確認 |
| C社 | 98000 | 重点 |
VBAでは色のRGB値を比較できるため、文字が赤いセルや背景が黄色いセルを条件にして、より柔軟に数えられます。
VBEの標準モジュールへのコード入力
Altキーを押しながらF11キーを押し、Visual Basic Editorを開きます。
挿入メニューの標準モジュールを選択して、表示されたコード画面に関数を貼り付けます。
画面上部の開発タブからVisual Basicを選ぶ流れを覚えると、マクロの編集画面をすぐに開けます。
塗りつぶし色を数えるユーザー定義関数
次のコードは、指定範囲の塗りつぶし色が基準セルと同じセルを数える関数です。
|
1 2 3 4 5 6 7 8 |
Function CountFillColor(TargetRange As Range, SampleCell As Range) As Long Dim Cell As Range For Each Cell In TargetRange If Cell.Interior.Color = SampleCell.Interior.Color Then CountFillColor = CountFillColor + 1 End If Next Cell End Function |
コードを保存したら、ブックは必ずマクロ有効ブックの形式で保存します。
拡張子がxlsxのままではVBAコードを保存できないため、xlsmを選ぶ必要があります。
数式入力と文字色への応用
たとえばC2からC100の黄色セルを数え、F1に黄色の見本セルを置いた場合は次の式を入力します。
=CountFillColor(C2:C100,F1)
文字色を数えたい場合は、コード内のInterior.ColorをFont.Colorに置き換えます。
数式を入力したセルに結果が表示されないときは、マクロを有効にしたうえで再計算を実行してください。
【操作のポイント】VBAを含むファイルは信頼できる作成者と共有先に限定し、元データのコピーを作ってから試しましょう。
条件付き書式で色が付いたセルの数え方
続いては、条件付き書式によって色が表示されているセルを集計する考え方を確認していきます。
| 担当 | 達成率 | 表示色 |
|---|---|---|
| 田中 | 105% | 緑 |
| 佐藤 | 82% | 黄 |
| 鈴木 | 55% | 赤 |
条件付き書式はセルに実際の塗りつぶし色を設定しているように見えても、数値条件に応じて表示だけを変えている場合があります。
元になっている条件の確認
ホームタブの条件付き書式からルールの管理を選択すると、どの条件で色が付いているか確認できます。
たとえば達成率が100パーセント以上なら緑、80パーセント未満なら赤というルールなら、集計対象は色ではなく達成率です。
条件付き書式の色を直接数えるより、色を決めている数値条件をCOUNTIFで数えるほうが安定します。
COUNTIF関数による条件別の集計
B列の達成率が100パーセント以上のセルを数える場合は、次の数式を使います。
=COUNTIF(B2:B100,”>=100%”)
この結果は、100パーセント以上を緑で表示するルールなら緑のセル数に対応します。
80パーセント未満を赤にしている場合は、条件を<80%に変更して数えましょう。
複数条件を扱うCOUNTIFS関数
担当部署や日付など、別の条件も加えて色に対応する件数を求める場合はCOUNTIFS関数が適しています。
=COUNTIFS(B2:B100,”>=100%”,A2:A100,”営業部”)
この式は、A列が営業部で、かつB列の達成率が100パーセント以上の行を数えます。
見た目の色ではなく業務ルールを数式に反映できるため、集計の根拠を説明しやすい方法です。
【操作のポイント】条件付き書式のルールを変更したときは、COUNTIFやCOUNTIFSの比較条件も同じ基準へ見直します。
色別集計で失敗しやすい設定と確認項目
続いては、色付きセルのカウントで結果が合わないときに確認したい項目を解説していきます。
| 確認項目 | 原因 | 対処 |
|---|---|---|
| 件数が0 | 範囲外 | 開始行を確認 |
| 色が反映されない | 再計算待ち | F9で再計算 |
| 数が多い | ヘッダーを含む | 2行目から指定 |
ヘッダー行を範囲に含めない設定
サンプルデータでは1行目がヘッダーなので、集計範囲は2行目から開始します。
見出しセルにも色が付いていると、C1:C100のような範囲では見出しまで数えられてしまうかもしれません。
データ範囲はC2:C100のように、ヘッダーを除外して指定することが基本です。
似た色とテーマカラーの確認
見た目がほぼ同じ黄色でも、標準色、テーマ色、淡い色などが混在すると、VBAでは別の色として判定されることがあります。
色を統一したい場合は、ホームタブの塗りつぶしの色から同じ色を選び直します。
業務用の表では、用途ごとに使う色をあらかじめ決めておくと集計ミスを減らせます。
数式とVBAの再計算
GET.CELLやユーザー定義関数は、セルの色だけを変更した場合に自動更新されないケースがあります。
その場合はF9キーを押して再計算するか、数式セルを編集してEnterキーで確定します。
色を変更した直後の集計結果は、再計算済みかどうかを確認してから利用しましょう。
【操作のポイント】色を集計の条件に使う表は、塗りつぶしの意味と担当者を別シートに記録しておくと引き継ぎにも役立ちます。
まとめ エクセルで色の付いたセルをカウントする方法(文字色・塗りつぶしを集計)
Excelで色の付いたセルをカウントするには、用途と表の作りに合わせて手段を選ぶことが大切です。
一度だけ件数を知りたい場合は、色フィルターとSUBTOTAL関数の組み合わせが手軽です。
継続的に塗りつぶし色を集計するなら、GET.CELLを使った補助列とCOUNTIF関数が役立ちます。
文字色も集計したい場合や複雑な条件を扱う場合は、VBAのユーザー定義関数を活用しましょう。
条件付き書式で色が付いている表では、表示色そのものではなく、色を決めている元の条件をCOUNTIFやCOUNTIFSで数えるのが確実です。
色付きセルの集計では、ヘッダーを除いた範囲、基準セルの色、条件付き書式のルール、再計算の有無を確認することが正確な結果への近道です。
用途に合った方法で色別の件数を把握し、進捗管理や在庫管理、売上分析に生かしていきましょう。