Excel

【Excel】エクセルで赤文字だけをカウント・抽出する方法(条件付き書式)

条件付き書式の赤文字を数える方法 - COUNTIF関数による条件件数
当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

Excelで一覧を管理していると、赤文字で表示した注意項目、期限切れの商品、確認が必要なデータだけを数えたり、別の場所へ抜き出したりしたい場面があります。

ただし、Excelの標準関数はセルに表示された文字色を直接判定できないため、赤文字の付け方に合わせて方法を選ぶことが大切です。

条件付き書式で赤くしている場合は、文字色ではなく赤字にした条件そのものを数式へ使うと、再計算にも対応しやすくなります。

この記事で扱うポイント

・条件付き書式のルールを使って赤文字相当の件数を数える方法

・FILTER関数などで対象行だけを抽出する方法

・手入力の赤文字を扱う場合の検索、フィルター、VBAの考え方

サンプルデータは1行目を見出し行とし、A列に商品名、B列に在庫数、C列に判定結果を配置した例で説明します。

数式を入力した後は、対象範囲や条件付き書式の参照先がずれていないかも確認しましょう。

 

条件付き書式の赤文字を数える方法

それではまず、条件付き書式で赤文字になったデータを正確にカウントする考え方について解説していきます。

商品名 在庫数 判定
ノート 15 通常
ペン 3 要発注
付箋 0 要発注
封筒 28 通常

 

COUNTIF関数による条件件数

条件付き書式でB列の在庫数が5以下なら赤文字にする場合、数えるべき対象は赤色という見た目ではなく、在庫数が5以下という判定条件です。

赤文字になっているセルを目視で数えるよりも、同じ条件をCOUNTIF関数へ設定する方が、在庫数の変更後にも件数が自動更新されます。

条件付き書式の赤文字を数える方法 - COUNTIF関数による条件件数

=COUNTIF(B2:B100,”<=5″)

この数式では、B2からB100の中で5以下の数値が入力されたセルを数えます。

サンプル表ではペンの3と付箋の0が条件に一致するため、結果は2です。

条件付き書式の条件とCOUNTIF関数の条件は、演算子、基準値、参照範囲を同じ意味にそろえることが重要です。

条件付き書式のルールが「セルの値が次の値以下」「5」なら、数式も「<=5」を使います。

空白セルを数えたくない場合、通常の数値比較では空白が想定外に扱われることもあるため、実データの範囲だけを指定すると安心です。

 

COUNTIFS関数による複数条件の集計

在庫数が5以下で、かつ商品名が空白ではない行だけを赤文字として数えたい場合はCOUNTIFS関数が便利です。

たとえば未使用行まで範囲に含める一覧では、在庫欄だけが数式で0表示になるケースもあるため、商品名の有無を追加条件にできます。

条件付き書式の赤文字を数える方法 - COUNTIFS関数による複数条件の集計

=COUNTIFS(A2:A100,”<>”,B2:B100,”<=5″)

A列が空欄ではないことを「<>」で指定し、B列が5以下であることを同時に判定します。

複数条件では、各範囲の開始行と終了行を必ず一致させてください。

たとえばA2:A100とB2:B99のように行数が異なると、数式エラーになる場合があります。

赤字の理由が複数ある一覧では、色ではなく業務ルールをCOUNTIFSへ分解すると、あとから修正しやすい集計表になります。

 

条件付き書式ルールとの照合

数式で数えた件数と赤文字セルの数が合わないときは、ホームタブの条件付き書式からルールの管理を開いてください。

ルールの適用先がB2:B100ではなく、B2:C100のように複数列へ広がっている可能性があります。

条件付き書式の数式例

=AND($A2<>””,$B2<=5)

このルールでA列からC列までを赤文字にしているなら、赤字セルの個数と赤字行の件数は同じではありません。

1行につき3セルが赤くなる設定なら、赤字セルを数えると行数の3倍になるためです。

行数を求めたい場合は、条件の基準となるB列をCOUNTIFSで数える方法がわかりやすいでしょう。

【操作のポイント】

条件付き書式の表示形式だけを追わず、ルールに書かれた基準値と数式の条件を一致させると、赤字の件数を安定して管理できます。

 

赤文字に該当する行を抽出する方法

続いては、赤文字になる条件に一致した商品や行だけを別の場所へ抽出する方法を確認していきます。

商品名 在庫数 抽出対象
ノート 15 対象外
ペン 3 抽出
付箋 0 抽出

 

FILTER関数による自動抽出

Microsoft 365やExcel 2021以降では、FILTER関数を使うと条件に合う行を自動で別の表へ表示できます。

たとえばE2セルに数式を入力し、A列からC列のデータを在庫数5以下という条件で抽出します。

赤文字に該当する行を抽出する方法 - FILTER関数による自動抽出

=FILTER(A2:C100,B2:B100<=5,”該当データなし”)

第1引数のA2:C100は抽出したい表全体、第2引数のB2:B100<=5は抽出条件です。

第3引数の「該当データなし」は、条件に一致する行がないときに表示する文字列になります。

抽出結果は入力セルから下方向と右方向へ自動展開されるため、E2の周辺には十分な空白を確保しましょう。

FILTER関数は赤文字そのものではなく、赤文字にした条件に一致する行を抽出する関数です。

この考え方なら、在庫数が変化した瞬間に条件付き書式と抽出結果が一緒に更新されます。

 

フィルターによる表示行の絞り込み

数式で別表を作らず、元の一覧で対象だけを確認したいときはオートフィルターが役立ちます。

表内の任意のセルを選択してデータタブのフィルターを実行し、在庫数列の矢印から数値フィルターを選択します。

赤文字に該当する行を抽出する方法 - フィルターによる表示行の絞り込み

数値フィルターの指定で「指定の値以下」を選び、5を入力すると、赤文字にしている在庫不足の行だけを画面上に残せます。

条件付き書式で文字を赤にする設定とフィルター条件を同じにしておけば、抽出漏れの確認にも使えます。

文字列の判定欄を作っている場合は、C列の「要発注」だけをフィルターする方法もあります。

ただし、フィルターは行を削除する機能ではなく、一時的に非表示にする機能です。

表示されている件数は、ステータスバーで確認するか、SUBTOTAL関数で数えるとよいでしょう。

 

詳細設定による抽出先の指定

FILTER関数が利用できないExcelでは、データタブの詳細設定を使って別の位置へデータを抽出できます。

あらかじめ空いている場所に、元表と同じ見出し名をコピーして条件範囲を準備します。

条件範囲の例

在庫数

<=5

詳細設定では、リスト範囲に元の表、条件範囲に準備した見出しと条件を指定します。

「指定した場所にコピー」を選べば、元表を残したまま対象行だけを別の範囲に出力できます。

抽出先の見出しは元データの見出しと完全に同じ文字列にすることが、詳細設定を正しく動かすコツです。

【操作のポイント】

日々更新される一覧にはFILTER関数、単発の確認や旧バージョンのExcelにはフィルターや詳細設定を選ぶと、作業目的に合った抽出になります。

 

手入力した赤文字を抽出する方法

続いては、条件付き書式ではなく手作業で文字色を赤に変更したセルを扱う方法を確認していきます。

案件名 担当者 進捗
見積作成 田中 進行中
納期確認 佐藤 要確認
請求処理 鈴木 完了

 

検索と置換の書式指定

手入力で赤くした文字を一度に探したい場合は、検索と置換の書式指定を利用します。

ホームタブの検索と選択から検索を開き、オプションを表示して書式ボタンを選択してください。

Book1 – Excel − □ ×
ファイル ホーム 挿入 ページ レイアウト 数式 データ 校閲 表示
貼り付け
B
罫線
検索と選択
➤
検索と置換
検索する文字列
検索場所 シート
検索対象 値
書式 ▼➤フォントの色を赤に指定
赤色のフォント書式で検索

書式の選択画面でフォントタブを開き、色から赤を選んで検索を実行します。

検索結果の一覧から対象セルへ移動できるため、手入力の赤字を確認する用途に向いています。

検索機能は赤文字セルを見つける手段であり、関数のように自動集計する仕組みではありません。

 

色によるフィルター設定

一覧にフィルターが設定されているなら、文字の色によるフィルターで赤文字の行だけを表示できます。

フィルターのドロップダウンを開き、「色でフィルター」から赤いフォントの色を選択します。

色でフィルターは、同じ列に赤文字が入っている場合に特に使いやすい機能です。

ただし、A列だけ赤字にしている行を絞り込む場合と、C列だけ赤字にしている行を絞り込む場合では、フィルターを設定する列を間違えないように注意しましょう。

表示中のデータ件数を数える式

=SUBTOTAL(103,A2:A100)

SUBTOTAL関数の103は、フィルターで非表示になった行を除外して、空白ではないセルを数える指定です。

赤字で絞り込んだ後にA列の商品名を数えれば、画面に表示された赤文字行数を確認できます。

色によるフィルターとSUBTOTAL関数を組み合わせると、手入力の赤字行を簡易的に集計できます。

 

VBAによるフォント色判定

手入力の文字色を定期的に数える必要がある場合は、VBAでFont.Colorを判定する方法があります。

次の例では、選択範囲の中から赤色のフォントを持つセルを数え、メッセージボックスへ表示します。

Sub CountRedFontCells()
    Dim targetCell As Range
    Dim redCount As Long

    For Each targetCell In Selection
        If targetCell.Font.Color = RGB(255, 0, 0) Then
            redCount = redCount + 1
        End If
    Next targetCell

    MsgBox "赤文字セルは " & redCount & " 個です。"
End Sub

AltキーとF11キーでVisual Basic Editorを開き、挿入から標準モジュールを追加してコードを貼り付けます。

対象範囲を選択してからマクロを実行すると、その範囲内の赤文字セルを数えられます。

条件付き書式で表示された色はFont.Colorだけでは取得できないことがあるため、この方法は手入力で設定した文字色を対象にする場合に適しています。

【操作のポイント】

手入力の赤文字は、検索や色フィルターならすぐ確認でき、繰り返し集計するならVBAも候補になります。条件付き書式と混在している表では、先に赤色の付け方を整理しましょう。

 

条件付き書式と数式の設定手順

続いては、赤文字の判定基準を条件付き書式と数式でそろえる設定手順について解説していきます。

在庫数 条件付き書式 集計式
5以下 赤文字 COUNTIF
6以上 通常色 対象外

 

セルの強調表示ルールの作成

B2:B100を選択し、ホームタブの条件付き書式からセルの強調表示ルールを選びます。

「指定の値以下」をクリックして5を入力し、書式は赤い文字を選択してください。

これで在庫数が5以下のセルだけが赤く表示されます。

基準値を後から変更する可能性があるなら、たとえばF1セルに警戒在庫数を入力し、そのセルを参照する設定にすると便利です。

F1に基準値を入力する場合の集計式

=COUNTIF(B2:B100,”<=”&$F$1)

基準値を1か所に置くと、条件付き書式と集計式のメンテナンスをそろえやすくなります。

 

数式を使用するルールの設定

商品名が入力されていて、在庫数が基準値以下の場合だけ行全体を赤くしたいときは、「数式を使用して、書式設定するセルを決定」を選びます。

=AND($A2<>””,$B2<=$F$1)

この数式を使う場合、適用先はA2:C100のように行全体を含む範囲へ設定します。

$A2の列記号だけを固定しているため、同じ行のA列を確認しながら、各行へ条件が適用されます。

$F$1は行と列の両方を固定した絶対参照です。

コピーや適用範囲の変更をしても基準値セルがずれないため、設定ミスを減らせます。

 

判定列を追加する管理方法

赤文字の理由を誰でも確認できる表にしたいなら、表示色だけに頼らず判定列を追加する方法がおすすめです。

C2に入力する判定式

=IF(AND(A2<>””,B2<=$F$1),”要発注”,”通常”)

C2の数式を下方向へオートフィルすると、各行へ判定結果を表示できます。

COUNTIFで「要発注」を数えたり、FILTER関数で「要発注」の行だけを抽出したりできるため、色だけよりもデータ活用の幅が広がります。

色は注意を引く表示、判定列は集計と抽出のためのデータと分けて設計すると、引き継ぎにも強い一覧になります。

【操作のポイント】

条件付き書式の赤文字は視認性を高める役割です。件数集計や抽出まで行う場合は、同じ条件を数式か判定列にも持たせると、表の信頼性が高まります。

 

赤文字カウントで起こりやすい注意点

続いては、赤文字だけをカウント・抽出するときに起こりやすいずれやエラーについて確認していきます。

確認項目 よくある状態 対処
参照範囲 新しい行を含まない テーブル化
赤字の種類 手入力と条件付き書式が混在 ルールを統一

 

文字色と条件付き書式の違い

見た目が同じ赤文字でも、直接設定したフォント色と条件付き書式で表示した色はExcel内部で別の仕組みです。

VBAでFont.Colorを確認しても、条件付き書式の表示結果を期待どおりに拾えない場合があります。

条件付き書式の赤字は条件を数え、直接設定の赤字は色を検索またはVBAで判定するという使い分けが基本です。

色を使った管理を始める前に、赤字が何を意味するかを表内で統一しておくと後の集計が楽になります。

 

範囲の追加漏れとテーブル化

=COUNTIF(B2:B100,”<=5″)のように固定範囲を指定すると、101行目以降に追加したデータは集計されません。

データが増え続ける一覧は、表内のセルを選択してCtrlキーとTキーを押し、Excelテーブルへ変換する方法が便利です。

テーブル名を在庫表とした場合の例

=COUNTIF(在庫表[在庫数],”<=5″)

テーブルの列を参照する構造化参照では、新しい行を追加しても対象範囲が自動的に拡張されます。

毎月の在庫表や進捗表はテーブル化しておくと、赤字カウントの範囲漏れを防ぎやすいでしょう。

 

空白、文字列、エラー値の扱い

在庫数列に「未確認」のような文字列や、数式エラーが混在すると、数値比較の結果が想定と異なることがあります。

入力規則で数値だけを受け付けるようにするか、未入力用の判定を別途用意すると安定します。

空白を除外して要発注だけを数える式

=COUNTIFS(A2:A100,”<>”,B2:B100,”<=”&$F$1)

FILTER関数でエラーが出る場合は、抽出範囲と条件範囲の行数が同じか、結合セルが含まれていないかを確認してください。

【操作のポイント】

赤字の見た目ではなく、元になる数値、判定文字列、参照範囲を確認すると、カウント結果のずれを効率よく見つけられます。

 

まとめ エクセルで赤文字だけをカウント・抽出する方法

Excelで赤文字だけをカウント・抽出したい場合は、最初に赤文字が条件付き書式なのか、手入力のフォント色なのかを確認しましょう。

条件付き書式で赤くしているなら、COUNTIF関数やCOUNTIFS関数に同じ条件を設定する方法が最も実用的です。

赤文字の在庫不足を数えるなら、=COUNTIF(B2:B100,”<=5″)のように赤字の条件を数えることが基本になります。

対象行を別の場所へ自動表示したい場合は、FILTER関数で在庫数や判定列を条件にして抽出できます。

手入力の赤文字は、色によるフィルター、検索の書式指定、VBAによるFont.Color判定を使い分けるとよいでしょう。

表示の赤色と判定用の数式を連動させ、必要に応じて判定列も追加すれば、確認しやすく集計にも強いExcel表へ整えられます。