Excel(エクセル)のCOUNTIF関数の使い方|検索条件から一致するデータの個数を数える
使用関数:COUNTIF
COUNTIF(カウントイフ)関数とは?
COUNTIFは「COUNT=数える」と「IF=もし、~なら」を組み合わせた関数名で、同じ条件の値を検索してセルの個数を数えます。アンケートの集計など特定の条件で検索して個数を表示できます。数式も答えもシンプルで扱いやすく、他の関数と組み合わせれば、いろいろ応用も利く便利な関数です。
Excel(エクセル)で「カウントする」COUNT系の関数は機能ごとに幾つかの種類があり、COUNTIFはその一つです。
「カウントする」関数の種類
関数名 | 属性 | 数えるデータの種類 | 条件の指定の可否 |
---|---|---|---|
COUNT | 統計 | 数値・日付・時刻 | 指定できない |
COUNTA | 統計 | 空白でない全データ | 指定できない |
COUNTIF | 統計 | 条件に合うデータ | 一つの条件を指定 |
COUNTIFS | 統計 | 条件に合うデータ | 複数の条件を指定 |
COUNTBLANK | 統計 | 空白のデータ | 指定できない |
DCOUNT | データベース | 数値・日付・時刻 | 複数の条件を指定 |
DCOUNTA | データベース | 空白でない全データ | 複数の条件を指定 |
COUNTIF関数の引数と書式
「数式」→「関数ライブラリ」→「その他の関数」→「統計」からCOUNTIFをクリックします。
下図のダイアログボックスを見ると分かりやすいと思いますが、「引数1で指定した範囲の中から」「引数2の条件に合うデータを探し、」「その数を数える」のがCOUNTIFです。
書式の構成はこうなります。
COUNTIFの引数「範囲」の指定方法
COUNTIFの最初の引数「範囲」は「どこからどこまでのデータから探すか?」を指定します。
列・行を指定/セル範囲を指定
列見出しを設けて、列ごとにデータを並べている表では列全体を選択範囲に指定することが多いと思います。
列を選択するにはダイアログの「範囲」のテキストボックスをクリックした後、列番号(A.B.C…)をクリックするだけ。複数の列を選択する場合は列番号をクリックして、そのまま横にドラッグします。(行を選択するのも同じ)
直接入力する場合は「B列を指定→ (B:B)」「B列とC列を指定→ (B:C)」とします。
特定のセル範囲を指定するにはダイアログの「範囲」のテキストボックスをクリックした後、表のセル範囲をドラッグします。
直接入力する場合は「E2セルからE11セルまでを指定→ (E2:E11)」とします。
COUNTIFで複数の「範囲」をOR条件で指定する
本来、COUNTIFの「検索する範囲」は規則的に並んだセル範囲である必要があります。いびつな範囲や飛び飛びのセル範囲を指定できません。
ですが、COUNTIFでそうした複数の範囲を選択するために範囲を「+」でつなげるという方法があります。
下図のようにA組とC組の離れた範囲から「男」の数をカウントしてみます。
A組とC組のそれぞれの範囲に検索条件「男」でCOUNTIFの数式を作ります。
どちらかの数式の「=」より後をコピー、もう一方の数式の最後に「+」を入力してからペーストします。
最終的な数式は以下のようになります。
=COUNTIF(B3:B15,B4)+COUNTIF(H3:H15,H4)
「A組の範囲にある男性」または「C組の範囲にある男性」というOR条件でカウントしていることが分かりますね。
COUNTIFの引数「検索条件」の指定方法
COUNTIFの2番目の引数「検索条件」は「どのようなデータを探すか?」を指定します。
特定の文字列で条件を指定
顧客名簿の氏名、商品名など特定の文字列で検索してカウントするには、COUNTIFの「検索条件」に文字列を入力したら半角ダブルクォーテーション「””」で括るのがお約束です。
後述する等号・不等号(比較演算子)を含む検索条件も半角ダブルクォーテーション「””」で括る必要があります。
COUNTIF関数の引数ダイアログで入力してTabキーを押すと半角ダブルクォーテーション「””」は自動で入力されますが、直接入力する場合は忘れないように注意して下さい。
数値・数式で条件を指定
等号・不等号を含まない特定の数値や数式をCOUNTIFの検索条件にする時はそのまま入力、何も足す必要はありません。ただし、数式に組み込まれた文字列は「””」で囲みます。
日付で条件を指定
文字列と同じく、日付をCOUNTIFの検索条件にするときは半角ダブルクォーテーション「””」で囲みます。
ただ、日付はCOUNTIF関数の引数ダイアログで入力してTabキーを押しても半角ダブルクォーテーション「””」は自動で入力されないので注意して下さい。日付が正常にカウントされない時は「””」が付いているか確認しましょう。
COUNTIF関数の基本操作
COUNTIFが「どこからどこまでのデータから」「どのようなデータを探し」その個数を数える関数であることが分かったところで、基本の操作を実行してみましょう。
COUNTIFで条件に合致するデータを数える
モニターによる新商品の評価アンケートを集計してみましょう。
「商品A」の「最高」評価を表示するセルを選択し、「数式」タブの「関数ライブラリ」にある「最近使った関数」ボタンをクリックして「COUNTIF」を選択します。
(一覧に入っていなければ、一番下の「関数の挿入」から)
「COUNTIFの関数の引数」ダイアログボックスの最初の引数「範囲」とは条件を検索する範囲のことです。「商品A」の評価が入ったセル範囲をドラッグして指定します。(この例では他の2つの評価セルにオートフィルコピーしたいのでF4キーを3度押して列を固定「$B2:$B10」しておきました)
次の引数「検索条件」には「最高」と入ったセルをクリックで指定。(これもオートフィルコピーのためにF4キーを2度押して行を固定「D$1」しておきました)
数式は「=COUNTIF($B2:$B10,D$1)」となります。「商品Aの評価範囲から最高を探して数を数える」
商品Aの「最高」評価の数が表示されたら、このセルのフィルハンドルを右に引っ張ってオートフィルコピーをします。
COUNTIFに等号・不等号を使って以上・以下・未満などのデータを数える
COUNTIF関数の条件に等号・不等号(比較演算子)を組み込んで「~以上」「~以下」「~未満」の数値を数えることができます。
表の年齢から「20代」を抽出して、COUNTIFでその数値を表示させてみます。
数を表示させるセルをクリックして、「数式」タブ「「最近使った関数」→「COUNTIF」でダイアログボックスを開きます。
最初の引数「範囲」に「年齢」のD列を列番号をクリックして指定するか、ドラッグでセル範囲を指定します。
次の引数「検索条件」には「20代」=「30未満」を等号・不等号で「<30」と入力します。Tabキーを押すと自動でダブルクォーテーションのくくりが入ります。
適正にカウントされましたね。
「以上・以下・未満」などを示す等号・不等号(比較演算子)の表記一覧
- = イコール。等しい。一致する
【表記例】=30 - <> 異なる。一致しない
【表記例】<>30 - > 大きい。一致を含まない
【表記例】 >30 - < 小さい。未満。一致を含まない
【表記例】 <30 - >= 以上。一致を含む
【表記例】 >=30 - <= 以下。一致を含む
【表記例】 <=30
COUNTIFを複数条件で使いたい時は・・・
前章の例で「20代」なら「<30」で実装できますが、「30代」をカウントするには「30以上」と「40未満」の2つの条件を指定しなくてはなりません。
COUNTIFで複数条件の指定はできないので、この場合は「COUNTIFS」を使います。「数式」タブ→「最近使った関数」→COUNTIFSでダイアログボックスを開き、以下のように入力します。COUNTIFの引数をセットにしてAND条件で指定する構成ですね。
数式バーに入力された式は↓こうなります。
=COUNTIFS(D:D,”>=30″,D:D,”<40")
「30以上」かつ「40未満」のAND条件で検索されているのが分かります。
COUNTIFS関数の使い方の詳細は以下の記事で。
COUNTIFで空白以外を数える
表データに空白が含まれており、それらを除いて入力値のあるセルだけをカウントしたい場合があります。
例えば下図の例では脱退した会員の名前の欄が空白です。現在の会員数を知るためには空白以外のセルを数えることになります。
「空白以外」を表すのは不等号を組み合わせた「<>」です。これを検索条件に指定します。
数式は以下のようになります。
=COUNTIF(B2:B21,“<>“)
また、脱退会員の数――つまり「空白」を数えたいなら、検索条件に半角ダブルクォーテーションを2つ続けて入力します。
この場合の数式は以下のようになります。
=COUNTIF(B2:B21,“”)
COUNTIFで「~を含む」など部分一致の条件をワイルドカードを使って数える
下図の表から「パーマ」の数を数えたいと思いますが、「デジタルパーマ」「ストレートパーマ」も一緒にカウントするには条件をワイルドカードを使って組み立てることになります。
最もよく使われるワイルドカードは「*(アスタリスク)」で、任意の文字列を表します。
- 「*(アスタリスク)」の後に検索文字列・・・→ “*検索する文字 ~で終わる
- 「*(アスタリスク)」の前に検索文字列・・・→ “検索する文字*“ ~で始まる
- 「*(アスタリスク)」の前後に検索文字列・・・→ “*検索する文字*“ ~を含む
この例では条件に「“*パーマ”」と入れればいいということです。
ワイルドカードの使い方の詳細は以下の記事で。

COUNTIFで重複したデータを数える
COUNTIF関数を使って重複データの個数を表示させることもできます。詳細は以下の記事で。

COUNTIFの結果を別シートに表示させる
データ表のあるシートとは切り離して別のシートでCOUNTIFの検索結果を表示させたい時の操作です。
Sheet1にデータ表があります。
シートを増やして、COUNTIFの検索結果の表を作ります。
「数式」タブ「「最近使った関数」→「COUNTIF」でダイアログボックスを開き、「範囲」をクリック、「Sheet1」に戻って検索する範囲をドラッグで指定します。
「検索条件」を数値で指定して「OK」。Sheet2にCOUNTIFの結果が表示されました。
名前を付けた範囲を指定する
範囲に名前を付けておくと、別シートでの管理がもっとスムーズにできます。COUNTIFで引数に指定するSheet1の表のセル範囲を選択して、「数式」タブの「名前の定義」をクリック。
「新しい名前」ダイアログが開いたら、「名前」のボックスに覚えやすいシンプルな名前を入力します。
Sheet2でCOUNTIF関数の引数ダイアログを開いたら、「範囲」に定義した名前を入力します。