スプレッドシートを使っていて、countifで複数条件を指定したいけれど、どう書けばいいか悩んでいませんか。日々の業務でデータを集計していると、AND条件やOR条件を組み合わせたり、特定の数値以上や以下、さらには空白セルやワイルドカードを使ったエラーのない使い方を知りたい場面がよくありますよね。実は、関数や条件の指定方法を少し工夫するだけで、複雑なデータ抽出が驚くほど簡単になります。この記事では、複数条件の指定における基本から、よくあるつまずきの解決策まで詳しく解説していきます。これを読めば、あなたの集計作業がグッと楽になるはずです。

- 複数列を対象にしたcountifs関数の基本ルールとAND条件の仕組み
- ワイルドカードや比較演算子を用いた部分一致や数値の絞り込み方
- エラーが発生する原因とquery関数などを使った応用的な解決策
- 別シートや別ファイルの参照時に知っておきたいパフォーマンス対策
スプレッドシートのcountif複数条件の基本
ここでは、複数の条件を指定してデータをカウントするための基本となる関数や、実務でよく使われる条件指定のテクニックについて解説していきます。まずは基本をしっかり押さえていきましょう。
複数列を対象とするcountifs関数の使い方
スプレッドシートで複数の条件を満たすデータを数えたいとき、一番よく使うのがCOUNTIFS(カウント・イフ・エス)関数ですね。名前の通り、COUNTIFの複数形みたいなイメージです。
この関数の基本構文は =COUNTIFS(条件範囲1, 条件1, [条件範囲2, 条件2,...]) となっています。ここで大事なのが、設定した条件がすべて「AND(かつ)」で評価されるという点です。つまり、指定した条件をすべて同時に満たしている行だけがカウントされる仕組みになっています。
【ポイント】行ごとの並行評価
スプレッドシートは1行目から順番に、「A列の条件クリア!B列の条件もクリア!よし、1件カウント!」というように、行単位で並行してチェックをしてくれます。片方しか満たしていない行はしっかり除外されるので、正確な絞り込みができるんですね。
数値の以上や以下を条件に指定する方法
売上が「100以上」とか、テストの点数が「50未満」のように、数値の範囲を条件にしたい場面も多いですよね。そんな時は比較演算子を使います。
スプレッドシートでは、この条件全体をダブルクォーテーション(””)で囲むのがルールになっています。例えば、100以上なら ">=100" と記述します。
よく使う比較演算子まとめ
| 記号 | 意味 | 入力例 |
|---|---|---|
| = | 等しい | “=100” |
| <> | 等しくない | “<>0” |
| < | 未満(含まない) | “<50” |
| <= | 以下(含む) | “<=50” |
| > | より大きい(含まない) | “>100” |
| >= | 以上(含む) | “>=100” |
さらに、条件の数値を別のセルに入力しておいて、それを引っ張ってきたい場合は、アンパサンド(&)でくっつけます。">=" & D1 のように書けば、D1セルの数字を変えるだけで集計結果もリアルタイムに変わるので、すごく便利でおすすめです。
文字列の部分一致や完全一致の指定手法
テキストを検索するとき、完全に一致する言葉を探すなら "合格" のようにそのまま書けばOKです。でも、「株式会社」が前についていたり後ろについていたり、表記が揺れているデータって結構ありますよね。
そういう時はワイルドカードの出番です。私は実務でよくアスタリスク(*)を使っています。
"新*"(前方一致):新潟、新幹線など"*株式会社*"(部分一致):前後どこに文字があっても「株式会社」を含めばカウント対象
また、文字数が決まっているフォーマットなら、1文字だけを代用するクエスチョンマーク(?)も使えます。"?田"なら「山田」や「本田」はカウントされますが、「小野田」は外れる、といった具合ですね。これを使いこなせると、データクレンジングが少し甘くても正確に集計できるので助かります。
日付や期間を条件にして集計するやり方
複数条件の集計で一番ハマりやすいのが、実は「日付」の設定なんです。期間を正しく入れたはずなのに、結果が「0」になってしまって焦ったこと、ありませんか?
これは、スプレッドシートの裏側で日付が「シリアル値(連続した数値)」として管理されていることが原因の多くを占めます。単に ">=2023/04/01" と文字で書いてしまうと、元のデータがきちんと日付形式になっていない場合、数値と文字の比較になってしまいエラー扱い(0件)になっちゃうんです。
確実な日付指定のやり方
日付でミスを防ぐなら、DATE関数を組み合わせるのが鉄則です。=COUNTIFS(A:A, ">=" & DATE(2023, 4, 1), A:A, "<=" & DATE(2023, 4, 30))
このように、開始日と終了日を独立した2つの条件として設定し、DATE関数をアンパサンドで繋ぐことで、純粋な数値同士の比較ができてエラーを防げます。
空白セルや空白以外をカウントする手順
「未対応のデータだけ数えたい」時は空白セル、「入力済みのデータだけ数えたい」時は非空白セルをカウントしますよね。
複数条件の中で「空白」を指定したい場合は、条件に ""(中身のないダブルクォーテーション2つ)を指定します。逆に「空白以外」なら "<>" を使います。
ただ、ここで気をつけたいトラップが2つあります。1つ目は「見えないスペース文字」の混入です。スペースが1つでも入っていると、スプレッドシートは「文字が入っている(空白以外)」と判定してしまいます。2つ目は数式の結果として表示されている空白(ゼロレングス文字列)です。これらは単純な見た目だけでは判断できないため、入力規則を設けるなどして、元のデータを綺麗に保つことが何より大切かなと思います。
スプレッドシートのcountif複数条件の応用

ここからは、少し複雑な条件設定や別シートからのデータ参照など、より実践的な応用テクニックについて見ていきます。エラーの対処法も合わせて紹介しますね。
またはを表すOR条件と複数条件の組み合わせ
COUNTIFS関数の弱点は「AND条件(すべて満たす)」しかできないことです。「営業部、またはマネージャー」のようなOR条件でカウントしたい場合、1つのCOUNTIFSでは処理できません。
これを関数だけで解決しようとすると、「営業部の数」と「マネージャーの数」を足し算して、そこから「営業部かつマネージャーの数(重複分)」を引き算する、というベン図のような数式を書くことになります。
=COUNTIFS(...) + COUNTIFS(...) - COUNTIFS(...)
条件が少ないうちはこれでもいいんですが、増えてくると数式が長すぎて解読不能になってしまうので、後述するQUERY関数などを検討するタイミングかもしれません。
別シートや別ファイルから参照する方法
データが膨大になると、入力用のシートと集計用のシートを分けるのがベストプラクティスです。同じファイル内の別シートを参照する場合は、シート名の後ろに「!」をつけて =COUNTIFS(商品表!$B$2:$B$10, "セーター") のように書きます。
では、全く別のスプレッドシートファイルからデータを参照したい時はどうでしょう?この場合は IMPORTRANGE関数 を使います。ただ、COUNTIFSの中に直接IMPORTRANGEをいくつも入れてしまうと、計算のたびに外部へアクセスが走り、ファイル全体がものすごく重くなってしまいます。
パフォーマンス低下を防ぐコツ
別ファイルのデータを扱うときは、一度現在のファイルの非表示シートなどにIMPORTRANGEで一括取得(ミラーリング)しておき、そのシートに対して通常のCOUNTIFSを使うのがおすすめです。これで計算負荷を最小限に抑えられます。
発生しやすいエラーの根本原因と解決策
COUNTIFSを使っていて最もイライラするのが #VALUE! エラーの出現ではないでしょうか。
このエラーが出る最大の理由は、「指定した範囲の行数(高さ)が揃っていないこと」です。例えば、条件1の範囲を A2:A10 にしているのに、条件2の範囲を B2:B12 にしてしまうと、スプレッドシートは「行の数が違うから比較できないよ!」とエラーを返してしまいます。
解決策は至ってシンプルで、範囲をピタッと揃えることです。もっと簡単なのは A:A や B:B のように「列全体」を指定してしまうアプローチです。これならデータが何万行に増えようが範囲の不一致エラーは起きないので、私はよくこの方法を使っています。(1行目のタイトルが条件に合致しないようにだけ気をつけてくださいね)
query関数を用いた高度な複数条件集計
先ほど「OR条件は数式が長くなる」とお話ししましたが、その限界を突破できるのがGoogleスプレッドシート特有の QUERY関数 です。これ、本当に強力なんです。
QUERY関数を使えば、SQLのような直感的な書き方でデータを抽出できます。例えば「B列が500以下、またはA列が空白」という条件なら、以下のように書けます。
=QUERY(A1:B5, "SELECT * WHERE B <= 500 OR A IS NULL")
これを COUNTA などで囲んであげれば、複雑なOR条件でもスッキリと件数をカウントできます。COUNTIFSで限界を感じたら、ぜひQUERY関数の WHERE句(条件指定)を試してみてください。
スプレッドシートのcountif複数条件まとめ
ここまで、複数条件でのデータ集計について、基本から応用までたっぷりとお伝えしてきました。
スプレッドシートでcountif複数条件を自在に扱えるようになれば、単なる表計算から一歩進んだデータ分析ができるようになります。COUNTIFSのANDロジックやワイルドカード、そしてQUERY関数へのステップアップなど、目的に合わせてツールを使い分けることが大切ですね。また、エラーを防ぐためには、入力元のデータの表記揺れをなくす(データクレンジング)ことも同じくらい重要です。
※最後に確認とお願い
この記事でご紹介した数式の挙動や解決策は、あくまで一般的な目安となります。複雑な条件を扱う場合、データの状態によって結果が変わることもありますので、正確な仕様についてはGoogleの公式サイトもあわせてご確認ください。また、社内の重要な業務システムに関する変更を行う際は、最終的な判断をシステム管理者などの専門家にご相談されることをおすすめします。
データ集計のちょっとした工夫で、皆さんの毎日の作業時間が少しでも短縮できたら嬉しいです。ぜひ、実際の業務データで試してみてくださいね!
