更新日:、 作成日:

エクセル COUNTIF 関数:条件に一致するセルを数える

はじめに

エクセルの COUNTIF 関数の使い方を紹介します。

COUNTIF 関数は条件に一致するセルの数を数えます。複数条件に対応した上位互換の「COUNTIFS 関数」があります。

=COUNTIF(A1:A3,"=エクセル") のようにして、セルの値が「エクセル」のセルの数をカウントできます。

=COUNTIF(A1:A3,"=*エクセル*") のようにして、「エクセル」が入っているセルの数をカウントできます。

=COUNTIF(A1:A3,"=*") のようにして、文字列のセルの数をカウントできます。

文字列かどうかや特定の文字列が入ったセルなどを、特定の値を条件にする方法をまとめています。

COUNTIF 関数の引数

COUNTIF(範囲, 条件)
範囲の中で条件を満たすセルの数を数えます。

引数「範囲」引数「条件」の対象になるセルの範囲を指定します。配列不可
引数「条件」数える条件を比較演算子やワイルドカードを使って指定します。スピル化

スピル化:セルの範囲や配列を指定すると結果が「スピル」します。

配列不可:配列を指定できません。セルの範囲のみ指定できます。

引数「条件」

使用できる比較演算子には次のものがあります。

演算子 演算名 使用例 結果
=等しい"=2"2 と同じ
<>等しくない"<>2"2 以外
>大きい">2"2 より大きい
<小さい"<2"2 より小さい
>=以上">=2"2 以上
<=以下"<=2"2 以下

使用できるワイルドカードには次のものがあります。

パターン 説明 使用例 一致例
*任意の長さの文字"あ*"あ, あい, あいう
?任意の 1 文字"あ?"あい, あか, あき
~ワイルドカードの文字 * ? を検索する"あ~?~*"あ?*

使い方

COUNTIF 関数の使い方を紹介します。

値が 100 以上のセルの数を数える

セルの範囲「B3」~「B5」の値が 100 以上のセルを数えます。

=COUNTIF(B3:B5,">=100")
28

セルの値以上のセルの数を数える

値がセル「C3」以上のセルを数えます。

=COUNTIF(B3:B5,">="&C3)

"比較演算子"&セル名 のようにしてセル参照を使用できます。

29

日付が 2000/1/1 ~ のセルの数を数える

日付が 2000/1/1 以降のセルを数えます。

=COUNTIF(B3:B5,">="&DATE(2000,1,1))

日付を入力するには「DATE 関数」を使用します。

30

値がエクセルのセルの数を数える

値が エクセル のセルを数えます。

=COUNTIF(B3:B5,"=エクセル")
31

特定の文字が入っているセルの数を数える

ワイルドカードを使用して、値に ワード が入っているセルを数えます。

=COUNTIF(B3:B6,"=*ワード*")
=COUNTIF(B3:B6,"=ワード*")
=COUNTIF(B3:B6,"=*ワード")

値が ワード で始まる値は "=ワード*" のように入力します。

値が ワード で終わる値は "=*ワード" のように入力します。

34

解説

複数条件に対応した上位互換である「COUNTIFS 関数」があります。通常はそちらを使用します。

引数「条件」に比較演算子を入力するときは "" で囲んで入力します。

引数「条件」に比較演算子を省略した "エクセル""=エクセル" と同じ条件になります。

引数「条件」にセル参照を入力するときは "比較演算子"&セル名 のように & で比較演算子とセル名を結合します。

引数「条件」に日付を入力するときは「DATE 関数」を使用します。時刻を入力するときは「TIME 関数」を使用します。"="&DATE(2000,1,1) のように & で比較演算子と結合します。

引数「条件」は大文字と小文字を区別しません。 "=ABC" としたときは abc などと一致します。

特定の値を条件にする

COUNT 系の関数では次の値をカウントします。

count

COUNTIF 関数でこれらを個別の条件にしたり、特定の文字が入っているかなどを条件にするには次のようにします。

条件
数値=ISNUMBER(B2)
数値の範囲=AND(B2>=100,B2<=200)
ゼロ"=0"
=AND(B2=0,ISNUMBER(B2))
"数字"=AND(ISNUMBER(B2)=FALSE,ISNUMBER(VALUE(MID(B2,2,LEN(B2)-2))))
'数字=AND(ISNUMBER(B2)=FALSE,ISNUMBER(VALUE(B2)),ISBLANK(B2)=FALSE)
日付=ISNUMBER(B2)
日付の範囲=AND(B2>=DATE(2000,1,1),B2<DATE(2001,1,1))
TRUE"=TRUE"
=ISLOGICAL(B2)
FALSE"=FALSE"
=ISLOGICAL(B2)
空のセル"="
=ISBLANK(B2)
=""=AND(ISFORMULA(B2),LEN(B2)=0)
'=AND(ISNUMBER(B2)=FALSE,VALUE(B2))
スペース=AND(LEN(B2)>0,TRIM(B2)="")
文字列"=*"
=ISTEXT(B2)
同じ文字"=同じ文字"
特定の文字"=*特定の文字*"
=FIND("特定の文字",B11)
=SEARCH("特定の文字",B11)
エラー値#N/A
"=#N/A"
=ISERROR(B2)

条件に関数を使用していないものは引数「条件」にそのまま入力します。

条件に関数を使用しているものは、判定用の列を作成してその中に条件を入力します。「ISNUMBER 関数」などの「IS~ 関数」を使用してセルの値の型を判定できます。その結果を引数「範囲」に指定して、好きな値のセルの数を数えられます。

=ISNUMBER(B2)
=COUNTIF(D3:D14,TRUE)
33

条件を組み合わせるには「OR 関数」にそれぞれの条件を入力します。数値と文字列をカウントするには次のようにします。

=OR(ISNUMBER(B2),ISTEXT(B2))

=OR(条件1,条件2,…) のようにして条件を組み合わせられます。

判定用の列を作成しない (スピル)

判定用の列を作成しないでカウントするには「スピル」を使用します。

=SUM(IF(ISNUMBER(B3:B14),1,0))

ISNUMBER(B3:B14) の部分に上記の条件を入力して、好きな値のセルの数を数えられます。ここにセルの範囲を入力しているのでスピルします。

IF 関数」に条件を入力して一致するときは 1 を返しています。それを「SUM 関数」で合計してカウントします。

条件に「AND 関数」を使用していないのはスピルされないためです。代わりに次のようにします。

IF((B3:B14>=100)*(B3:B14<=200),1,0)
スピルで AND や OR 条件にするには「スピル、動的配列数式の使い方」をご覧ください。
スピルは 365 または 2021 から使用できます。

数式を Ctrl + Shift + Enter で確定すると「配列数式」になり、すべてのバージョンで使用できます。

判定用の列を作成しない (ラムダ)

判定用の列を作成しないでカウントするには「MAP 関数」を使用します。複雑なので詳細は関数のページをご覧ください。

=SUM(
MAP(B3:B14,
LAMBDA(b,
IF(AND(b>=100,b<=200),1,FALSE))))

AND(b>=100,b<=200) の部分に上記の条件を入力して、好きな値のセルの数を数えられます。

ラムダは 365 で使用できます。

文字列や特定の文字が入っている

文字列か判定するには "=*" を入力するか「ISTEXT 関数」を使用します。

同じ文字か判定するには "=同じ文字" を入力します。大文字と小文字を区別するには「EXACT 関数」を使用します。

特定の文字が入っているかは、ワイルドカードを使用して "=*特定の文字*" のように * で文字を囲みます。上記の「特定の文字が入っているセルの数を数える」が使用例です。または「FIND 関数」や「SEARCH 関数」を使用して FIND("特定の文字",B2)SEARCH("特定の文字",B2) のように入力します。

文字数をカウントするには「LEN 関数」を使用します。

空のセルや空白

次の種類のセルをカウントできます。

  • :何も入力されていないセル
  • 空文字:数式が入力されていて、="" や関数や表示形式により表示上は空に見えるセル、または ' だけが入力されてるセル
  • 空白文字:スペースだけが入力されているセル

「空」のセルをカウントするには "=" を入力するか「ISBLANK 関数」を使用します。

「空」のセル以外をカウントするには "<>" を入力するか ISBLANK(B2)=FALSE のように入力します。

「空」と「空文字」のセルをカウントするには「COUNTBLANK 関数」を使用するか、「LEN 関数」を使用して LEN(B2)=0 のように入力します。

「空」と「空文字」のセル以外をカウントするには LEN(B2)>0 のように入力します。

「空」と「空文字」と「空白文字」のセルをカウントするには「TRIM 関数」を使用して TRIM(B2)="" のように入力します。

「空」と「空文字」と「空白文字」のセル以外をカウントするには TRIM(B2)<>"" のように入力します。

ゼロ

0 か判定するには "=0" を入力するか AND(B2=0,ISNUMBER(B2)) のように入力します。

「空」のセルも 0 と等しいと判定されるため、「ISNUMBER 関数」を使用して数値か判定します。

数値や日付の範囲

数値や日付の範囲を条件にするには「COUNTIFS 関数」を使用します。

=COUNTIFS(B3:B7,">=100",B3:B7,"<=200")
=COUNTIFS(B3:B7,">="&DATE(2001,1,1),B3:B7,"<"&DATE(2001,1,1))