Menu

COUNTIF関数の使い方: 条件に合うセルを数える

=COUNTIF(B2:B7,"North")は、B2:B7のうちNorthが入っているセルを数えます。文字列、数値、ワイルドカード、空白、日付で数える方法と重複の見つけ方を、編集できるシートで学びます。

このページのシートはすべて実際に動きます。数値や数式を変えると再計算されます。

=COUNTIF(B2:B7,"North")は、B2:B7のうちNorthが入っているセルを数えます。COUNTIFの引数は2つです。調べる範囲と、数えるセルが満たすべき条件です。

1つの地域を数える
F2
ABCDEF
1RepRegionSalesRegionCount
2AnaNorth120North3
3BenSouth45South2
4CaraNorth80
5DanEast55
6EvaSouth200
7FinnNorth30
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

F2はNorthの行を数えます。F3は条件をセルに置いて同じことをしています。E3をEastに変えるか、B列の地域のどれかを変えると、件数がそれに合わせて変わります。セル参照を使うと集計表が作れます。行ごとにCOUNTIFを1つ置き、それぞれが自分の行の見出しを参照します。

COUNTIF関数の構文

=COUNTIF(range, criteria)
  • range(範囲)は調べるセルです。B2:B7やB:Bのような、シート上の範囲である必要があります。
  • criteria(検索条件)は条件で、ダブルクォーテーションで囲んだ文字列、数値、セル参照のいずれかで書きます。下の表の形はどれも条件として使えます:
条件数えるセル
"North"Northと等しい(大文字小文字は問わない)
">50"50より大きい
"<>North"North以外のすべて(空白も含む)
55数値55と等しい
">"&F6F6の値より大きい
"*apple*"appleを含む文字列
""空白
"<>"空白でない

COUNTIFで以上・以下・より大きいを数える

比較演算子は数値と一緒に引用符の中に入れます:">50"、"<=50"、"<>55"。演算子のない数値だけなら「等しい」という意味です。

数値で数える
F2
ABCDEF
1RepRegionSalesConditionCount
2AnaNorth120Over 504
3BenSouth4550 or less2
4CaraNorth80Exactly 551
5DanEast55Not 555
6EvaSouth200Limit100
7FinnNorth30Over the limit2
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

6件の売上のうち4件が50より大きく、2件が50以下なので、F2とF3の合計は必ず行数と同じになります。F7は基準値をF6から読みます。F6を50に変えると、F7はF2と同じ件数を表示します。

COUNTIFでセル参照を条件にする

比べる値がセルに入っているときは、演算子を引用符の中に残し、セルを&でつなぎます:">"&F6、"<="&F6、"<>"&E3。COUNTIFでよくある間違いは">F6"と書くことです。引用符の中のF6はただの2文字の文字列なので、Excelはすべての数値を「F6」という文字列と比べ、件数はほぼ必ず0になります。

「セルと等しい」なら演算子はいりません。E3に値が入っていれば、=COUNTIF(B2:B7,E3)は=COUNTIF(B2:B7,"="&E3)と同じです。

COUNTIFで文字列を含むセルを数える: ワイルドカード

COUNTIFの条件では2つのワイルドカードが使えます。*は任意の数の文字を、?はちょうど1文字を表します。"*apple*"はどこかにappleを含むセルに、"P*"はPで始まるセルに、"????"はちょうど4文字の文字列に一致します。

ワイルドカードで文字列を数える
D2
ABCD
1ProductConditionCount
2Applecontains apple4
3Pineapplestarts with P3
4Pear4 letters2
5apple juiceequal to APPLE1
6not Pear6
7Plumempty1
8Green applenot empty6
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

D2とD5を見比べてください。"*apple*"は4つのセルを見つけますが、ワイルドカードのない"APPLE"はちょうどAppleのセル1つしか見つけません。ワイルドカードがないとセル全体が一致する必要があり、一致は大文字と小文字を区別しないので、"APPLE"、"Apple"、"apple"は同じセルを数えます。

D6には落とし穴があります。"<>Pear"が6を数えるのは、空のA6も「Pear以外」だからです。入力済みのセルのうちPear以外だけを数えるには、COUNTIFSで2つの条件を使います:=COUNTIFS(A2:A8,"<>Pear",A2:A8,"<>")。

セルの文字列を使うには、ワイルドカードをそのセルにつなげます:=COUNTIF(A2:A8,"*"&E2&"*")。本物のアスタリスクや疑問符を数えるには、前にチルダを付けます:"~*"。ほかのパターンはワイルドカードのページに、何らかの文字列が入ったセルをすべて数える方法は文字列が入ったセルを数えるにあります。

COUNTIFで空白と空白以外を数える

上のシートのD7とD8は、空のセルと入力済みのセルを数えています。""は空白、"<>"は空白でないという意味です。空の文字列を返す数式(=IF(B2>0,B2,""))は空白に見え、""は空白として数えますが、"<>"もそのセルを入力済みとして数えます。セルに数式が入っているからです。これを避ける方法はCOUNTIFで空白以外を数えるで説明しています。

COUNTIFで日付を条件にする

Excelでは日付は数値なので、比較演算子が使えます。日付はDATEで作るかセルから取り、&で演算子につなげます。引用符の中に自分の地域の形式で日付を書いてはいけません。">3/1/2026"は米国では3月1日ですが、ヨーロッパの多くの国では1月3日です。

日付で数える
E2
ABCDE
1RepDateConditionCount
2Ana2026-01-05From Feb 14
3Ben2026-01-12Cutoff2026-03-01
4Cara2026-02-03Before the cutoff4
5Dan2026-02-18On Jan 121
6Eva2026-03-02
7Finn2026-03-20
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

E2は2月1日以降の4つの日付を数えます。E4はE3の締め日より前の日付を数えます。E3を2026-02-01に変えると2に減ります。2つの日付の間を数えるには条件が2つ必要なので、COUNTIFSを使います:=COUNTIFS(B2:B7,">="&DATE(2026,2,1),B2:B7,"<"&DATE(2026,3,1))。

COUNTIFで重複を数える

リスト全体を対象に、そのリストのセルの1つでCOUNTIFすると、その値が何回出てくるかがわかります。1より大きければ重複です。数式を下にコピーしてもリストが動かないよう、$で固定します。

重複した名前に印を付ける
B2
ABC
1NameTimesDuplicate?
2Ana2TRUE
3Ben2TRUE
4Cara1FALSE
5Ana2TRUE
6Dan1FALSE
7Ben2TRUE
8Eva1FALSE
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

AnaとBenは2回出てくるので、その行には2とTRUEが表示され、A2:A8に設定した条件付き書式のルール=COUNTIF($A$2:$A$8,A2)>1がそれらを強調します。最後の名前をCaraに変えると、Caraも色が付きます。

=COUNTIF($A$2:A2,A2)>1(範囲の始まりだけを固定)は、各名前を先頭から自分の行までで数えるので、2つ目のAnaには印が付き、1つ目には付きません。この形は削除するコピーに印を付け、それぞれの最初の1つを残します。詳しい方法は重複の削除にあります。

練習: セルを使ったCOUNTIF

やってみよう: 大口の注文を数える
E3
ABCDE
1OrderAmountSettingValue
2A-101120Limit100
3A-10245Orders over limit
4A-103310
5A-104100
6A-10585
7A-106140
8A-10799
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: B2:B8の注文のうち、E2の基準値より大きいものを数えてください。数式はE3に書きます。

正解したらE2を変えてみてください。件数がそれに合わせて動くはずです。ちょうど100の注文は100「より大きい」には入りません。

やってみよう: 単語を含むものを数える
D3
ABCD
1ProductSettingValue
2AppleWordapple
3Pear juiceMatches
4Pineapple
5Banana
6Green apple
7Pear
8Apple cider
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: A2:A8の商品のうち、名前のどこかにD2の単語を含むものを数えてください。数式はD3に書きます。

COUNTIFで複数の条件を指定する

COUNTIFが受け取る条件は1つです。2つ以上なら、2つの場合があります。

すべての条件を満たす(Northかつ50より大きい)場合は、範囲と条件の組を受け取るCOUNTIFSを使います。

=COUNTIFS(B2:B7,"North",C2:C7,">50")

どちらかの条件を満たせばよい(NorthまたはSouth)場合は、COUNTIFを2つ足すか、1つのCOUNTIFに波かっこでリストを渡して結果をSUMします。

=COUNTIF(B2:B7,"North")+COUNTIF(B2:B7,"South")
=SUM(COUNTIF(B2:B7,{"North","South"}))

1つのセルが両方の条件に一致しうる場合("*apple*"または"*green*")、このOR版は使わないでください。Green appleが2回数えられてしまいます。条件が重なるときは、=SUMPRODUCT(--((ISNUMBER(SEARCH("apple",A2:A8))+ISNUMBER(SEARCH("green",A2:A8)))>0))で各セルを1回だけ数えられます。

大文字と小文字を区別して数える

COUNTIFはAppleとappleを区別しません。大文字と小文字が重要なときは、大文字と小文字を区別するEXACTで比べ、TRUEの結果を合計します:

=SUMPRODUCT(--EXACT(A2:A8,"Apple"))

--はTRUEとFALSEを1と0に変えます。COUNTIFで表せない条件には、SUMPRODUCTが汎用的な道具です。

COUNTIFが0や間違った件数を返す理由

  • 演算子とセルが両方とも引用符の中にある。 ">F6"はF6という文字列と比べます。">"&F6と書いてください。
  • データに余分なスペースがある。 末尾にスペースの付いた「North 」は「North」と等しくありません。"North*"で数えて確かめ、TRIMで列をきれいにしてください。
  • 文字列として保存された数値。 ">50"のような条件は本物の数値しか比べないので、文字列として入力された数値(左寄せで、緑色の三角形が付いていることが多い)は飛ばされます。先に変換してください。文字列として保存された数値を参照してください。
  • 範囲が閉じている別のブックを指している。 そのブックを開くまで、COUNTIFは#VALUE!を返します。SUMPRODUCTにはこの制限がありません。
  • 255文字より長い文字列。 COUNTIFは255文字より長い文字列には一致できません。代わりに直接比べます:=SUMPRODUCT(--(A2:A8=E2))。

よくある質問

ExcelでCOUNTIFはどう使いますか?

範囲と条件を指定します。=COUNTIF(B2:B7,"North")はB2:B7のうちNorthと等しいセルを数え、=COUNTIF(C2:C7,">50")は50より大きい数値を数えます。文字列と比較の条件はダブルクォーテーションで囲みます。

COUNTIFでセル参照を条件にするには?

演算子とセルを&でつなぎます。=COUNTIF(C2:C7,">"&F6)はF6の数値より大きい値を数えます。">F6"のように引用符の中に書くと、F6という文字列と比べることになり、たいてい0が返ります。

COUNTIFは大文字と小文字を区別しますか?

区別しません。"apple"、"Apple"、"APPLE"はどれも同じセルを数えます。大文字と小文字を区別して数えるには=SUMPRODUCT(--EXACT(A2:A8,"Apple"))を使います。

COUNTIFで複数の条件を指定するには?

すべての条件を満たすセルを数えるならCOUNTIFSを使います:=COUNTIFS(B2:B7,"North",C2:C7,">50")。2つの値のどちらかなら、COUNTIFを2つ足します:=COUNTIF(B2:B7,"North")+COUNTIF(B2:B7,"South")。

Coddyのプログラミング言語のイラスト

Coddyでコードを学ぼう

始める