テクノロジー・動画・写真・デザインとか

エクセルで条件に合ったセルをカウントするCOUNTIF関数

エクセルで、指定した数値や文字列などの条件と一致しているセルをカウントするには、COUNTIF関数を使用する。

目次

  1. COUNTIF関数の概要
    1. サンプル書式
  2. 複数条件に一致したセルの合計をカウントする方法
  3. 等号・不等号を取り扱った条件検索
  4. 「○○を含む」部分一致は、ワイルドカードを使用
  5. COUNTIF関数の重複チェック

COUNTIF関数の概要

書式

COUNTIF(範囲, 検索条件)

続きを読む

COUNTIF関数の説明

COUNTIF関数は、数値や文字列などと一致したセルをカウントしてくれる関数。

下記のサンプル書式のように様々な検索条件を使い分けることができるが、COUNTBLANK関数のように空白セルをカウントすることもできるので、下記の点には注意したいところ。
・空白セル
・半角スペースや全角スペースが入力されたセル

また、アルファベットの全角文字の扱いにも注意しよう。

サンプル書式

以下のサンプル書式は、A1からA8までの範囲についての「検索条件」の概要を説明している。

Aサンプル書式表示結果概要
1エクセル=COUNTIF(A1:A8,"エクセル")2選択範囲の中で「エクセル」の文字列が含まれているセルの数。A1とA4が該当
2=COUNTIF(A1:A8,"")1空白セルをカウント。A3の半角スペースのセルはカウントされない。A2のみ該当
3 (半角スペース)=COUNTIF(A1:A8,A3)1セル参照でカウントすることも可能。このサンプルでは、A3に一致するセルをカウント。
4エクセル=COUNTIF(A1:A8,"excel")1アルファベットの場合、文字の大小に関係なくカウント。A6が該当。
5EXCEL=COUNTIF(A2:A8,"EXCEL")1アルファベットが全角の場合、半角はカウントされない。該当はA5のみ。
6EXCEL=COUNTIF(A1:A8,"パワ")0文字列が完全に一致しないとカウントされない。部分一致の場合は後述のワイルドカードを参照。
7パワポ=COUNTIF(A1:A8,エクセル)0文字列は、「””(ダブルクオーテーション)」で囲わないとカウントされない。

複数条件に一致したセルの合計をカウントする方法

複数条件に一致したセルのカウント方法として、例えば、下記のように「給与所得」のセルをカウントしつつ、「雑所得」のデータを含むセルもカウントしたい場合があるかと思うが、サンプルで2つの方法を紹介。

A1B1C1
給与所得給与所得給与所得

①個別にCOUNTIF関数で求めて「+」でカウントする方法

単純に、COUNTIFでまず「給与所得」のセルをカウントして、もう一方の「雑所得」もCOUNTIF関数で求めて「+」の足し算で合計してやればいい。

サンプル書式:=COUNTIF(A1:C1,"給与所得")+COUNTIF(A1:C1,"雑所得")
表示結果:3

②配列とSUM関数でカウントする方法

配列を使うともっと楽に記述ができて、セルをカウントすることができる。

配列については、ここでは深く触れないが、下記のように「””(ダブルクオーテーション)」で文字列を囲み、「,(カンマ)」でつないであげることで、個々のセル数を求めることができる。

  • =COUNTIF(A1:C1,{“給与所得”,”雑所得”})

ただし、この記述だけでは、”給与所得”のセルの合計数しか表示されない。
なので、さらに合計値を求めてくれるSUM関数でくくってあげることでセルの合計を求めることができる。

サンプル書式:=SUM(COUNTIF(A1:C1,{"給与所得","雑所得"}))
表示結果:3

等号・不等号を取り扱った条件検索

等号・不等号を使うことでさらに特定の数値データが含まれるセル数を抽出することができる。

等号、不等号については、「=(等号)」があれば、その値を含むと覚えておけばバッチリ。
それと、「=(等号)」は右側に書かないとエラーとなる。

下記は、年代別のサンプル表で、これを見ながら等号・不等号を用いたサンプル書式を見ていこう。

A1B1C1D1
1993200320072013

一番最後の年代別を数えるサンプルが、「○○以上、●●未満」という風に色々と使えるのではないかと思う。

等号・不等号結果表示概要
=COUNTIF(A1:D1,">2003")22003より大きいセル。2003を含まない
=COUNTIF(A1:D1,">=2003")32003以上のセル。2003を含む
=COUNTIF(A1:D1,"<2003")12003より小さいセル。2003を含まない
=COUNTIF(A1:D1,"<=2003")22003以下のセル。2003を含む
=COUNTIF(A1:D1,"<>0")40以外のセルをカウント
=COUNTIF(A1:D1,">1999")-COUNTIF(A1:D1,">2010")22000年の00年代のセルはいくつかあるかを求めるサンプル。2000以上のセルを求めて、そこから2010以降のセルを引くことで00年代のセル数を表示。

「○○を含む」部分一致は、ワイルドカードを使用

COUNTIF関数は、基本的に完全一致した数値や文字列のセルをカウントしてくれるが、部分一致で「○○を含む」と検索したい場合もあるかと思う。

その場合には、ワイルドカードを使う。

A1B1C1D1
パワーポイントパワポエクセルワード

サンプル書式:=COUNTIF(A1:D1,"*ワー*")
結果表示:2(該当セルは、A1とD1)

上記のサンプル書式はA1からD1までのセルの範囲で、前後の文字はともかく、「ワー」という文字が含まれているセルをカウントするための式。

この「*(アスタリスク)」は、「任意の長さの文字列」という意味があるので、前後の文字はともかく、「ワー」を含む文字を探すということになる。

COUNTIF関数の重複チェック

セルのデータが重複していないかをチェックするには、IF関数とCOUNTIF関数を併用することで、チェックができる。

A1B1C1D1
ExcelExcelエクセルワード

例えば、上記の表の「EXCEL」の重複をチェックしたい場合、まずは下記のようにセルをカウントする。

COUNTIF(A1:D1,"EXCEL")

結果は2と表示されるので、後は下記の式のように、IF関数でその値が1より大きかを条件チェックして、1より大きい場合には、[真]の重複を表示、そうでない場合は、[偽]の空白を表示させるだけ。

=IF(COUNTIF(A1:D1,"EXCEL")>1,"重複","")

カテゴリ:エクセル関数