COUNTIF関数は、指定した範囲の中から一つの条件に合うセル数を数えます。基本形は=COUNTIF(範囲,条件)です。文字列の完全一致、数値の大小、日付、空白、ワイルドカードを扱えますが、複数条件をすべて満たす件数にはCOUNTIFS関数を使います。結果が合わないときは、比較演算子とセル参照の連結、余分な空白、数値に見える文字列、日付の実体、ワイルドカードを最初に確認してください。セル色を条件に数える標準機能ではなく、大文字と小文字も区別しません。実務では条件をセルへ置き、テスト用の小さな表で境界値を検証してから集計表へ適用します。
COUNTIFの構文と二つの引数
=COUNTIF(A2:A100,"完了")はA2:A100で「完了」に一致するセル数を返します。第1引数rangeが調べる範囲、第2引数criteriaが条件です。条件には数値、文字列、比較式、セル参照を指定できます。範囲は一列だけでなく複数行列でも指定できますが、何を一件と数えるかが曖昧になるため、一覧では一つの項目列を対象にします。
COUNTIFはセルの数を返し、数値の合計や行そのものを返す関数ではありません。一つの条件で金額を合計するならSUMIF、複数条件の件数ならCOUNTIFS、空白以外を広く数えるならCOUNTAなど、目的に合う関数を選びます。範囲の見出しを含めると文字条件で誤カウントすることがあるため、データ行だけを指定します。
文字列とセル参照で完全一致を数える
固定文字なら=COUNTIF(B2:B50,"東京")、条件をE2へ入力するなら=COUNTIF(B2:B50,E2)とします。セル参照にすると条件変更のたびに数式を編集せずに済み、入力規則のリストと組み合わせやすくなります。ExcelのCOUNTIFによる文字比較は通常、大文字と小文字を区別しないため、ABCとabcを別々に数える用途にはそのまま使えません。
文字が見た目どおりなのに一致しない場合は、先頭・末尾の空白、改行、全角と半角、異なる種類の引用符、非表示文字を確認します。TRIMやCLEANで補助列を作って正規化し、元データを無断で一括置換しません。商品コードや社員番号では、数値の123と文字列の”123″が混在していないかも確認します。
比較演算子とセル値を正しく連結する
32より大きい数を数えるなら=COUNTIF(C2:C100,">32")です。基準値をF2へ置く場合は、=COUNTIF(C2:C100,">"&F2)のように比較演算子を文字列として書き、&でセル参照と連結します。以上は>=、以下は<=、等しくないは<>です。演算子を引用符の外へ置くと構文エラーになります。
境界を含むかどうかを業務定義と合わせます。「30日超」は>30、「30日以上」は>=30です。小数表示が丸められているセルでは、画面上は100でも内部値が99.9999のことがあります。条件が金額や割合なら元の値と表示形式を確認し、必要に応じてROUNDなどでルールを明示します。
ワイルドカードの使い方
文字条件では、アスタリスク*が任意の文字列、疑問符?が任意の一文字に一致します。=COUNTIF(A2:A100,"*東京*")は「東京」を含む文字列、=COUNTIF(A2:A100,"????")は四文字の文字列を数える例です。ワイルドカードは便利ですが、部分一致が広すぎて「東京都」と「東京支店」を同時に数えることがあります。

実際の*または?を検索する場合は、チルダを付けて~*または~?とします。ユーザー入力を条件に使うと、その入力に*や?が含まれて意図せずパターンになる可能性があります。コードや製品名を完全一致で数えたい場合は、入力値のワイルドカードをエスケープするか、事前に許可文字を確認します。
空白と空白に見えるセルを区別する
空白セルを数える条件には""、空白でないセルには"<>"を使う例があります。ただし、未入力セル、数式が空文字を返すセル、スペースだけのセル、長さゼロの文字列は見た目が同じでも扱いが異なる場合があります。COUNTBLANKやCOUNTAの結果とも比較し、どの状態を「未入力」とするか定義します。
入力漏れ管理では、COUNTIFの総数だけでなく補助列で各行の状態を示すと原因を追いやすくなります。空白を0とみなすのか、対象外なのか、エラーなのかを決めます。スペースを削除する前に、住所や製品名など意味のある空白まで消さないよう、対象列と変換ルールを限定します。
日付条件は日付値として作る
Excelの日付は通常、連続したシリアル値です。特定日以降を数えるなら、日付をG2へ入れて=COUNTIF(D2:D100,">="&G2)とするか、=COUNTIF(D2:D100,">="&DATE(2026,7,1))のようにDATE関数で作ります。数式内へ地域依存の文字列「2026/7/1」を直接書くと、環境や取り込み方法で解釈が変わる可能性があります。
月間件数は開始日以上かつ翌月開始日未満という二条件になるため、COUNTIFSを使います。日時を含む値では、終了日以下とすると時刻部分を落とすことがあります。<翌日または<翌月初日のような半開区間にすると、23時台まで含めやすくなります。文字列の日付は正規の日付値へ変換してから集計します。

複数条件はCOUNTIFSまたは条件ごとの合算
同じ行で「地域が東」かつ「状態が完了」を数えるなら、=COUNTIFS(A2:A100,"東",B2:B100,"完了")を使います。各criteria_rangeは同じ大きさと形にそろえます。COUNTIFは一条件だけなので、無理に文字連結した補助データへ押し込むより、COUNTIFSで列の意味を保ちます。
「東京または大阪」のようなOR条件は、COUNTIF(範囲,"東京")+COUNTIF(範囲,"大阪")と合算できます。ただし条件が重なり得る場合は二重計上に注意します。「東京を含む」または「支店を含む」のような部分一致は一セルが両方へ一致します。重複を除く必要があるなら、補助列やFILTER・UNIQUEなど別の方法を設計します。
結果が合わないときのデータ確認
Microsoftの案内では、余分な文字や非表示文字がCOUNTIFの予期しない結果につながるとされています。候補セルへLENを使って文字数を比較し、数式バーで末尾空白を確認します。数値に見える文字列は警告表示、ISTEXT、ISNUMBERなどで切り分けます。表示形式を「標準」に変えるだけでは、文字列が数値へ自動変換されないことがあります。
別ブックの名前付き範囲をCOUNTIFで参照する場合、その参照元ブックを開く必要があるとMicrosoft公式例で案内されています。閉じたブックでエラーになる式をIFERRORで0へ隠すと、データなしと誤認します。外部参照は接続状態と更新時刻を明示し、安定した集計なら必要データを同じブックや管理されたデータソースへ取り込みます。

色ではなく値を条件にする
COUNTIFはセルの背景色やフォント色を条件に数える関数ではありません。色が「要対応」「完了」などの状態を表しているなら、状態列へ文字やコードを入力し、条件付き書式でその値に応じて色を付けます。これによりCOUNTIFで正しく数えられ、フィルター、並べ替え、アクセシビリティにも対応しやすくなります。
VBAのユーザー定義関数で色を数える例もありますが、マクロの安全性、再計算、Web版との互換性、配布先の設定が課題になります。見た目だけに意味を持たせず、集計根拠をセル値として保存する設計を優先します。既存表を変更するときは、色の意味を担当者へ確認してから状態値へ移行します。
検算しやすい集計表にする
COUNTIFをコピーするときは、データ範囲を$A$2:$A$100のように絶対参照へ固定し、条件セルだけを相対参照にするなど、意図を分けます。Excelテーブルなら列追加に追従する構造化参照を利用できます。列全体参照は便利でも、多数の数式で使うと計算負荷が増えるため、必要範囲やテーブルを選びます。
最終結果は、オートフィルターで同じ条件を絞った件数、ピボットテーブル、少量の手集計と照合します。0件、1件、境界値、空白、エラー、重複、ワイルドカード文字を含むテスト行を用意します。条件、対象期間、更新日時を見出しへ表示し、数字だけを報告しないようにします。
確認チェックリスト
- COUNTIFのrangeとcriteriaが意図した列・条件か確認する
- 比較演算子とセル参照を引用符と&で正しく連結する
- ワイルドカードと実際の*・?をチルダで区別する
- 空白、空文字、スペース、数値文字列、日付文字列を確認する
- 複数条件はCOUNTIFS、OR条件は重複を確認して設計する
- フィルターやピボットなど別の方法で件数を検算する

コメント