PR

ExcelのCOUNTIFで複数条件(AまたはB)を数える方法|OR条件をわかりやすく解説

Excel
記事内に広告が含まれています。

Excelで「商品Aと商品Bの件数をまとめて数えたい」「営業部または総務部に該当する人数を集計したい」と思ったことはありませんか。

COUNTIF関数は1つの条件に一致するセルを数える関数なので、複数条件をそのまま並べて指定することはできません。
ただし、「AまたはB」というOR条件なら、COUNTIF関数を条件ごとに作成し、結果を足すことで簡単に集計できます。

この記事では、COUNTIF関数で複数条件のいずれかに一致するセルを数える方法を、商品Aと商品Bの集計例で解説します。
条件が増えたときに式を短くする方法や、COUNTIFS関数との違い、二重カウントを防ぐ考え方も紹介します。

結論:AまたはBはCOUNTIF関数を足して数える

以下のように、商品名がB列にある表があったとします。

この場合、「A」または「B」の商品件数を数える場合は、次の数式を使用します。

=COUNTIF(B2:B13,"A")+COUNTIF(B2:B13,"B")

前半のCOUNTIF関数で商品Aを数え、後半で商品Bを数えています。
2つの結果を「+」で足すため、AまたはBに一致する合計件数が求められます。

今回のサンプルではAが4件、Bが4件なので、結果は8件です。

COUNTIF関数の基本的な書式では、1つのCOUNTIFにつき検索条件は1つ

COUNTIF関数の基本的な書式は次のとおりです。

=COUNTIF(範囲,検索条件)

「範囲」は調べるセル範囲、「検索条件」は数えたい値です。
たとえば、B2:B13にある商品Aの個数を数える式は次のようになります。

=COUNTIF(B2:B13,"A")

COUNTIF関数の1つの式で指定できる検索条件は1つです。
そのため、AとBのように複数の値を対象にする場合は、条件ごとにCOUNTIF関数を作ります。

👉なお、COUNTIF関数は条件に一致する件数を数えるだけでなく、「同じ値が何番目に登場したか」を判定することもできます。
先着順や受付順などを自動で表示したい場合は、以下の記事も参考にしてください。

条件が3つ以上なら配列定数を使うと短く書ける

2つの条件だけならいいですが、3つ以上になると数式がどんどん増えてしまうので、とても分かりにくくなってしまいます。

例えば先ほどの表で、A、B、Cの3種類を数える場合、COUNTIF関数を3つ足しても計算できます。

=COUNTIF(B2:B13,"A")+COUNTIF(B2:B13,"B")+COUNTIF(B2:B13,"C")

ただし、これでは条件が増えるほど式が長くなり、数式が読みづらくなってしまいます。
その場合は、配列定数を使うことでシンプルに計算することができます。

配列定数で条件を指定するには、以下のように入力します。

=SUM(COUNTIF(B2:B13,{"A","B","C"}))

{"A","B","C"} は、A、B、Cという複数の条件をまとめたものです。
COUNTIF関数が各条件の件数を返し、SUM関数がその結果を合計します。

実行結果は以下の通りです。

Microsoft 365のExcelでは、通常どおりEnterキーで確定できます。
条件が複雑・多くなる場合は、配列定数を活用してみてください。

COUNTIFとCOUNTIFSの違い|COUNTIFSは複数条件をすべて満たす件数を数える

名前が似ているため、COUNTIF関数とCOUNTIFS関数を混同しやすい点に注意してください。

COUNTIFS関数は、複数の条件をすべて満たす行を数えるときに使います。
たとえば、C列が「東日本」で、かつB列が「A」の件数を数える式は次のとおりです。

=COUNTIFS(B2:B13,"A",C2:C13,"東日本")

この式は「商品がA」かつ「地域が東日本」というAND条件です。

一方、「商品がAまたはB」というOR条件を1つの列で数える場合は、次の式が分かりやすくなります。

=COUNTIF(B2:B13,"A")+COUNTIF(B2:B13,"B")

「または」ならCOUNTIFを足す、「かつ」ならCOUNTIFSと覚えると、式を選びやすくなります。

👉COUNTIFS関数は、複数条件を使ったランキング作成にも活用できます。
部署別・カテゴリ別など、条件を絞って順位を付けたい場合は、以下の記事も参考にしてください。

別々の列でAまたはBを数えるときは二重カウントに注意

同じ列のセルには、通常「A」と「B」を同時に入力できません。
そのため、完全一致のAとBを別々に足しても、同じセルを二重に数えることはありません。

しかし、条件を別々の列に指定する場合は事情が変わります。
たとえば「B列がA、またはC列が東日本」という条件で、両方に当てはまる行があるとします。

単純に次の2つを足すと、両方を満たす行が2回数えられます。

=COUNTIF(B2:B13,"A")+COUNTIF(C2:C13,"東日本")

1行を1件として数えたい場合は、両方を満たす件数を引きます。

=COUNTIF(B2:B13,"A")+COUNTIF(C2:C13,"東日本")-COUNTIFS(B2:B13,"A",C2:C13,"東日本")

これは「Aの件数+東日本の件数-Aかつ東日本の件数」という考え方です。
複数列を対象にする場合は、同じ行が重なっていないか確認してください。

COUNTIFで複数条件がうまく数えられないときの確認点

COUNTIFSにAとBを並べていないか

次の式は、同じセルがAであり、同時にBでもあることを求めるため、通常は0になります。

=COUNTIFS(B2:B13,"A",B2:B13,"B")

AまたはBを数えたい場合は、COUNTIF関数を足してください。

文字の前後にスペースが入っていないか

Excelでは「A」と「A 」は異なる文字列です。
見た目が同じでも末尾に空白があると、完全一致のCOUNTIFでは数えられません。

不要なスペースを削除するか、TRIM関数で整えてから集計します。

表記ゆれや不要な文字が入っていないか

前後のスペースや見えない文字が含まれていると、COUNTIFで期待どおりに数えられない場合があります。
TRIM関数やCLEAN関数を使ってデータを整えてから集計してください。

範囲がずれていないか

式をコピーしたときに範囲が動く場合は、$B$2:$B$13 のように絶対参照にします。

=COUNTIF($B$2:$B$13,"A")+COUNTIF($B$2:$B$13,"B")

よくある質問

Q1.COUNTIFで3つ以上の条件を指定できますか?

できます。
COUNTIF関数を条件の数だけ足すか、以下のように配列定数を使います。

=SUM(COUNTIF(B2:B13,{"A","B","C"}))

Q2.AまたはBを含むセルを数える場合も同じ式ですか?

部分一致で「AまたはBを含むセル」を数える場合は、ワイルドカード(*)を使います。

=COUNTIF(B2:B13,"*A*")+COUNTIF(B2:B13,"*B*")

*A*は「文字列のどこかにAを含むセル」、*B*は「文字列のどこかにBを含むセル」を数える条件です。

ただし、1つのセルにAとBの両方が含まれている場合は、そのセルが2回数えられてしまいます。

1つのセルを1件として数えたい場合は、AとBの両方を含むセルの件数を引きます。

=COUNTIF(B2:B13,"*A*")+COUNTIF(B2:B13,"*B*")-COUNTIFS(B2:B13,"*A*",B2:B13,"*B*")

完全一致で「AまたはB」を数える場合と、部分一致で「AまたはBを含むセル」を数える場合では考え方が異なるため、二重カウントに注意してください。

Q3.COUNTIFとCOUNTIFSはどちらを使えばよいですか?

1つの列でAまたはBを数えるならCOUNTIF関数の足し算、
複数の条件をすべて満たす行を数えるならCOUNTIFS関数が適しています。

まとめ

COUNTIF関数で「AまたはB」という複数条件を集計する基本式は次のとおりです。

=COUNTIF(B2:B13,"A")+COUNTIF(B2:B13,"B")

条件が多い場合は、次のように配列定数とSUM関数を組み合わせると短く書けます。

=SUM(COUNTIF(B2:B13,{"A","B"}))

「または」はCOUNTIFを足し、「かつ」はCOUNTIFSを使うのが判断の目安です。
別々の列をOR条件で数えるときは、両方を満たす行の二重カウントにも注意しましょう。

ろじゃー

仕事・子育てに奮闘中の社会人です。
仕事でも日常生活でも、ちょっとでも便利になることが紹介できるブログを書いています!
 
仕事柄、PC操作やエクセル、VBAなどは得意です!
Excel歴は10年以上の事務職。
関数やVBAを活用して、資料作成やデータ分析をはじめとした様々な業務の効率化・自動化に取り組んできました。
 
このブログでは、実際の業務で使える効率化テクニックを発信しています。
「わからない」や「困った」など問題を抱える方や、もっと効率化したいと思っている方に、少しでも役立てれば幸いです!

ご質問・ご相談など、お気軽にご連絡ください。

🥷 「現代で暮らすゆる忍者」ラインスタンプシリーズ公開中!日常や仕事、夫婦の会話など様々なシーンを製作しています
▶ LINEスタンプ一覧はこちら

ろじゃーをフォローする
ご質問・ご相談はこちらへ!
 ろじゃー|日々、ちょっとずつ良くなることを目指すブロガー
Excel歴10年以上。VBAや関数、業務効率化などを発信中。
📩 お問い合わせはこちら
Excel
シェアする
ろじゃーをフォローする

コメント

タイトルとURLをコピーしました