エクセルでデータを集計する際、「この条件とあの条件のどちらかに当てはまるセルを数えたい」という場面は非常に多く存在します。
そんなときに活躍するのが、COUNTIF関数を応用した複数条件のOR集計です。
単純に1つの条件でセルを数えるだけなら基本的なCOUNTIF関数で対応できますが、複数の条件を組み合わせてカウントしたい場合は少し工夫が必要になります。
本記事では、COUNTIF関数を使ったOR条件による複数条件カウントの方法を、サンプルデータとイメージ図を交えながらわかりやすく解説していきます。
AND条件との違いや、COUNTIFS関数との使い分けについても触れていきますので、ぜひ最後までご覧ください。
COUNTIF関数で複数条件(OR)のカウントをする基本的な考え方
まず最初に、COUNTIF関数で複数条件をOR(または)でカウントするための根本的な考え方を押さえておきましょう。
COUNTIF関数は、1つの条件に一致するセルの個数を返す関数です。
そのため「条件Aまたは条件Bに当てはまるセルを数える」という処理を1つの関数だけで実現することはできません。
では複数条件のOR集計はどうやるのかというと、COUNTIF関数を条件の数だけ足し算するというシンプルな方法が基本となります。
【OR条件の基本式】
=COUNTIF(範囲,条件1)+COUNTIF(範囲,条件2)
この考え方を応用することで、3つ以上の条件でも同様に対応できます。
ただし、重複カウントに注意が必要です。
たとえば、条件Aと条件Bの両方に当てはまるデータが存在する場合、それが2回カウントされてしまいます。
その場合はCOUNTIFS関数で重複分を差し引く処理を組み合わせることが必要になりますが、まずは基本の足し算から理解を深めていきましょう。
以下のサンプルデータを使って解説を進めます。
| 行 | A列:商品名 | B列:カテゴリ | C列:売上数 | D列:担当者 |
|---|---|---|---|---|
| 1 | 商品名 | カテゴリ | 売上数 | 担当者 |
| 2 | 桜餅 | 和菓子 | 120 | 田中 |
| 3 | 柏餅 | 和菓子 | 85 | 鈴木 |
| 4 | マシュマロ | 洋菓子 | 200 | 田中 |
| 5 | チョコ | 洋菓子 | 150 | 佐藤 |
| 6 | アボカド | 野菜 | 60 | 鈴木 |
| 7 | カボチャ | 野菜 | 90 | 田中 |
| 8 | マグロ | 魚介 | 310 | 佐藤 |
| 9 | カツオ | 魚介 | 270 | 鈴木 |
| 10 | ハラス | 魚介 | 180 | 田中 |
| 11 | ボルト | 工具 | 400 | 佐藤 |
| 12 | ネジ | 工具 | 350 | 鈴木 |
このデータはA列に商品名、B列にカテゴリ、C列に売上数、D列に担当者名が入力されており、1行目がヘッダーとなっています。
このサンプルを使いながら、複数条件のOR集計の方法を順を追って確認していきましょう。
【操作のポイント】COUNTIF関数でOR条件を実現するには、条件ごとにCOUNTIF関数を作成して足し算する方法が基本です。1つのCOUNTIF関数だけではOR条件に対応できない点を押さえておきましょう。
COUNTIF関数を足し算してOR条件で複数カテゴリの個数をカウントする方法
では実際に、COUNTIF関数を足し算してOR条件でカウントする方法を確認していきましょう。
先ほどのサンプルデータを使って、「カテゴリが和菓子または洋菓子の商品数を数える」という操作を行います。
この場合、B列の「和菓子」に一致する件数と「洋菓子」に一致する件数をそれぞれCOUNTIFで求めて足し合わせるのが基本的なアプローチです。
【数式】
=COUNTIF(B2:B12,”和菓子”)+COUNTIF(B2:B12,”洋菓子”)
この数式をセルF2に入力すると、B列の中に「和菓子」が2件、「洋菓子」が2件存在するため、結果として4が返されます。
足し算の形にするだけで、OR条件のカウントが非常にシンプルに実現できるのがこの方法の魅力です。
条件が3つ以上になった場合も同様に、COUNTIF関数をさらに追加して足していくだけです。
【3条件のOR数式例】
=COUNTIF(B2:B12,”和菓子”)+COUNTIF(B2:B12,”洋菓子”)+COUNTIF(B2:B12,”魚介”)
この場合は和菓子2件・洋菓子2件・魚介3件の合計で7が返ります。
条件の数に応じて柔軟に式を拡張できるのがCOUNTIF足し算の強みと言えるでしょう。
数式を入力するセルは任意の場所で構いません。
大切なのは範囲を固定(絶対参照)するかどうかの判断で、他のセルにコピーして使う場合は$記号を付けた絶対参照にしておくと安全です。
【操作のポイント】COUNTIF関数をOR条件で使う場合は、条件の数だけCOUNTIFを「+」でつないで合計します。他のセルへコピーする際は範囲部分を$で絶対参照にしておくと数式のズレを防げます。
SUMPRODUCT関数を使ってOR条件を1つの数式でカウントする方法
COUNTIF関数の足し算はシンプルでわかりやすいですが、条件が増えるほど数式が長くなるというデメリットがあります。
そんなときに役立つのが、SUMPRODUCT関数を使った1行完結のOR条件カウントです。
SUMPRODUCT関数は配列を扱える関数で、複数の条件を組み合わせた柔軟な集計が得意です。
【SUMPRODUCT関数でOR条件カウントする基本式】
=SUMPRODUCT(((B2:B12=”和菓子”)+(B2:B12=”洋菓子”))>0)*1)
※より正確な書き方
=SUMPRODUCT(((B2:B12=”和菓子”)+(B2:B12=”洋菓子”)>0)*1)
この数式の仕組みを理解するために、少し分解して説明しましょう。
まず(B2:B12=”和菓子”)の部分は、B2からB12の各セルが「和菓子」に一致するかどうかをTRUE(1)またはFALSE(0)の配列として評価します。
それを(B2:B12=”洋菓子”)と足すことで、どちらかに一致するセルは1以上の値になります。
最後に>0の条件でTRUE/FALSEに変換し、*1で数値化してSUMPRODUCTが合計するという流れです。
この方法では重複カウントも自動的に排除されるため、条件Aと条件Bの両方に該当するデータがあっても1回しかカウントされません。
重複が起きにくい文字列条件の場合は、よりシンプルに以下の書き方でも動作します。
【シンプルなSUMPRODUCT OR条件式】
=SUMPRODUCT((B2:B12=”和菓子”)+(B2:B12=”洋菓子”))
※重複がない場合はこちらでも同結果
SUMPRODUCT関数は少し難しく見えるかもしれませんが、条件が多い場合や重複排除が必要な場合には非常に強力な選択肢です。
SUMPRODUCT関数の配列の仕組みを理解する
SUMPRODUCT関数が内部でどのように動いているかを理解すると、応用の幅が大きく広がります。
たとえば(B2:B12=”和菓子”)という式は、エクセルの内部では以下のような配列として処理されます。
B2(和菓子)→TRUE、B3(和菓子)→TRUE、B4(洋菓子)→FALSE、B5(洋菓子)→FALSE…というように、各セルに対してTRUEかFALSEが割り当てられます。
エクセルはTRUEを1、FALSEを0として扱うため、条件に一致するセルの数がそのまま合計されます。
この仕組みを理解しておくと、条件が数値の場合や、より複雑な条件式を組み立てる際にも応用しやすくなります。
数値条件でSUMPRODUCTのOR条件カウントを使う
文字列だけでなく、数値条件でのOR集計もSUMPRODUCT関数で対応可能です。
たとえば「売上数が100未満、または300以上の商品件数を数えたい」という場合は以下のように書きます。
【数値OR条件の例】
=SUMPRODUCT(((C2:C12<100)+(C2:C12>=300)>0)*1)
C列の売上数を参照し、100未満(アボカド:60)または300以上(マグロ:310、ボルト:400、ネジ:350)に該当する商品をカウントします。
この場合は4件が返ります。
数値範囲のOR条件は、通常のCOUNTIF足し算でも対応できますが、SUMPRODUCT関数のほうが1行でまとめやすいため、慣れてきたら積極的に活用してみましょう。
SUMPRODUCT関数でOR条件とAND条件を組み合わせる
さらに高度な集計として、OR条件とAND条件を組み合わせる方法も紹介します。
「カテゴリが和菓子または洋菓子、かつ担当者が田中の件数を数える」という場合は以下のようになります。
【OR+AND条件の例】
=SUMPRODUCT(((B2:B12=”和菓子”)+(B2:B12=”洋菓子”)>0)*(D2:D12=”田中”))
OR部分を括弧で囲んで>0で真偽判定し、AND条件の(D2:D12=”田中”)との積(*)を取ることで「OR条件かつ担当者が田中」という複合条件が実現します。
サンプルデータでは桜餅(和菓子・田中)とマシュマロ(洋菓子・田中)の2件が該当するため、結果は2となります。
【操作のポイント】SUMPRODUCT関数でOR条件を扱う際は「条件式を+でつなぎ、>0で判定」が基本パターンです。AND条件と組み合わせる場合は、OR部分をまとめて括弧で囲んでから*でAND条件を掛け合わせます。
COUNTIFS関数との違いと使い分け
「複数条件でカウントするならCOUNTIFS関数ではないの?」と思われた方もいるかもしれません。
ここでCOUNTIFSとCOUNTIFの違いを整理しておきましょう。
COUNTIFS関数は複数条件のAND(かつ)カウントに特化した関数です。
すべての条件を同時に満たすセルだけを数えるため、OR条件には対応していません。
【COUNTIFS関数の構文】
=COUNTIFS(条件範囲1,条件1,条件範囲2,条件2,…)
【使用例:カテゴリが和菓子かつ担当者が田中の件数】
=COUNTIFS(B2:B12,”和菓子”,D2:D12,”田中”)
上記の例では「和菓子かつ田中」という両方の条件を満たすデータを数えるため、桜餅(1件)のみが該当し、結果は1となります。
COUNTIFSでOR条件を擬似的に実現する方法
COUNTIFSはAND条件専用ですが、COUNTIFSを足し算することでOR条件を擬似的に表現することができます。
【COUNTIFSを足し算してOR条件を実現する例】
=COUNTIFS(B2:B12,”和菓子”,D2:D12,”田中”)+COUNTIFS(B2:B12,”洋菓子”,D2:D12,”田中”)
これは「(和菓子かつ田中)または(洋菓子かつ田中)」という条件になり、桜餅とマシュマロの2件がカウントされます。
このようにCOUNTIFSの足し算でも複雑なOR条件に対応できますが、条件が増えると式がかなり長くなる点に注意が必要です。
COUNTIF・COUNTIFS・SUMPRODUCTの使い分け早見表
3つの関数の使い分けを整理すると以下のようになります。
| 関数 | 向いている条件 | 特徴 |
|---|---|---|
| COUNTIF | 1条件 / OR条件(足し算) | シンプルでわかりやすい |
| COUNTIFS | AND条件 / OR条件(足し算) | 複数条件のANDが得意 |
| SUMPRODUCT | OR条件・AND条件・複合条件 | 1行で複雑な条件に対応 |
条件が少なくシンプルな場合はCOUNTIF、AND条件が中心ならCOUNTIFS、複雑な条件や重複排除が必要な場合はSUMPRODUCTという使い分けが実践的です。
重複カウントが発生するケースと対処法
COUNTIF関数の足し算でOR条件を実現する場合、1つのデータが複数の条件に同時に該当すると重複カウントが起きる可能性があります。
たとえば、「売上数が100以上」と「売上数が200以下」という2つの条件を足し算でカウントすると、100〜200の範囲のデータが2回カウントされます。
このような場合は、SUMPRODUCT関数の>0パターンを使うか、重複分をCOUNTIFS関数で差し引く方法で対処します。
【重複分を差し引く方法の例】
=COUNTIF(C2:C12,”>=100″)+COUNTIF(C2:C12,”<=200″)-COUNTIFS(C2:C12,”>=100″,C2:C12,”<=200″)
このように「A+B-(AかつB)」の形にすることで重複を除いた正確な件数が求まります。
【操作のポイント】COUNTIFはAND条件には対応できませんが、COUNTIFSはAND条件に対応しています。OR条件が必要な場合はそれぞれを足し算するか、SUMPRODUCT関数を活用しましょう。重複が発生しうる条件の場合は「A+B-(AかつB)」の式で正確な件数を求めます。
ワイルドカードを使ったCOUNTIF OR条件の応用テクニック
COUNTIF関数では、ワイルドカード文字(*や?)を使った部分一致の条件指定ができます。
これをOR条件の足し算と組み合わせることで、より柔軟な集計が可能になります。
アスタリスク(*)を使った部分一致カウント
アスタリスク(*)は「任意の文字列」を意味するワイルドカードです。
たとえば「商品名に”マ”が含まれる件数」を数えたい場合は以下のように書きます。
【ワイルドカードの使用例】
=COUNTIF(A2:A12,”*マ*”)
このサンプルではマシュマロ(マを含む)とマグロ(マを含む)の2件がヒットします。
これをOR条件と組み合わせて「商品名に”マ”が含まれる、または担当者が佐藤」という条件にすることも可能です。
【ワイルドカード+OR条件の例】
=COUNTIF(A2:A12,”*マ*”)+COUNTIF(D2:D12,”佐藤”)
ただしこの場合、マシュマロ(担当者が田中)とマグロ(担当者が佐藤)が両方ヒットし、マグロは「*マ*」条件と「佐藤」条件の両方に当てはまりますので、重複カウントに注意が必要です。
クエスチョンマーク(?)を使った文字数指定のカウント
クエスチョンマーク(?)は「任意の1文字」を意味するワイルドカードです。
たとえば「商品名が3文字のもの」を数えたい場合は以下のように書きます。
【クエスチョンマークの使用例】
=COUNTIF(A2:A12,”???”)
サンプルでは桜餅・柏餅・チョコ・アボカド・カボチャ・マグロ・カツオ・ハラスなどが対象になりますが、3文字(全角)のものがカウントされます。
マシュマロは4文字なので除外される点がポイントです。
セル参照で条件を動的に切り替える方法
COUNTIF関数の条件部分は文字列直接入力だけでなく、セル参照で動的に条件を切り替えることもできます。
たとえばG1セルに「和菓子」、G2セルに「洋菓子」と入力しておき、H1セルに以下の数式を入力します。
【セル参照を使ったOR条件の例】
=COUNTIF($B$2:$B$12,G1)+COUNTIF($B$2:$B$12,G2)
G1やG2の内容を変更するだけで集計条件が即座に切り替わるため、ダッシュボードや集計表の作成に非常に便利な使い方です。
【操作のポイント】ワイルドカード(*や?)を条件に使うことで部分一致や文字数指定のカウントができます。条件をセル参照にすることで、G列の値を変えるだけで集計内容が自動的に変わる動的な集計表を作成できます。
COUNTIF関数でOR条件の人数・個数を集計する実践的な活用シーン
ここまで学んだ知識を活かして、実際の業務でよく登場する集計シーンを確認してみましょう。
複数担当者の合計担当件数を人数でカウントする
「担当者が田中または鈴木の件数を数えたい」という場面は営業集計や業務管理でよく発生します。
【担当者OR条件の件数カウント】
=COUNTIF(D2:D12,”田中”)+COUNTIF(D2:D12,”鈴木”)
サンプルデータでは田中が4件(桜餅・マシュマロ・カボチャ・ハラス)、鈴木が4件(柏餅・アボカド・カツオ・ネジ)のため、合計8件が返ります。
このように担当者ごとの集計を OR でまとめるだけで、特定グループの合計担当件数を素早く把握できます。
複数カテゴリの売上対象商品数を個数で確認する
「魚介または工具カテゴリの商品数を知りたい」というケースも同様に対応できます。
【カテゴリOR条件の個数カウント】
=COUNTIF(B2:B12,”魚介”)+COUNTIF(B2:B12,”工具”)
魚介は3件(マグロ・カツオ・ハラス)、工具は2件(ボルト・ネジ)のため、合計5件となります。
カテゴリ横断の件数集計は商品管理や在庫確認の場面でも活躍します。
数値の下限・上限どちらかを満たす件数をOR条件でカウントする
売上数が一定基準を超えるか、または下回るデータを数えたいケースでもOR条件は役立ちます。
【数値OR条件の集計例】
=COUNTIF(C2:C12,”<100″)+COUNTIF(C2:C12,”>=300″)
売上数が100未満はアボカド(60)の1件、300以上はマグロ(310)・ボルト(400)・ネジ(350)の3件で、合計4件が返ります。
この数値OR条件は、異常値検出や閾値を超えたデータの洗い出しなど、品質管理や分析の場面でも非常に実用的です。
【操作のポイント】実務でのOR条件カウントは「担当者の件数まとめ」「カテゴリ横断集計」「数値の上下限チェック」など幅広い場面で活躍します。集計表にラベルと数式をセットで配置しておくと管理がしやすくなります。
まとめ:COUNTIFで複数条件のOR集計・カウント・個数・人数を使いこなす
本記事では、エクセルのCOUNTIF関数を使った複数条件のOR集計・カウント方法について、基本から応用まで幅広く解説しました。
COUNTIF関数そのものはOR条件に対応していませんが、条件の数だけCOUNTIF関数を足し算することでシンプルにOR集計を実現できます。
重複が発生する可能性がある場合や、条件が多くて式が長くなる場合は、SUMPRODUCT関数の配列計算が強力な代替手段となります。
また、COUNTIFSはAND条件専用ですが、COUNTIFSを足し算することでOR条件にも対応できるため、AND+OR条件の複合集計にも柔軟に対応可能です。
ワイルドカードを使った部分一致カウントやセル参照による動的な条件切り替えも組み合わせると、実務で即戦力になる集計表を作成できるようになります。
人数カウントや個数集計、売上分析など、さまざまな場面でCOUNTIF関数のOR条件を活用して、エクセル作業の効率をぐっと高めていきましょう。