COUNTIFは、条件に合うセルの個数を数える関数です。「東京の件数」「未処理の件数」といった集計に使います。
合計ではなく件数を数える点だけが SUMIF との違いで、書き方の考え方は同じです。Excel・Googleスプレッドシート両方で同じ書式が使えます。
書式
=COUNTIF(範囲, 条件)
| 引数 | 内容 |
|---|---|
| 範囲 | 数える対象の範囲 |
| 条件 | 判定の内容。文字列や比較式は " で囲む |
引数は2つだけです。SUMIF と違い、「数える範囲」を別に指定する必要はありません。
基本の使い方
| A | B | |
|---|---|---|
| 1 | 支店 | 売上 |
| 2 | 東京 | 1200 |
| 3 | 大阪 | 800 |
| 4 | 東京 | 1500 |
| 5 | 名古屋 | 950 |
=COUNTIF(A2:A5, "東京") → 2
数値の条件も同じように書けます。
=COUNTIF(B2:B5, ">=1000") → 2
条件をセル参照にすれば、入力で切り替えられます。
=COUNTIF(A:A, D1)
条件の書き方
| 条件 | 意味 |
|---|---|
"東京" |
東京と完全一致 |
">1000" |
1000より大きい |
">=1000" |
1000以上 |
"<>東京" |
東京以外 |
"" |
空欄 |
"<>" |
空欄でない |
"東*" |
「東」で始まる |
"*店" |
「店」で終わる |
"*営業*" |
「営業」を含む |
セルの値と比較したいとき
比較演算子とセル参照を組み合わせるには、& で連結します。
=COUNTIF(B:B, ">"&D1)
">D1" と書くと文字列の「D1」を探しに行きます。 ここが最も多い間違いです。
重複チェックに使う
COUNTIFの実務での最大の用途がこれです。
重複している行に印を付ける
=IF(COUNTIF(A:A, A2) > 1, "重複", "")
A列全体で自分と同じ値を数え、2件以上あれば重複と判定します。この数式を下方向にコピーするだけで、重複が一目で分かります。
2件目以降だけに印を付ける
上の書き方だと、重複している行がすべて「重複」になります。1件目は残して2件目以降だけ消したい場合は、範囲を「自分の行まで」に限定します。
=IF(COUNTIF($A$2:A2, A2) > 1, "削除対象", "")
範囲の開始だけを絶対参照($A$2)にするのがポイントです。下にコピーすると範囲が $A$2:A3、$A$2:A4 と伸びていき、「ここまでに自分と同じ値が何件あったか」を数えます。
入力規則で重複を防ぐ
データの入力規則 → カスタム数式に次を入れます。
=COUNTIF(A:A, A1) = 1
同じ値が既にあると入力できなくなります。後から掃除するより、入れさせないほうが確実です。
2つのリストを突き合わせる
「Aのリストにあって、Bのリストにないもの」を探すのにも使えます。
=IF(COUNTIF(B:B, A2) = 0, "Bに無い", "")
VLOOKUP で #N/A を見る方法もありますが、存在確認だけならCOUNTIFのほうが素直です。エラー処理が不要になります。
リストに含まれるか判定する
「東京・神奈川・千葉・埼玉のどれかか」を判定したいとき、OR を並べると長くなります。
=IF(OR(A2="東京", A2="神奈川", A2="千葉", A2="埼玉"), "首都圏", "地方")
別シートにリストを作れば、COUNTIFで1行で書けます。
=IF(COUNTIF(リスト!A:A, A2) > 0, "首都圏", "地方")
候補が増えても数式を触らずに済みます。 候補が5つを超えたらこちらに切り替えるのが実用的な目安です。
条件が2つ以上あるとき
COUNTIFは条件を1つしか取れません。「東京」かつ「1000以上」のような判定には COUNTIFS を使います。
=COUNTIFS(A2:A5, "東京", B2:B5, ">=1000")
COUNT・COUNTAとの違い
「入力済みの行数を数えたい」なら COUNTA です。COUNTは数値しか数えないので、文字列の列に使うと0になります。
注意: 数式が返した ""(空文字)は、見た目は空欄ですが COUNTA では1件として数えられます。ここは実務でよく引っかかります。
よくある失敗
数えられない・0になる
1. 余分なスペース
"東京 " と "東京" は別物です。元データを TRIM で整えてください。
2. 数値と文字列の食い違い
101(数値)と "101"(文字列)は別物です。セルが左寄せなら文字列です。
3. 比較演算子とセル参照を & でつないでいない
">"&D1 が正解です。
4. 全角と半角
"ABC" と "ABC" は一致しません。
意図より多く数えられる
ワイルドカードが効いてしまっている可能性があります。検索したい文字列に * や ? が含まれていると、任意の文字として解釈されます。文字そのものを探すなら ~* のように ~ を付けてください。
部分一致してしまう
COUNTIFは、条件に * を書かなければ完全一致です。ただしセル内改行や不可視文字が入っていると、一致しないのに一致しているように見えることがあります。LEN() で文字数を確認すると判別できます。
Excelとの違い
書式・挙動ともにExcelと同じです。 ワイルドカード、比較演算子、& での連結もすべて共通です。
Googleスプレッドシート特有の利点として、QUERY を使うとグループごとの件数を一度に出せます。
=QUERY(A:B, "select A, count(B) group by A", 1)
COUNTIFを支店の数だけ並べる代わりに、この1行で全支店の件数が出ます。集計表を作るならQUERYのほうが速いです。
まとめ
- – 書式は
=COUNTIF(範囲, 条件) - – 比較演算子は
">1000"のように"で囲む - – セル参照と組み合わせるときは
">"&D1 - – 重複チェックの定番は
COUNTIF(A:A, A2) > 1 - – 2件目以降だけなら
COUNTIF($A$2:A2, A2) > 1 - – 条件が2つ以上なら COUNTIFS
コメントを残す