- 公開日:
- 更新日:
ExcelのCOUNTIF関数の使い方|条件に一致するデータの個数表示
COUNTIF(カウントイフ)関数は指定した範囲の中で1つの検索条件に一致するセルがいくつあるかを求める関数です。
この関数を使えば特定の文字が入っているセルの個数を数えたり、逆に特定の文字以外のセルの個数を数えることができます。他によく使用する例としては、空白セル以外を数えたいときにCOUNTIF関数を使用します。
以下の記事では、COUNTIF関数の基本的な使い方をパターンごとにご紹介していきます。またCOUNTIF関数を「IF関数」や「SUMPRODUCT関数」と組合わせた方法も説明しています。
COUNTIF関数の書式
条件に合ったセルの個数を求めます。
=COUNTIF(範囲, 検索条件)
引数名 | 説明 |
---|---|
範囲 (必須) | 検索の対象とするセルやセルの範囲を指定します。数値や配列、名前付き範囲、参照が指定できます。 |
検索条件(必須) | 「範囲」の中からセルを検索するための条件を、数値、式、セル範囲、または文字列で指定します。文字列を指定する場合は、「"(ダブルクォーテーション)」で囲みます。
COUNTIF関数で指定できるのは、単一の検索条件のみです。 複数の検索条件を指定する場合は、COUNTIFS関数を使用します。 |
COUNTIF関数で使える比較演算子
検索条件で式を指定する際に比較演算子を使用することができます。
演算子 | 読み方 | 説明 |
---|---|---|
= | 等号、イコール | 等しい |
<> | 山カッコ、大なり小なり | 等しくない |
> | 大なり(だいなり) | より大きい |
< | 小なり(しょうなり) | より小さい |
>= | 大なりイコール | 以上 |
<= | 小なりイコール | 以下 |
COUNTIF関数の基本的な使い方
COUNTIF関数を使って特定の文字列が入っているセルの個数を数えてみましょう。

COUNTIF関数を入力したい【セル(例ではF3セル)】を選択します。

セルに直接『=COUNTIF(』と入力します。

検索の対象となる範囲を指定します。「=COUNTIF(」に続けて『B3:B6,』と入力します。引数の間には「,(カンマ)」を入れます。

範囲の中からセルを検索するための条件を指定します。「=COUNTIF(B3:B6,」に続けて『E3)』と入力し、【Enter】キーを押します。

COUNTIF関数で範囲から条件に合ったセルの個数が表示されました。例では、検索対象の「リンゴ」が「2」つとなっています。
COUNTIF関数の引数の指定方法
COUNTIF関数には「範囲」と「検索条件」の2つの引数があります。その2つの引数にはさまざまな指定方法がありますので以下でご紹介していきます。
第1引数(範囲)

COUNTIF関数の範囲を指定する方法は3つあります。
例のような表がある場合、COUNTIF関数を使って「リンゴ」が入っているセルの個数を求める範囲を指定してみましょう。
関数の引数ダイアログボックスで範囲を指定する

まずF3セルを選択し、『=COUNTIF(』を入力します。次に【fx】ボタンを押します。

「関数の引数ダイアログボックス」で「範囲」の右端にある【↑】ボタンを押します。

『B3:B6』と入力し、右端の【↓】ボタンを押します。始点と終点の間は「:(コロン)」を入力します。

【OK】ボタンを押します。
ドラッグで範囲を指定する方法

F3セルを選択してから『=COUNTIF(』を入力し、B3セルからB6セルをマウスでドラッグすると範囲が入力されました。
名前付き範囲で範囲を指定する方法

B3セルからB6セルまでを選択し、【数式】タブ、【名前の定義】を押します。

名前に『フルーツ』を入力し、【OK】ボタンを押します。

F3セルを選択してから『=COUNTIF(フルーツ』と入力します。「フルーツ」と定義した範囲が選択されました。
複数範囲を指定する方法
COUNTIF関数を利用して、複数範囲を指定しようとすると引数が多すぎるとエラーが出てしまいます。以下の記事では複数の範囲を指定する方法をご説明しています。
ExcelのCOUNTIF関数で複数範囲(飛び飛び)を指定する方法
第2引数(検索条件)
検索条件には数値、式、セル範囲、または文字列で指定することが可能です。組み合わせることでさまざまな条件に合ったセルの個数を求めることができます。
よく使用される検索条件を中心にご紹介していきます。
特定の文字列のセルを数える

COUNTIF関数というとイメージするのが特定の文字列や数値が入っているセルの個数を求めたいときだと思います。例のような表がある場合、COUNTIF関数を使って「リンゴ」が入っているセルの個数を求めましょう。まずF3セルを選択します。

数式バーに『=COUNTIF(B3:B6,"リンゴ")』を入力します。その後、Enterを押します。

F3セルに選択範囲の中で「リンゴ」と入力されているセルの個数である「2」が表示されました。

特定の文字列を指定する場合、指定した文字列と完全一致しているセルをカウントします。平仮名の「りんご」のように異なる表記にするとヒットすることができませんので注意してください。
別のセルを参照して目的のセルを数える

F3セルを選択し、数式バーに『=COUNTIF(B3:B6,E3)』を入力します。その後、Enterを押します。

E3セルに入力されている「リンゴ」を検索条件としてセルの個数が「2」と表示されました。
複数の条件に合ったセルの個数を求める
COUNTIF関数を使って、複数条件OR(または)を指定する方法を説明しています。また別の関数を使って複数条件AND(かつ)の指定方法も合わせて説明しています。
ExcelのCOUNTIF関数で複数条件OR(または)の役割を果たす方法
指定した数値よりも大きい、または小さい数値の個数を数える

F5セルを選択し、数式バーに『=COUNTIF(C3:C6,">55")』を入力します。その後、Enterを押します。

55より大きい値が入力されているセルの個数は「2」になりました。反対に小さい値を検索したい場合は比較演算子の「<」(小なり)を使用します。
「○○以上/○○以下」である数値セルを数える

F6セルを選択し、数式バーに『=COUNTIF(C3:C6,">=32")』を入力します。その後、Enterを押します。

32以上の値が入力されているセルの個数は「4」になりました。反対に特定の数値以下のセルを検索したい場合は比較演算子の「<=」(小なりイコール)を使用します。

「○以上、○以下」の両方に合致するセルの数を求める時は、引き算を利用します。F7セルを選択し、数式バーに『=COUNTIF(C3:C6,">=32")-COUNTIF(C3:C6,">85")』を入力します。その後、Enterを押します。

32以上85以下の値が入力されているセルの個数が「3」と求められました。32以上のセルの個数は4、85より大きいセルの数値は1なので「4-1」で結果は3になります。
下記の記事でもCOUNTIF関数で「○○」以上や「○○以下」のセルをカウントしたい場合の設定方法を説明しています。合わせて「より大きい」「より小さい」の設定方法もご紹介しています。
特定の文字以外を数える

F8セルを選択し、数式バーに『=COUNTIF(B3:B6,"<>オレンジ")』を入力します。その後、Enterを押します。

「オレンジ」の値が入力されている以外のセルの個数として「3」が求められました。

検索条件で文字列以外にセルを参照することもできます。
ワイルドカード(アスタリスク)を使って「○○で始まる/○○で終わる/○○を含む」セルを数える
検索条件として決まった文字列や数字以外にもある特定の文字列を含んだセルの個数を求めたいときも多いと思います。
検索条件でワイルドカードを使用するとさらに複雑な検索もすることが可能です。ワイルドカードの「?」疑問符は任意の1文字を表し、「*」アスタリスクは 1文字以上の任意の文字列を表します。

F9セルを選択し、数式バーに『=COUNTIF(B3:B6,"*")』を入力します。その後、Enterを押します。

検索範囲で任意のテキストが入力されているセルの個数として「4」が求められました。

F10セルを選択し、数式バーに『=COUNTIF(B3:B6,"??ゴ")』を入力します。その後、Enterを押します。

検索範囲で3文字でかつ最後に「ゴ」が入力されているセルの個数として「2」が求められました。

F11セルを選択し、数式バーに『=COUNTIF(B3:B7,"リンゴ*")』を入力します。その後、Enterを押します。

検索範囲で先頭に「リンゴ」が入力されているセルの個数として「3」が求められました。
空白以外を数える
空白以外のセルの個数を求めるには2つ方法があります。「COUNTA関数を使用する方法」と「COUNTIF関数で演算子で指定する方法」です
以下の記事ではCOUNTIF関数を利用して、空白以外のセル(何かしらデータが入っているセル)をカウントする方法を説明しています。
また、COUNTIF関数以外にもCOUNTA関数を利用する方法も合わせて説明しています。
日付が入力されたセルの個数(数)をカウントする

F3セルを選択し、数式バーに『=COUNTIF(C3:C12,"2019/1/7")』を入力します。その後、Enterを押します。

検索範囲で「2019/1/7」が入力されているセルの個数として「3」が求められました。

F4セルを選択し、数式バーに『=COUNTIF(C3:C12,"<=2019/1/7")』を入力します。その後、Enterを押します。

検索範囲で「2019/1/7」以前が入力されているセルの個数として「7」が求められました。
※「以前」はその日も含んだそれより前のことを指します。

F5セルを選択し、数式バーに『=COUNTIF(C3:C12,">=2019/1/7")』を入力します。その後、Enterを押します。

検索範囲で「2019/1/7」以降が入力されているセルの個数として「6」が求められました。
※「以降」はその日も含んだそれより後のことを指します。

F6セルを選択し、数式バーに『=COUNTIF(C3:C12,"<=2019/1/31")-COUNTIF(C3:C12,"<=2019/1/1")』を入力します。その後、Enterを押します。

検索範囲で「2019/1/1」から「2019/1/31」までが入力されているセルの個数として「5」が求められました。
重複したセルで連番を振る、または同番を振る
セルに重複したデータが入っていた場合、その重複データごとに連番もしくは同番を振る方法についてご紹介します。

連番振りの場合から説明します。D3セルを選択し、『=COUNTIF($B$2:B3,B3)』を入力します。セル範囲の最初のところだけ絶対参照します。オートフィルをしたときに相対参照部分だけが変わり、自動的に参照範囲を変更して個数を数えます。

D3セルの右下を選択して下まで引っ張ります。

上からカウントしたときに2つ目の重複については「2」、3つ目は「3」の数字が表示されます。これで重複しているデータに連番を振ることができます。

次に同番振りの方法を説明します。D3セルに『1』を入力します。次にD4セルに『=IF(B4<>B3,D3+1,IF(B4=B3,D3,COUNTIF($B$4:B4,B4)))』を入力します。

下方へオートフィルコピーします。

同番が振られました。
COUNTIF関数と他の関数を組み合わせた使い方
重複をチェックする(IF×COUNTIF)
COUNTIF関数とIF関数を組みわせることで重複しているデータをチェックする方法をご紹介しています。大量のデータから重複しているデータを目視で探すのは大変です。
COUNTIF関数とIF関数を使うことで簡単に重複しているかどうかを判定することができます。
ExcelのCOUNTIF関数とIF関数を組みわせて重複をチェックする方法
重複しているデータを1件としてカウントする(COUNTIF×SUMPRODUCT)

データの種類を調べてみましょう。F3セルを選択し、『=SUMPRODUCT(1/COUNTIF(B3:B10,B3:B10))』を入力します。その後、Enterを押します。

結果として「6」種類と表示されました。
COUNTIF関数の注意点
フィルタをかけるとCOUNTIF関数で数えられない

COUNTIF関数はフィルターを考慮しないためフィルタしても結果が変わりません。実際に例を見てみましょう。E2セルを選択し、『=COUNTIF(B3:B10,"リンゴ")』を入力すると「2」と表示されました。

フィルタを選択し、【数値フィルター】、【指定の値より大きい】を選択します。

売上個数に『50』を入力し、【OK】ボタンを押します。

フィルタをかけて「リンゴ」が減ったにもかかわらずCOUNTIFの結果は「2」のままになっています。

フィルタをかけてもCOUNTIF関数の結果が反映されるようにします。E2セルを選択し、『=SUMPRODUCT(SUBTOTAL(3,OFFSET(B2,ROW(INDIRECT("1:"&ROWS(B3:B10))),))*(B3:B10="リンゴ"))』を入力します。

フィルタが反映された状態でもフィルタで表示されている中でCOUNTIF関数の結果である「1」が表示されました。
テキスト文字列の大文字と小文字が区別されない

COUNTIF関数では、テキスト文字列の大文字と小文字が区別されないことに注意してください。

検索条件として「apple」と指定しても「APPLE」も検索対象になります。
長い文字列を照合すると、間違った値が返されてしまう

長い文字列を照合すると、間違った値が返されることがあります。「256」以上の文字列を検索対象とします。

「#VALUE!」が表示されエラーになりました。

255文字の文字列を検索対象とします。

こちらはきちんと検索されました。256文字以上は検索条件として指定しないようにしましょう。
VBAでCountIfを使用して条件に合ったセルを数える方法
ExcelではCOUNTIF関数を使用することで条件に一致するセルの個数を数えることができますが、VBAでもワークシート関数のCountIfメソッドを使用すれば同じように条件に合ったセルを数えることができます。
以下の記事ではサンプルコード付きでVBAのCountIfの基本から空白以外のセルをカウントしたり、重複を判別する方法も合わせて解説しています。
ExcelのVBA(マクロ)でCountIfを使って条件に合ったセルを数える
他の関数も合わせてチェック!
全488種のわかりやすいExcel関数一覧表!検索/並び替え/絞り込み機能付
Office Hackでは、ここでご紹介できなかった関数の一覧ページもご用意しております。ぜひ、参考にしてください。