COUNTIF関数の使い方|検索条件から一致するデータの個数を数える

COUNTIF関数の使い方

Excel(エクセル)のCOUNTIF関数の使い方|検索条件から一致するデータの個数を数える

使用関数:COUNTIF

COUNTIF(カウントイフ)関数とは?

COUNTIFは「COUNT=数える」と「IF=もし、~なら」を組み合わせた関数名で、同じ条件の値を検索してセルの個数を数えます。アンケートの集計など特定の条件で検索して個数を表示できます。数式も答えもシンプルで扱いやすく、他の関数と組み合わせれば、いろいろ応用も利く便利な関数です。

Excel(エクセル)で「カウントする」COUNT系の関数は機能ごとに幾つかの種類があり、COUNTIFはその一つです。

「カウントする」関数の種類

関数名属性数えるデータの種類条件の指定の可否
COUNT統計数値・日付・時刻指定できない
COUNTA統計空白でない全データ指定できない
COUNTIF統計条件に合うデータ一つの条件を指定
COUNTIFS統計条件に合うデータ複数の条件を指定
COUNTBLANK統計空白のデータ指定できない
DCOUNTデータベース数値・日付・時刻複数の条件を指定
DCOUNTAデータベース空白でない全データ複数の条件を指定

COUNTIF関数の引数と書式

「数式」→「関数ライブラリ」→「その他の関数」→「統計」からCOUNTIFをクリックします。
関数ライブラリの統計からCOUNTIFをクリック
下図のダイアログボックスを見ると分かりやすいと思いますが、「引数1で指定した範囲の中から」「引数2の条件に合うデータを探し、」「その数を数える」のがCOUNTIFです
COUNTIF関数の引数ダイアログボックス

書式の構成はこうなります。
COUNTIF関数の書式の構成

COUNTIFの引数「範囲」の指定方法

COUNTIFの最初の引数「範囲」は「どこからどこまでのデータから探すか?」を指定します。

列・行を指定/セル範囲を指定

列見出しを設けて、列ごとにデータを並べている表では列全体を選択範囲に指定することが多いと思います。
列を選択するにはダイアログの「範囲」のテキストボックスをクリックした後、列番号(A.B.C…)をクリックするだけ。複数の列を選択する場合は列番号をクリックして、そのまま横にドラッグします。(行を選択するのも同じ)
直接入力する場合は「B列を指定→ (B:B)」「B列とC列を指定→ (B:C)」とします。
COUNTIF関数の引数ダイアログの「範囲」に列を指定

特定のセル範囲を指定するにはダイアログの「範囲」のテキストボックスをクリックした後、表のセル範囲をドラッグします。
直接入力する場合は「E2セルからE11セルまでを指定→ (E2:E11)」とします。
COUNTIF関数の引数ダイアログの「範囲」に特定のセル範囲を指定

COUNTIFで複数の「範囲」をOR条件で指定する

本来、COUNTIFの「検索する範囲」は規則的に並んだセル範囲である必要があります。いびつな範囲や飛び飛びのセル範囲を指定できません。
ですが、COUNTIFでそうした複数の範囲を選択するために範囲を「+」でつなげるという方法があります。

下図のようにA組とC組の離れた範囲から「男」の数をカウントしてみます。
A組とC組の離れた範囲から「男」の数をカウント
A組とC組のそれぞれの範囲に検索条件「男」でCOUNTIFの数式を作ります。
それぞれの範囲に検索条件でCOUNTIFの数式を作る
どちらかの数式の「=」より後をコピー、もう一方の数式の最後に「+」を入力してからペーストします。
一方の数式をコピー、他方の数式の後に「+」を入力してからペースト
最終的な数式は以下のようになります。
=COUNTIF(B3:B15,B4)+COUNTIF(H3:H15,H4)
A組の範囲にある男性」または「C組の範囲にある男性」というOR条件でカウントしていることが分かりますね。

COUNTIFの引数「検索条件」の指定方法

COUNTIFの2番目の引数「検索条件」は「どのようなデータを探すか?」を指定します。

特定の文字列で条件を指定

顧客名簿の氏名、商品名など特定の文字列で検索してカウントするには、COUNTIFの「検索条件」に文字列を入力したら半角ダブルクォーテーション「””」で括るのがお約束です。
後述する等号・不等号(比較演算子)を含む検索条件も半角ダブルクォーテーション「””」で括る必要があります。
等号・不等号(比較演算子)を含む検索条件も半角ダブルクォーテーション「""」で括る
COUNTIF関数の引数ダイアログで入力してTabキーを押すと半角ダブルクォーテーション「””」は自動で入力されますが、直接入力する場合は忘れないように注意して下さい。

数値・数式で条件を指定

等号・不等号を含まない特定の数値や数式をCOUNTIFの検索条件にする時はそのまま入力、何も足す必要はありません。ただし、数式に組み込まれた文字列は「””」で囲みます。
数値・数式でCOUNTIFの検索条件を指定

日付で条件を指定

文字列と同じく、日付をCOUNTIFの検索条件にするときは半角ダブルクォーテーション「””」で囲みます
ただ、日付はCOUNTIF関数の引数ダイアログで入力してTabキーを押しても半角ダブルクォーテーション「””」は自動で入力されないので注意して下さい。日付が正常にカウントされない時は「””」が付いているか確認しましょう。
日付でCOUNTIFの検索条件を指定

COUNTIF関数の基本操作

COUNTIFが「どこからどこまでのデータから」「どのようなデータを探し」その個数を数える関数であることが分かったところで、基本の操作を実行してみましょう。

COUNTIFで条件に合致するデータを数える

モニターによる新商品の評価アンケートを集計してみましょう。
新商品の評価アンケートを集計

「商品A」の「最高」評価を表示するセルを選択し、「数式」タブの「関数ライブラリ」にある「最近使った関数」ボタンをクリックして「COUNTIF」を選択します。
(一覧に入っていなければ、一番下の「関数の挿入」から)
「数式」タブの「関数ライブラリ」にある「最近使った関数」ボタンをクリック

「COUNTIFの関数の引数」ダイアログボックスの最初の引数「範囲」とは条件を検索する範囲のことです。「商品A」の評価が入ったセル範囲をドラッグして指定します。(この例では他の2つの評価セルにオートフィルコピーしたいのでF4キーを3度押して列を固定「$B2:$B10」しておきました)
引数「範囲」に「商品A」の評価が入ったセル範囲を指定
次の引数「検索条件」には「最高」と入ったセルをクリックで指定。(これもオートフィルコピーのためにF4キーを2度押して行を固定「D$1」しておきました)
引数「検索条件」に「最高」と入ったセルをクリックで指定
数式は「=COUNTIF($B2:$B10,D$1)」となります。「商品Aの評価範囲から最高を探して数を数える」
商品Aの「最高」評価の数が表示されたら、このセルのフィルハンドルを右に引っ張ってオートフィルコピーをします。
数式の入ったセルを右にオートフィルコピー

COUNTIFに等号・不等号を使って以上・以下・未満などのデータを数える

COUNTIF関数の条件に等号・不等号(比較演算子)を組み込んで「~以上」「~以下」「~未満」の数値を数えることができます。

表の年齢から「20代」を抽出して、COUNTIFでその数値を表示させてみます。
表の年齢から「20代」を抽出して、COUNTIFでその数値を表示
数を表示させるセルをクリックして、「数式」タブ「「最近使った関数」→「COUNTIF」でダイアログボックスを開きます。
最初の引数「範囲」に「年齢」のD列を列番号をクリックして指定するか、ドラッグでセル範囲を指定します。
引数「範囲」に「年齢」のD列を列番号をクリックして指定
次の引数「検索条件」には「20代」=「30未満」を等号・不等号で「<30」と入力します。Tabキーを押すと自動でダブルクォーテーションのくくりが入ります。
「検索条件」に「20代」=「30未満」を等号・不等号で「<30」と入力
適正にカウントされましたね。
COUNTIFで20代の数がカウントされた

「以上・以下・未満」などを示す等号・不等号(比較演算子)の表記一覧

  • = イコール。等しい。一致する
    【表記例】=30
  • <> 異なる。一致しない
    【表記例】<>30
  • > 大きい。一致を含まない
    【表記例】 >30
  • < 小さい。未満。一致を含まない
    【表記例】 <30
  • >= 以上。一致を含む
    【表記例】 >=30
  • <= 以下。一致を含む
    【表記例】 <=30

COUNTIFを複数条件で使いたい時は・・・

前章の例で「20代」なら「<30」で実装できますが、「30代」をカウントするには「30以上」と「40未満」の2つの条件を指定しなくてはなりません。

COUNTIFで複数条件の指定はできないので、この場合は「COUNTIFS」を使います。「数式」タブ→「最近使った関数」→COUNTIFSでダイアログボックスを開き、以下のように入力します。COUNTIFの引数をセットにしてAND条件で指定する構成ですね。
「30以上」と「40未満」の条件をCOUNTIFS関数の引数ダイアログで指定
数式バーに入力された式は↓こうなります。
=COUNTIFS(D:D,”>=30″,D:D,”<40")
「30以上」かつ「40未満」のAND条件で検索されているのが分かります。

COUNTIFS関数の使い方の詳細は以下の記事で。

https://www.tschoolbank.com/excel/function-countifs/

COUNTIFで空白以外を数える

表データに空白が含まれており、それらを除いて入力値のあるセルだけをカウントしたい場合があります。
例えば下図の例では脱退した会員の名前の欄が空白です。現在の会員数を知るためには空白以外のセルを数えることになります。
空白があるデータ表

空白以外」を表すのは不等号を組み合わせた「<>」です。これを検索条件に指定します。
検索条件に空白以外を表す<>を指定する
数式は以下のようになります。
=COUNTIF(B2:B21,“<>“)

また、脱退会員の数――つまり「空白」を数えたいなら、検索条件に半角ダブルクォーテーションを2つ続けて入力します。
この場合の数式は以下のようになります。
=COUNTIF(B2:B21,“”)

COUNTIFで「~を含む」など部分一致の条件をワイルドカードを使って数える

下図の表から「パーマ」の数を数えたいと思いますが、「デジタルパーマ」「ストレートパーマ」も一緒にカウントするには条件をワイルドカードを使って組み立てることになります。
COUNTIFの条件をワイルドカードで指定するサンプル表
最もよく使われるワイルドカードは「*(アスタリスク)」で、任意の文字列を表します。

  • 「*(アスタリスク)」のに検索文字列・・・→ *検索する文字 ~で終わる
  • 「*(アスタリスク)」のに検索文字列・・・→ “検索する文字* ~で始まる
  • 「*(アスタリスク)」の前後に検索文字列・・・→ *検索する文字*  ~を含む

この例では条件に「“*パーマ”」と入れればいいということです。
COUNTIFの条件にアスタリスクで"*パーマ"と入力

ワイルドカードの使い方の詳細は以下の記事で。

オートフィルターと「*」複数の条件でデータ抽出
ANDとORを使い分けて2条件に合致したデータを抽出する方法、「*」を使って条件を構築するテクニック

COUNTIFで重複したデータを数える

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

重複するデータの洗い出し方法|条件付き書式とCOUNTIF関数
条件付き書式で重複するレコードに色を付けて強調表示、COUNTIFで求めた重複データの個数を応用してチェック

COUNTIFの結果を別シートに表示させる

データ表のあるシートとは切り離して別のシートでCOUNTIFの検索結果を表示させたい時の操作です。
Sheet1にデータ表があります。
Sheet1にあるCOUNTIFで検索するデータ表
シートを増やして、COUNTIFの検索結果の表を作ります。
COUNTIFの検索結果の表を作る
「数式」タブ「「最近使った関数」→「COUNTIF」でダイアログボックスを開き、「範囲」をクリック、「Sheet1」に戻って検索する範囲をドラッグで指定します。
「Sheet1」に戻ってCOUNTIFで検索する範囲をドラッグで指定
「検索条件」を数値で指定して「OK」。Sheet2にCOUNTIFの結果が表示されました。
Sheet2にCOUNTIFの結果が表示された

名前を付けた範囲を指定する

範囲に名前を付けておくと、別シートでの管理がもっとスムーズにできます。COUNTIFで引数に指定するSheet1の表のセル範囲を選択して、「数式」タブの「名前の定義」をクリック。
「数式」タブの「名前の定義」をクリック
「新しい名前」ダイアログが開いたら、「名前」のボックスに覚えやすいシンプルな名前を入力します。
「新しい名前」ダイアログで名前を定義

Sheet2でCOUNTIF関数の引数ダイアログを開いたら、「範囲」に定義した名前を入力します。
Sheet2でCOUNTIF関数の引数ダイアログの「範囲」に定義した名前を入力

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