複数の条件を満たすデータを効率的にカウントする – ExcelのCOUNTIFS関数の使い方と活用術

COUNTIFS関数は、複数の条件をすべて満たす行数を数えます。営業部かつ評価80以上なら=COUNTIFS(B2:B100,"営業部",C2:C100,">=80")です。構文はCOUNTIFS(条件範囲1,条件1,[条件範囲2,条件2]...)で、条件範囲と条件をペアで並べます。各追加範囲は最初の範囲と同じ行数・列数でなければなりません。日付条件は">="&DATE(2026,1,1)のように比較演算子と日付値を&で結合します。結果だけを信じず、フィルターやピボットで該当行を抽出して検算し、条件、母数、空欄、エラー、更新時点、確認者名を記録します。

目次

COUNTIFSはAND条件として数える

Microsoftの説明では、COUNTIFSは複数範囲に条件を適用し、すべての条件が成立した回数を数えます。同じ行のB列が「営業部」で、C列が80以上なら一件です。どちらか一つだけなら数えません。条件ペアは最大127組まで指定できますが、実務では読みやすさを優先します。

「営業部または企画部」のようなOR条件は、一つのCOUNTIFSへ条件を追加するとANDになり、両方の部署である行を求めてしまいます。部署別のCOUNTIFSを加算する、重複しない条件設計にする、動的配列やSUMを使うなど、ORを明示します。条件集合が重なる場合は二重計上に注意します。

条件範囲の大きさをそろえる

最初がB2:B100なら、次もC2:C100のように同じ行数へします。Microsoftは追加範囲がcriteria_range1と同じ行数・列数である必要があると明記しています。B2:B100とC2:C99の組み合わせは対応行がずれ、正しい式になりません。

列全体B:Bと実データ範囲C2:C100を混在させないでください。Excelテーブルなら構造化参照で各列のデータ行を対応させやすくなります。並べ替えで片方の列だけを動かすと行対応が壊れるため、表全体を一つの範囲として管理します。

比較演算子は引用符と結合を使う

固定値80以上は">=80"のように演算子を含む条件全体を引用符で囲みます。基準値がE1セルなら">="&E1です。">=E1"では文字E1を条件へ含めてしまい、セル参照として評価されません。

「80以上100以下」は同じ範囲へ二つの条件を付け、=COUNTIFS(C2:C100,">=80",C2:C100,"<=100")とします。境界を含むかを「以上・以下」と「超・未満」で確認します。負数、小数、空欄、文字列数値を含むデータでテストします。

日付は開始以上・翌期間未満で数える

2026年1月分なら=COUNTIFS(A2:A100,">="&DATE(2026,1,1),A2:A100,"<"&DATE(2026,2,1))とします。月末日以下でも数えられますが、日時に時刻が含まれると最終日の0時より後を取りこぼすため、翌月1日未満が安全です。

DATE関数で年・月・日から日付シリアル値を作ると、文字列の日付表記や地域設定への依存を減らせます。セルが実日付ではなく文字列なら、見た目が同じでも条件に入らないことがあります。ISNUMBERや数式バーで型を確認し、無効日付を別に集計します。

文字列とワイルドカードを使う

=COUNTIFS(B2:B100,"*りんご*")は「りんご」を含む文字列を数えます。?は任意の一文字、*は任意の文字列です。実際の?または*を探すときは前へチルダ~を付けます。Microsoft公式仕様にもこのワイルドカードの扱いが記載されています。

部分一致は「青りんご」「りんごジュース」も数えるため、商品コードや厳密な分類では完全一致を使います。全角・半角、余分な空白、異なるハイフン、改行があると期待と違う結果になります。TRIMなどで正規化する場合は元値を残します。

空欄条件を明示する

空欄を数える条件は""、空欄以外は"<>"などを使えます。ただし本当の空セルと、数式が空文字を返すセル、スペースだけのセルは同じに見えても扱いが異なる場合があります。COUNTBLANKやLEN、ISBLANKと照合します。

Microsoftは、条件引数が空セルへの参照の場合、COUNTIFSがその空セルを0として扱うと説明しています。たとえば基準セルE1が空のまま=COUNTIFS(C:C,E1)を使うと、意図せず0を条件にする可能性があります。基準セルが必須かを先に検証します。

エラー値と文字列数値を切り分ける

条件範囲に#N/Aや#VALUE!があると、期待する件数と合わない原因になります。集計式だけを直す前に、エラー件数をCOUNTIFやフィルターで確認します。数値80と文字列「80」が混在する列も、比較条件で結果が分かれる可能性があります。

IFERRORで元データのエラーを空欄へ変えると、未登録と空欄を混同します。原値、型、エラー理由を補助列へ残します。集計対象外にする場合も「除外エラー何件」と報告し、母数が変わったことを明示します。

別ブック参照は運用を確認する

集計範囲を別ブックへ置くと、ファイル名、保存場所、アクセス権、リンク更新が結果へ影響します。共同作業では参照先の版が更新されたか、読み取り専用コピーを見ていないかを確認します。組織の共有場所と更新担当を決めます。

大規模な複数ファイル集計を多数のCOUNTIFS外部参照で構成すると保守が難しくなります。Power Queryやデータモデルで一度統合し、更新履歴と件数を検証する方法も検討します。資格情報を式やファイル名へ埋め込みません。

列全体参照と計算負荷を管理する

B:BやC:Cは追加行を自動で含めますが、条件ペアが多い大量シートでは再計算負荷が増えます。Excelテーブルまたは十分な上限を持つ実データ範囲を使い、入力行が範囲外になったら検知できる仕組みにします。

同じ条件のCOUNTIFSを何百セルにも重複させるより、基準セルを参照し、集計表やピボットを使います。計算方法が手動になっていないか、更新後に再計算されたかを確認します。高速化のために条件範囲の行対応や監査列を削らないでください。

フィルターで該当行を検算する

数式完成後、同じ部署・評価・日付条件をオートフィルターへ設定し、表示件数とCOUNTIFSを比較します。境界値、空欄、重複、エラー、月末時刻を含むテスト行を追加し、期待件数を手計算します。フィルターで見える行だけをCOUNTIFSが自動的に数えるわけではないため、非表示行を除外したい要件なら別の集計方法を検討します。

集計値を報告するときは、ブック名、シート、範囲、条件、基準日、更新日時、除外ルールを残します。母数の全件数から、条件成立・不成立・空欄・エラーの合計が整合するか確認します。前回値との差が大きいときは、データ追加、条件変更、範囲外、型変換を切り分けます。COUNTIFSは条件を正しく書けば数えますが、条件定義そのものの妥当性までは保証しません。

確認チェックリスト

  • COUNTIFSが複数条件のANDであることを確認する
  • すべての条件範囲の行数・列数をそろえる
  • セル基準は演算子と&で結合する
  • 月間日付は開始日以上・翌月開始未満で検証する
  • 空基準セルが0として扱われる仕様に注意する
  • フィルター結果と境界テストで件数を検算する

式を確定する前に、条件を一つずつフィルターへ適用して該当行を目視し、COUNTIFSの結果と照合します。条件範囲の開始行・終了行、日付の境界、空欄と文字列数値、ワイルドカードの扱いを記録し、元データ追加後にも集計範囲が追従することを確認してください。

公式情報・参考資料

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次