🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

ExcelのCOUNTIF関数 — 1つの条件に合うセルを数える(そして条件の書き方の罠)

|

ExcelのCOUNTIF関数 — 1つの条件に合うセルを数える(そして条件の書き方の罠)

要点COUNTIF(範囲, 条件)範囲 の中で1つの条件を満たす セルがいくつあるかを数えます。この関数のすべては、多くの人が見落とす1つの 事実で決まります。条件はテキストの断片——文字列として書かれた小さな テストだ、ということ。これさえ掴めば、あらゆるクセ(引用符の中の演算子、 セルの値を差し込む &、ワイルドカード、日付の罠)が謎でなくなります。

=COUNTIF(A2:A100, "West")        ' テキストの完全一致(大文字小文字を区別しない)
=COUNTIF(B2:B100, ">100")        ' 演算子は引用符の中に入れる
=COUNTIF(B2:B100, ">"&E1)        ' しきい値をセルから——& で連結する
=COUNTIF(A2:A100, "*apple*")     ' "apple" を含む——ワイルドカードはテキストで効く
=COUNTIF(A2:A100, "*")           ' テキストのセルはいくつあるか

COUNTIF は Excel の主力の一つであり、最も検索される関数の一つです。「このうち いくつが一致する?」は絶えず尋ねる問いだからです。同時に、多くの式が静かに間違う 場所でもあります——ほぼ必ず、条件が COUNTIF の読み方どおりに組み立てられていない せいです。

この記事で学べること

  • なぜ条件は文字列なのか、そしてそれが何を説明するか
  • 演算子を引用符に入れる、& でセルの値を差し込む
  • 「含む/で始まる/で終わる」テキスト件数のためのワイルドカード
  • 長い数値での15桁精度の罠(カード番号や ID)
  • 条件が1つでは足りないとき——COUNTIFS へのステップアップ

考え方の軸:条件は式ではなく文字列

たいていの式では、生きた比較を書きます——B2>100 は入力したそばから評価され ます。COUNTIF では違います。テストの説明をテキストとして手渡すと、COUNTIF が その説明を範囲内のすべてのセルに適用します。この1つの設計上の選択が、COUNTIF の 挙動のほぼすべてを説明します。

=COUNTIF(B2:B100, ">100")     ' 正:テスト全体が文字列
=COUNTIF(B2:B100, >100)       ' 誤:>100 は単独では有効な式ではない

「条件は文字列」を体に入れれば、ルールは自然に従います。演算子(><>=<>)は値と一緒に引用符のに置く。裸の数値や語("West"42)は「これに 等しい」を意味する。そしてしきい値が定数ではなくセルにあるときは、セル参照を 引用符の中に入れることはできず——&文字列を組み立てる必要があります。

現場で一番多い要求:セルに置いたしきい値

数値をベタ書きすることはほぼありません。しきい値はセルにあります——フィルター ボックス、パラメータ、目標値。これは COUNTIF で最もよくある問いであり、答えは 連結です。

=COUNTIF(B2:B100, ">"&E1)        ' E1 が持つ値より大きいものを数える
=COUNTIF(A2:A100, E1)            ' E1 の値に完全一致
=COUNTIF(A2:A100, "*"&E1&"*")    ' E1 のテキストを含むセル
=COUNTIF(C2:C100, ">="&E1&"")    ' E1 の日付でも機能する

仕組みはこうです。">"&E1 は演算子の文字列にセルの値を貼り合わせ、">100" の ような完成した条件文字列を作ります。もし ">E1" と打ちたくなったら——やめて ください。それは文字どおり「E1」というテキストを探します。参照は引用符のに 置き、& でつなぎます。

ワイルドカード:含む・で始まる・で終わる

テキストに対して、COUNTIF はワイルドカードをサポートします。これが「いくつの セルが…を含むか」という問いの道具たるゆえんです。

=COUNTIF(A2:A100, "apple*")    ' "apple" で始まる
=COUNTIF(A2:A100, "*apple")    ' "apple" で終わる
=COUNTIF(A2:A100, "*apple*")   ' どこかに "apple" を含む
=COUNTIF(A2:A100, "?????")     ' ちょうど5文字(? = 任意の1文字)
=COUNTIF(A2:A100, "*")         ' 任意のテキスト(「テキストのセルを数える」に最適)
=COUNTIF(A2:A100, "<>")        ' 空でないセル

知っておくべきことが2つ。テキストの照合は大文字小文字を区別しません—— "apple" は "Apple" も "APPLE" も同じに数えます。大文字小文字を区別して数えたい なら、SUMPRODUCTEXACT の組み合わせが要ります。そして文字どおりの アスタリスクや疑問符に一致させたいときは、チルダでエスケープします——"~*" は 実際の * 文字を見つけます。

罠:日付と長い数値

人が繰り返しはまる失敗モードが2つあります。

日付。 =COUNTIF(A:A, ">2026-01-01") は COUNTIF にテキストの日付を解釈 させることになり、これは地域設定に依存し、気づかぬうちに誤読しかねません。代わり に本物の日付から条件を組み立てれば、解釈の当て推量が入りません。

=COUNTIF(A2:A100, ">="&DATE(2026,1,1))            ' 堅牢、ロケール非依存
=COUNTIF(A2:A100, ">="&DATE(2026,1,1))-COUNTIF(A2:A100, ">"&DATE(2026,12,31))

長い数値。 COUNTIF は数値を有効15桁の精度でしか比較しません。クレジット カード番号、16〜18桁の ID、末尾だけが違う長い口座番号は等しいとして扱われる ため、数が多く出すぎます。対策は、それらをテキストとして保存・照合し、ワイルド カードを足してテキスト比較を強制すること——=COUNTIF(A2:A100, E1&"*")、あるいは ID をテキストのまま保持して文字列全体で一致させます。

条件は1つだけ:COUNTIFS に手を伸ばすとき

COUNTIF の決定的な限界は名前そのものにあります。1つの範囲、1つの条件。 「金額 > 100 かつ 地域 = West」が必要になった瞬間、COUNTIF は1回の呼び出しでは 対応できません——そして COUNTIF を積み重ねても and にはならず、or になって しまいます。

' OR(どちらかの条件):COUNTIF を足す
=COUNTIF(A2:A100,"West") + COUNTIF(A2:A100,"East")

' AND(両方の条件):これは COUNTIF ではなく COUNTIFS
=COUNTIFS(A2:A100,"West", B2:B100,">100")

だから判断ルールは明快です。条件1つ → COUNTIF。すべて成り立つべき条件が 2つ以上 → COUNTIFS 「かつ」を表そうとして COUNTIF(...) + COUNTIF(...) を書いている自分に気づいたら、それが COUNTIF を 卒業した合図です。(一致ではなく異なる値を数えたい場合は、 ユニークな値を数えるを参照してください。)

判断のポイント

COUNTIF が何より報いてくれる習慣が1つあります。条件を、自分が組み立てている 文字列として扱うこと。 定数のテストは演算子と一緒に引用符へ。セルベースの しきい値は引用符の外で & を使って組み立てる。テキストの問いはワイルドカード。 日付の問いは DATE() を使い、地域ごとの解釈に何も委ねない。そして限界を知る—— 条件は1つ。COUNTIF は意図的に狭く、その狭さこそが長所です。問いに2つ目の条件が 生えたとき、答えはより賢い COUNTIF ではなく、COUNTIFS です。

ExcelMaster の使いどころ

間違った数を返す COUNTIF がエラーになることはめったにありません——条件が、Excel の読み方ではなくあなたの読み方で組み立てられていただけです。ExcelMasterは 最初から条件を正しく書きます。セルのしきい値を & で連結し、「含む」の問いには ワイルドカードを選び、日付範囲には DATE() を使い、2つ目の条件が現れた瞬間に COUNTIFS へ切り替えます。「E1 の目標を超える注文を数えて」や「返金に触れている 行はいくつ」と伝えれば、あなたの意図どおりに数える式を作り——さらに、合計を 水増しする前に15桁の罠を指摘します。

よくある質問

ExcelでCOUNTIFを使うには?

=COUNTIF(範囲, 条件)範囲 の中で1つの条件を満たすセルを数えます。条件は テキストで書きます——完全一致なら "West"、比較なら ">100"(演算子は引用符の 中)、「apple を含む」なら "*apple*"。セルの値を使うには連結します—— =COUNTIF(B:B, ">"&E1)

COUNTIFとCOUNTIFSの違いは?

COUNTIF は1つの範囲に1つの条件を扱います。COUNTIFS は複数の範囲にまたがる 複数の条件を扱い、すべての条件が成り立つ行を数えます——たとえば 地域 = West かつ 金額 > 100。COUNTIF を2つ重ねると足し算(or)になるので、 and のロジックには COUNTIFS を使います。

セルの値をCOUNTIFの条件にするには?

演算子の文字列とセル参照を & で連結し、参照は引用符の外に置きます—— =COUNTIF(B:B, ">"&E1) は E1 より大きい値を数えます。">E1" と書くと、代わりに 文字どおりのテキスト「E1」を探してしまいます。

COUNTIFはワイルドカードに対応していますか?

はい、テキストに対して。* は任意の文字数に、? はちょうど1文字に一致します—— "apple*"(で始まる)、"*apple*"(含む)、"?????"(5文字)。テキストのセルを 数えるには "*" を使います。文字どおりの *? に一致させるには、チルダで エスケープします——"~*"

クレジットカード番号のような長い数値をCOUNTIFが数え間違えるのはなぜ?

COUNTIF は数値を有効15桁の精度で比較するため、後ろの桁だけが違う長い数値は等しい ものとして扱われ、多く数えられます。そうした ID はテキストとして保存し、(必要 ならワイルドカードを添えて)文字列全体で一致させ、テキスト比較を強制します。

検証環境

検証環境: Excel 365 (Windows 11) — 最終確認 2026-07-07。

関連ガイド: ExcelのCOUNTIFS関数 · COUNT・COUNTA・COUNTBLANK · ユニークな値を数える · ExcelのSUMPRODUCT関数