要点 —
COUNTIFSはすべての条件を満たした行を数えます。構文は=COUNTIFS(範囲1, 条件1, 範囲2, 条件2, …)。危ないのはエラーメッセージではなく、 もっともらしい間違った数です。条件が悪くても数は返ってきます——ただし欲しかった 数ではありません。それを防ぐ2つのルール。演算子は引用符の中に入れる(">100"、"<>0")。セルと比べるときは連結する——">"&A1、">A1"は不可。複数のペアは AND で結ばれます。OR は配列をSUMで足す。そして人がいちばん誤用しがちな 用途——重複を除いた値を数えること——は COUNTIFS の仕事ではありません。代わりにCOUNTA(UNIQUE(…))を使います。対応は Excel 2007 以降です。
=COUNTIFS(Status, "Open")
=COUNTIFS(Status, "Open", Priority, ">"&A1)
COUNTIFS は SUMIFS の集計仲間です。条件付き集計の
エンジンは同じで、列を足す代わりに行を数えます。だから「X のうち Y を満たすものは
いくつ」の主力選手であり——そして独特にやっかいです。条件を間違えても文句を言わない
からです。ただ数を手渡してくる。そして数字は、答えのような顔をしています。
この記事で学べること
- 考え方の軸:
COUNTIFSは「フィルターが残す行」を数える - なぜ間違った条件は静かなのか——よくある失敗を直す
">"&A1ルール COUNTIFとCOUNTIFS、そして複数形が拡張に強い理由- AND は標準装備、OR は配列で組み立てる
- 2つの日付の間を数える、空白と非空白を数える
- 重複を除いた数に
COUNTIFSではなくUNIQUEが要る理由
考え方の軸:フィルターが残す行を数える
ある条件の組について FILTER が返すであろう行を思い
浮かべてください——COUNTIFS はそれを見せずに、ただいくつあるかを教えます。列と
条件を指定し、ペアをさらに積み上げると、Excel はすべての条件を満たした行を数えます。
SUMIFS と同じく、すべての範囲は同じ高さでなければなりません。SUMIFS と違って
「値」の列はありません——数えた結果そのものが答えです。
' 未対応のチケットはいくつ?
=COUNTIFS(Status, "Open")
' 未対応 かつ 高優先度はいくつ?(両方が真)
=COUNTIFS(Status, "Open", Priority, "High")
COUNTIFS を危険にする罠:静かな間違い
SUMIFS が違う列を返すときは、少なくとも多くの場合ゼロや明らかにおかしな数になります。
COUNTIFS はもっと悪い。条件が悪いとそれらしい数を返します。最も多い原因は、セルとの
比べ方を間違えることです。
=COUNTIFS(Priority, ">"&A1) ' ✅ 「A1 の値より大きい」
=COUNTIFS(Priority, ">A1") ' ❌ "A1" という文字列に等しいセルを数える → 0
">A1" は文字列です。Excel はテキストがちょうど >A1 のセルを探し、見つからずに 0 を
返します——あるいはもっと悪く、それらしく近い部分一致を拾います。ルールは SUMIFS と
同一です。演算子(>、<、>=、<>)は引用符の中、セル参照は外に置いて & で
つなぐ。失敗が静かである以上、条件を1つずつ試し、目に見えるフィルターと突き合わせて数を
確かめる習慣をつけてください。
もう1つの静かな驚き。文字列の一致は大文字小文字を区別しません。だから
COUNTIFS(Name, "apple") は "APPLE" も "Apple" も数えます。本当に大文字小文字を区別して
数えたいなら、COUNTIFS ではできません——代わりに SUMPRODUCT(--EXACT(範囲, "apple"))
を使います。
COUNTIF と COUNTIFS:複数形を使えばいい
COUNTIF は条件を1つ、COUNTIFS は AND で結んだ複数の条件を取ります。SUMIF /
SUMIFS の組と違い、ここでは引数の順番が同じです——だから入れ替えの地雷はありません。
それでもおすすめは変わりません。理由はもっと単純です。2つ目の条件が必要になった瞬間、
COUNTIF は育てられず、式を書き直すことになります。最初から COUNTIFS にしておけば、
次の条件を足すのは引数を2つ増やすだけ。覚える関数は1つ、しかも拡張できる方です。
AND はタダ、OR は配列が要る
積み上げたペアは AND を意味します。1つの列で複数の値のどれかに一致する行を数える
には、その値の配列に対する COUNTIF を SUM で足します。
' AND — Open かつ High
=COUNTIFS(Status, "Open", Priority, "High")
' OR — Open または Pending または Blocked
=SUM(COUNTIF(Status, {"Open","Pending","Blocked"}))
配列の形は値ごとに1つずつ数を返し、SUM がそれらを合計します。これが1つの列で安全なのは、
1行が持てる状態は1つだけだからです。注意してほしいのは、OR が別々の列や重なり合う
条件にまたがる場合。そこでは数を足すと、複数の条件を満たす行を二重カウントしてしまうので、
FILTER の結果に COUNTA をかける方が安全です。
日付・空白・非空白を数える
日付範囲は日付列に対する2つの条件です——SUMIFS と同じく、境界を DATE() で組み立てて
ロケール間でずれないようにします。
=COUNTIFS(OrderDate, ">="&DATE(2026,1,1), OrderDate, "<="&DATE(2026,3,31))
空かどうかは、条件は短いものの混同しやすいです。
=COUNTIFS(Notes, "") ' 本当に空のセル
=COUNTIFS(Notes, "<>") ' 非空白のセル(中身は何でも)
注意点を1つ。"" を返す数式が入ったセルは空に見えますが、空ではありません——
COUNTIFS(…, "") と COUNTBLANK で食い違います。「空白」セルが数式の結果なら、代わりに
"<>" の補集合で数えてください。
捨てるべき誤用:重複を除いた数
COUNTIFS への最も多い誤った期待が「異なる顧客は何社あるか」です。COUNTIFS は行を
数えるのであって、重複を除いた値を数えるのではありません——「ユニーク」が何かを理解
していません。今どきの答えは短い式1つです。
=COUNTA(UNIQUE(Customer)) ' 重複を除いた顧客数
=COUNTA(UNIQUE(FILTER(Customer, Region="West"))) ' West の重複を除いた顧客数
UNIQUE がリストを重複なしの値に畳み込み、COUNTA が
それを数えます——必要なら先にフィルターも。重複を除いた数を偽装するために
1/COUNTIF(…) の分数を入れた作業列を組んでいるなら(365 以前の定番ハック)、それが
COUNTA(UNIQUE()) に乗り換える合図です。
ExcelMaster の使いどころ
「今四半期、A1 の上限を超える期限切れ請求はいくつ?」は条件3つと日付範囲です——そして
噛んでくるのは ">"&A1 か ">A1" かという部分。ExcelMaster は、あなたの普通の
日本語の質問から COUNTIFS を書きます——連結も DATE() の境界も正しく。そして本当に
欲しいのが重複を除いた数なら、代わりに COUNTA(UNIQUE()) を持ち出します——誤用が
レポートの中で間違った数になる前に捕まえます。
よくある質問
セルを参照すると COUNTIFS が 0 を返すのはなぜ?
ほぼ確実に ">"&A1 ではなく ">A1" と書いています。セル参照が引用符の中にあると、
Excel は文字どおりの "A1" を探して何も見つけません。演算子を引用符に入れ、セルを連結
します:=COUNTIFS(範囲, ">"&A1)。
COUNTIF と COUNTIFS の違いは?
COUNTIF は条件を1つ、COUNTIFS は AND で結んだ1つ以上を取ります。引数の順番は両者で
同じなので、安全な習慣は常に COUNTIFS を使うこと——2つ目の条件が必要になった瞬間に
拡張できます。
OR / 1つの列で複数の値を数えるには?
値の配列に対する COUNTIF を SUM で足します:
=SUM(COUNTIF(Status, {"Open","Pending"}))。1行が持つ状態は1つだけなので、二重カウント
せずに、どれかに一致する行を数えます。
2つの日付の間の値を数えるには?
日付列に2つの条件を、DATE() で組み立てます:
=COUNTIFS(OrderDate, ">="&DATE(2026,1,1), OrderDate, "<="&DATE(2026,3,31))。
重複を除いた(ユニークな)値を数えるには?
COUNTIFS ではできません——行を数えるだけです。=COUNTA(UNIQUE(範囲)) を使い、部分集合の
中で重複を除きたいなら先にフィルターします:
=COUNTA(UNIQUE(FILTER(Customer, Region="West")))。
検証環境
検証環境: Excel 365(Windows 11)— 最終確認 2026-06-24。
関連ガイド: ExcelのSUMIFS関数 · ExcelのAVERAGEIFS関数 · ExcelのUNIQUE関数 · ExcelのFILTER関数
