COUNTIF関数の使い方|条件に合う件数を数える

執筆者:

カテゴリ:

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との違い

関数 数えるもの
COUNT 数値が入っているセル
COUNTA 空欄でないセル(文字列も含む)
COUNTIF 条件に合うセル

「入力済みの行数を数えたい」なら 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

関連する関数

  • COUNTIFS — 条件が複数あるときの件数
  • COUNT — 数値の入ったセルを数える
  • SUMIF — 条件に合うものを合計する
  • UNIQUE — 重複を除いた一覧を出す
  • 関数一覧に戻る

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です