「リストの中から特定の名前の人が何人いるか数えたい」「1万円以上の売上があった件数だけを抽出したい」など、Excelを使っていて「条件に合うデータの数」を確認したい場面は多いものです。
目視で一つひとつ数えたり、フィルターで何度も絞り込んだりしていると、データ量が増えたときにミスが起きやすくなります。そんな悩みを解決してくれるのが、「COUNTIF(カウントイフ)関数」と「COUNTIFS(カウントイフス)関数」です。
見た目が似ているこの2つの関数ですが、決定的な違いは「指定できる条件の数」にあります。この記事では、初心者の方に向けて、それぞれの使い方と使い分けの基準を分かりやすく解説します。
COUNTIF関数とCOUNTIFS関数の根本的な違い
まず結論からお伝えすると、この2つの関数の最大の違いは「条件をひとつだけ指定するか、複数指定できるか」という点です。
COUNTIF関数:単一の条件で数える
COUNTIF関数は、指定した範囲の中から「1つの条件」に一致するセルの個数を数えるための関数です。 例えば、「担当者が佐藤さんの案件がいくつあるか」や、「数量が100以上のデータがいくつあるか」といった、シンプルな集計に向いています。
COUNTIFS関数:複数の条件をすべて満たすものを数える
一方で、末尾に複数形の「S」がついたCOUNTIFS関数は、複数の条件を指定でき、それら「すべてを満たす(AND条件)」データの個数を数えることができます。 例えば、「受注営業所が東京本店」であり、かつ「数量が100以上」である、という2つの条件を同時に満たすデータだけをカウントしたい場合に活用します。
「それなら最初からCOUNTIFS関数だけ使えばいいのでは?」と思うかもしれません。しかし、条件がひとつだけのときは、COUNTIF関数の方が構文がシンプルで分かりやすく、入力の手間も少なくなります。そのため、状況に合わせて使い分けるのが効率的です。
【基本】COUNTIF関数の使い方と構文
まずは、基本となるCOUNTIF関数の使い方を見ていきましょう。
基本構文
COUNTIF関数の書き方は以下の通りです。 `=COUNTIF(範囲, 検索条件)`
- 範囲:数えたいセルが含まれているグループです。数値や文字列が入っている範囲を指定します。
- 検索条件:どのようなデータを数えたいかという条件を指定します。
具体的な設定例
例えば、顧客リストのA列に担当者名が並んでおり、その中から「佐藤」さんの件数を数えたい場合は、次のように入力します。 `=COUNTIF(A:A, "佐藤")`
このように、文字列を条件にする場合は、必ずダブルクォーテーション(" ")で囲むのがルールです。
数値や比較演算子を使った条件指定
数値を使って「〇〇以上」などの条件を指定したい場合は、比較演算子と値を組み合わせて使います。
- 100以上を数える場合:`">=100"`
- 32を数える場合:`32` (数値の場合は引用符がなくても動作しますが、演算子と合わせる場合は引用符が必要です)
また、条件を直接入力せず、あるセル(例:A1セル)に入力された値を使いたい場合は、`">="&A1` のように、演算子をダブルクォーテーションで囲み、`&` でセル参照と結合させます。これにより、A1セルの値を変えるだけで集計結果が自動的に更新される便利な表が作れます。
【ステップアップ】COUNTIFS関数の使い方と構文
条件が複数になる場合は、COUNTIFS関数を使いましょう。この関数はCOUNTIFの「上位互換」のような存在で、最大127組まで範囲と条件のペアを指定できます。
基本構文
`=COUNTIFS(条件範囲1, 検索条件1, [条件範囲2, 検索条件2], …)`
COUNTIFとの違いは、条件のセットを後ろにどんどん付け足していける点です。
具体的な設定例
例えば、「商品名がデスクトップPC」で、かつ「対象店舗が東京本店」である販売数を数えたい場合は、以下のように指定します。 `=COUNTIFS(商品名の範囲, "デスクトップPC", 店舗の範囲, "東京本店")`
このように、複数の列に対してそれぞれ条件を設定することで、データをピンポイントに絞り込んでカウントすることが可能です。
注意点:範囲のサイズを揃えること
COUNTIFS関数を使う際に最も注意したいのが、「範囲のサイズ(行数や列数)」です。 条件範囲1が「A2からA100まで」であるなら、条件範囲2も「B2からB100まで」というように、同じ数だけ行または列が設定されていなければなりません。ここがずれていると、正しく計算されずエラーになることがあります。
実務で役立つ応用テクニック
基本操作に慣れてきたら、さらに便利な「ワイルドカード」や「特殊な条件」に挑戦してみましょう。
ワイルドカードで「~を含む」を数える
特定の文字が完全に一致していなくても、「その文字が含まれていれば数えたい」という場合があります。そんなときは、アスタリスク(\*)という記号を使います。これが「ワイルドカード」です。
- 「東京」を含むすべての文字列を数える:`"*東京*"`
- 「東京」から始まる文字列を数える:`"東京*"`
例えば、住所録から「東京都」や「東京駅前」など、どこかに「東京」という言葉が入っているセルをすべてカウントしたいときに非常に便利です。
空白ではないセルを数える
「データが入っているセルだけを数えたい(空白を除外したい)」という場合は、比較演算子の「等しくない」を意味する `<>` を使います。 条件に `"<>"` と指定することで、空白以外のセルをカウントできます。
COUNTIFを足し算して「OR条件」を実現する
COUNTIFS関数は「条件 A 且つ 条件 B」というAND条件で集計します。しかし、「条件 A または 条件 B のどちらかを満たすものを数えたい(OR条件)」という場合は、COUNTIFSでは対応できません。
その場合は、シンプルなCOUNTIF関数を複数使い、それらを足し算します。 (例:佐藤さんの件数 + 鈴木さんの件数) このように、目的に合わせて関数の組み合わせ方を考えるのがExcel上達のコツです。
トラブルシューティングと活用のコツ
関数を入力したのに思った結果にならないとき、よくある原因と解決策をご紹介します。
参照範囲がずれてしまう問題
数式を下のセルにコピーして使う際、指定した「範囲」も一緒にずれてしまい、正しくカウントされないことがよくあります。 これを防ぐには、以下の2つの方法が有効です。
- 列全体を指定する:`A2:A100` ではなく `A:A` と指定する。
- 絶対参照を使う:範囲に `$` マークをつけて固定する(例:`$A$2:$A$100`)。
特に大量のデータを扱う実務では、絶対参照を使いこなすことで、数式の管理が格段に楽になります。
フィルター集計との使い分け
「とりあえず今だけ件数を知りたい」のであれば、フィルター機能で絞り込んで、画面右下のステータスバーで件数を確認するのが最速です。 しかし、以下のようなケースでは関数による集計が不可欠です。
- 集計結果を別の表に表示させ、レポートとしてまとめたいとき
- 条件が変わるたびに、自動的に件数が更新される仕組みを作りたいとき
- 複数の条件を組み合わせた複雑な集計を行いたいとき
まとめ:使い分けの判断基準
最後に、COUNTIFとCOUNTIFSのどちらを使うべきかの判断基準をまとめます。
- 条件が1つだけ $\rightarrow$ COUNTIF関数
(例:「合格者が何人いるか」「在庫が0の商品がいくつあるか」)
- 条件が2つ以上 $\rightarrow$ COUNTIFS関数
(例:「4月以降に受注し、かつ金額が1万円以上の件数」)
- 将来的に条件が増える可能性がある $\rightarrow$ 最初からCOUNTIFS関数
(後から条件を追加する場合、COUNTIFからCOUNTIFSに書き直す手間が省けます)
まずはシンプルなCOUNTIFから使い始め、慣れてきたらCOUNTIFSでより詳細な分析に挑戦してみてください。これらの関数を使いこなせるようになると、目視での確認作業から解放され、ミスがなく、劇的に効率的な集計ができるようになります。
ピックアップ記事



