
Excelで特定のデータを柔軟にカウントしたいのに、うまくいかない…そんな経験ありませんか?
- COUNTIFがうまく反応しない
- セル参照で条件が動かない
- 部分一致の使い方が曖昧
- 文字列を正確に拾えない
このページでその悩みを解決します。
- 部分一致とセル参照の基本
- 正しい範囲の指定方法
- 数字や記号の注意点
- 複数条件や誤動作の防ぎ方
「COUNTIF関数で“特定の文字が入っていたらカウントしたい”」
「部分一致で柔軟に集計したい」
そんなときに知っておくべき
セル参照との正しい組み合わせ方を中心に、範囲指定・複数条件・誤カウントの防止策までしっかり解説していきます。
COUNTIF関数で部分一致とセル参照を組み合わせる方法
ここでわかること
- COUNTIF関数部分一致 セル参照の基本形
- セルに特定の文字が入っていたらカウント
- COUNTIF関数の部分一致範囲の指定方法
- COUNTIF関数で複数条件を使うには
COUNTIF関数部分一致 セル参照の基本形
COUNTIF関数で部分一致を使うには
COUNTIF関数で「部分一致」を使いたい場合は、ワイルドカードを条件に含めるのがポイントです。
たとえば「非常勤」という文字を含むかどうかを調べたいなら、「"*非常勤*"」のように記述します(*は半角アスタリスク)。
*(アスタリスク)は、文字列の前後に何があってもOKという意味のあいまい検索記号です。
セル参照で条件を動的にする
部分一致の条件は、直接文字列で指定することもできますが、セルに入力したキーワードを参照する方法も便利です。
その場合は、ワイルドカードとセル番地をアンパサンド(&)でつなぎます。
たとえば、検索したい文字がセルH1にあるなら、次のように書きます。
- =COUNTIF(E4:E18,"*"&H1&"*")
このように記述すれば、セルH1の値が変わるたびに検索条件も動的に変わるようになります。

▲ セルH1に「非」を入力し、COUNTIFで「非常勤」などを含むセルをカウント
条件の書き方別 COUNTIFの例
次の表に、よく使う記述パターンをまとめました。
| 条件 | 検索条件の記述 | 数式例 |
|---|---|---|
| 文字を含む | "*"&セル番地&"*" | =COUNTIF(E4:E18,"*"&H1&"*") |
| 文字で始まる | セル番地&"*" | =COUNTIF(E4:E18,H1&"*") |
| 文字で終わる | "*"&セル番地 | =COUNTIF(E4:E18,"*"&H1) |
部分一致×セル参照の注意点
ダブルクォーテーション(")とアンパサンド(&)の組み合わせミスが多いので注意してください。
特に、条件を手入力した場合とセル参照でつないだ場合では、見た目が似ていても動作が変わることがあります。
また、全角と半角の違いや余計なスペースがあると、正しくカウントされないこともあります。
こうしたトラブルを防ぐためには、文字列を扱うセルにはTRIM関数やCLEAN関数を併用しておくと安心です。
このあと解説する内容について
ここまでで基本的な使い方がわかったかと思います。
後半では、「複数条件の組み合わせ」や「ありがちなミスとその対処法」について解説します。
セルに特定の文字が入っていたらカウント
Excelで「特定のキーワードを含むセルの数を知りたい」ときに活躍するのが、COUNTIF関数と部分一致の組み合わせです。
たとえば、社員の勤務形態の一覧から「非常勤」という文字を含む人の数だけをカウントしたい場合、完全一致では正しく集計できません。
このように「一部の文字列を含むセルを数える」には、ワイルドカード「*」を使った条件設定が必須です。
●よくある実用シーンの例
| 目的 | 関数の例 |
|---|---|
| 「非常勤」を含む勤務形態を数える | =COUNTIF(E4:E18,"*非常勤*") |
| 「仮」などの仮登録者をカウント | =COUNTIF(A2:A100,"*仮*") |
| 「済」で終わる項目をカウント | =COUNTIF(B2:B50,"*済") |
「*文字列*」という形で条件を設定すれば、前後に何がついていても対象としてカウントできます。
これを「部分一致」と呼びます。

▲ 「非常勤」を含む勤務形態のセルをカウント
●注意すべきポイント
COUNTIF関数では、大文字・小文字の違いは無視されます。
また、全角スペースや不要な改行が混じっていると、見た目が同じでもカウントされないことがあります。
こうしたときには、TRIM関数やCLEAN関数を使って、事前にデータを整えるとよいでしょう。
●セル参照と組み合わせればもっと便利に
毎回キーワードを関数に直接書くのが面倒なときは、セル参照と組み合わせると柔軟性が増します。
たとえば、検索条件をセルH1に入力しておき、次のように書くと:
- =COUNTIF(E4:E18,"*"&H1&"*")
H1の文字を変更するだけで、検索対象も即座に変えられるようになります。

▲ セルH1の値に応じて検索文字列を変えることも可能
日常業務でも、「○○が入っている行数だけ知りたい」というケースは多いので、このテクニックは覚えておくと非常に便利です。
COUNTIF関数の部分一致範囲の指定方法
COUNTIF関数で「部分一致」を使うとき、見落としがちなのが範囲の指定ミスです。
検索条件にワイルドカードを正しく使っても、指定する範囲がずれていると意図しない結果が出ることがあります。
●範囲に列全体を指定してもOK?
結論から言えば、COUNTIF関数では列全体(例:A:A、B:B)を指定することも可能です。
ただし、対象範囲が大きくなることで処理が重くなる場合があるので注意が必要です。
特に複数のCOUNTIFを組み合わせた場合、全列指定はパフォーマンスの低下につながることがあります。

▲ D4:D18の限定範囲と、D:Dの全列指定の比較。処理速度や精度に差が出る場合も。
●複数行を範囲指定する場合の注意
たとえば「D4:D18」のように、具体的なセル範囲を明示する方がパフォーマンス面でも精度面でも安心です。
特定の表やデータがある場合は、最初と最後の行番号をしっかり確認してから数式を設定するようにしましょう。
●動的に範囲を変えたいときの工夫
データの行数が増減する可能性があるなら、Excelのテーブル機能を使って範囲を自動追従させるのが便利です。
テーブルとして設定すると、列名を使った構造化参照(例:Table1[勤務形態])が可能になります。
ただし、COUNTIF関数は構造化参照をサポートしていないため、その場合はFILTER関数やSUMPRODUCT関数との併用も検討するとよいでしょう。
●COUNTIF関数で範囲指定する際のまとめ
| 指定方法 | 特徴 | おすすめ度 |
|---|---|---|
| A:A(列全体) | 全行をカバーできるが重くなりがち | △ |
| D4:D18(行を明示) | 範囲が固定されており軽量 | ◎ |
| テーブル参照 | 行数が増えても自動対応 | 〇(COUNTIF以外で推奨) |
このように、COUNTIF関数の結果が正しく出ないときは、まず範囲指定を見直すことが大切です。
とくにコピー&ペーストで式を作成したときは、思わぬ位置を参照していることもあるので要チェックです。
COUNTIF関数で複数条件を使うには
COUNTIF関数はとても便利ですが、実は1つの条件にしか対応していません。
たとえば「部署が営業部かつ勤務形態が非常勤」というように、複数の条件を組み合わせたい場合には、COUNTIFでは対応しきれません。
このようなケースで使うのが、COUNTIFS関数です。
●COUNTIFとCOUNTIFSの違い
COUNTIF関数は、「この範囲に、条件を満たすセルはいくつあるか?」という1条件限定の関数です。
一方でCOUNTIFS関数は、複数の条件(AND条件)を指定できる点が大きな違いです。
例:
- =COUNTIFS(A2:A20,"営業部", B2:B20,"*非常勤*")
このように、部署列が「営業部」で、かつ勤務形態列に「非常勤」を含むセルの数をカウントできます。

▲ COUNTIFSによるAND条件と、COUNTIF+COUNTIFによるOR条件の違いが一目でわかる
●AND条件とOR条件の違いに注意
COUNTIFS関数はすべての条件を満たす(AND)セルのみをカウントします。
「いずれかに該当する(OR)」条件で数えたい場合は、COUNTIFを複数組み合わせて足し算する必要があります。
例:
- =COUNTIF(B2:B20,"*非常勤*") + COUNTIF(B2:B20,"*パート*")
このように書けば、「非常勤」または「パート」といった勤務形態が含まれるセルを合計できます。
●部分一致と複数条件を併用したいとき
部分一致の条件(ワイルドカード付き)も、COUNTIFS関数で使うことができます。
ただし、すべての条件を文字列として正しく記述する必要があります。
また、セル参照と組み合わせる場合は、"*" & セル & "*"という形式を忘れないようにしましょう。
●実際の式の組み立て方まとめ
| 目的 | 使用関数 | 式の例 |
|---|---|---|
| 1条件で部分一致 | COUNTIF | =COUNTIF(B2:B20,"*非常勤*") |
| 2条件のAND | COUNTIFS | =COUNTIFS(A2:A20,"営業部",B2:B20,"*非常勤*") |
| 2条件のOR | COUNTIF + COUNTIF | =COUNTIF(B2:B20,"*非常勤*") + COUNTIF(B2:B20,"*パート*") |
このように、COUNTIFはシンプルだが1条件のみ。
条件を増やすならCOUNTIFSに切り替える必要があります。
また、OR条件にするには関数の「合算」が必要になる点にも注意しましょう。
この後の記事では、部分一致×複数条件を応用する具体例をさらに詳しく紹介していきます。
COUNTIF関数 部分一致 セル参照でありがちなミスとは
ここでわかること
- COUNTIF関数で一致しないのにカウントされる原因
- COUNTIF関数 完全一致との違いに注意
- 部分一致のセル参照での記述ミス
- エクセルで特定の文字のカウントの落とし穴
COUNTIF関数で一致しないのにカウントされる原因
ではここからは実際に、COUNTIF関数で「一致していないのにカウントされる」というよくあるトラブルについて解説します。
思った通りの条件でカウントされていない場合、実はデータの見た目と実際の値が異なっていることがよくあります。
以下のような原因が考えられるので、ひとつずつ確認していきましょう。
●原因1:スペースや改行が含まれている
一見「完全一致」しているように見えても、セル内にスペースや改行が含まれていると一致とみなされません。
特に、コピー&ペーストしたデータや、手入力でスペースキーを押してしまった場合によく起こります。
対処法としては、TRIM関数(余計な空白を削除)を使うと、余分なスペースを取り除いて比較できます。
●原因2:全角・半角の違い
COUNTIF関数では、文字の大文字・小文字は区別されませんが、全角と半角の違いは区別されます。
たとえば「営業部」と「営業部(全角スペース付き)」は、完全には一致しません。
また「123」と「123」も別の値として扱われます。
数値の場合は、表示形式が文字列になっていないかも合わせて確認しましょう。
●原因3:セルの書式が異なる
COUNTIF関数は、値の比較を行いますが、見た目の形式(書式)には影響されません。
しかし、文字列として入力された数値と、実際の数値が比較されると、思わぬズレが出ることがあります。
対処法としては、TEXT関数やVALUE関数を使って形式をそろえるのが効果的です。
●原因4:関数の条件式に誤りがある
COUNTIF関数で部分一致やセル参照を使う場合、条件式の書き方にミスがあると意図しない結果になることがあります。
特にありがちなのが、セル参照とワイルドカードのつなぎ方です。
例(誤り)
- =COUNTIF(A2:A10,"*"&A1)
→ 末尾にしか「*」がつかないため、前方一致しか見ません。
例(正しい)
- =COUNTIF(A2:A10,"*"&A1&"*")
前後両方に「*」をつけることで部分一致として正しくカウントされます。

▲ 一見同じに見えても、スペースや改行の影響で一致しないデータの例
●確認ポイントまとめ
| 原因 | 確認ポイント | 対策 |
|---|---|---|
| 空白・改行 | セル内に余分なスペースがないか | TRIM関数で削除 |
| 全角・半角 | 入力モードや文字コードを確認 | 同じ形式で統一 |
| 書式の違い | セルが文字列か数値か | TEXT/VALUEで統一 |
| 条件式の記述ミス | ワイルドカードの位置、"&"の使い方 | ="*"&セル&"*" を徹底 |
COUNTIF関数で思ったようにカウントできないときは、こうした「見えない違い」に注目すると原因が見えてきます。
COUNTIF関数 完全一致との違いに注意
部分一致と完全一致の違いとは
COUNTIF関数では、検索条件にワイルドカード(*や?)を使用することで、部分一致の検索が可能です。
一方で、ワイルドカードを使用しない場合は、完全一致の検索となります。
この違いを理解していないと、意図しない結果を得る可能性があります。
ワイルドカードの使用方法
部分一致の検索を行うには、検索条件にワイルドカードを含めます。
例えば、任意の文字列を表すアスタリスク(*)を使用して、特定の文字列を含むセルをカウントできます。
例:=COUNTIF(A1:A10, "*特定の文字列*")
ワイルドカードの誤用に注意
ワイルドカードを使用する際には、以下の点に注意が必要です。
- ワイルドカードを使用しないと、完全一致の検索になります。
- ワイルドカードを正しく使用しないと、意図しない結果を得る可能性があります。
- ワイルドカードを文字列として検索したい場合は、チルダ(~)を使用します。
例:=COUNTIF(A1:A10, "~*") は、アスタリスク(*)を含むセルをカウントします。
完全一致の検索方法
完全一致の検索を行うには、検索条件にワイルドカードを含めず、正確な文字列を指定します。
例:=COUNTIF(A1:A10, "特定の文字列")

▲ COUNTIF関数で「見た目は一致しているのにカウントされない」ことがある
まとめ
COUNTIF関数で部分一致と完全一致を使い分けるには、ワイルドカードの使用方法を正しく理解することが重要です。
ワイルドカードを使用することで柔軟な検索が可能になりますが、誤用すると意図しない結果を招く可能性があります。
正確な検索を行うために、ワイルドカードの使用方法を確認し、適切に使い分けましょう。
部分一致のセル参照での記述ミス
セル参照を使うときの注意点
COUNTIF関数で部分一致を行いたい場合、検索条件にセル参照を使うことがあります。
このとき、検索条件をただ "*H1*" のように記述してしまうと、セルの値ではなく文字列「H1」として扱われてしまい、意図した結果が得られません。
正しくは "*" & H1 & "*" のようにアンパサンド(&)でつなげてセルの中身を参照する必要があります。
よくある記述ミスと正しい書き方
- 誤:
=COUNTIF(B2:B10, "*H1*")→ 「H1」という文字列を検索してしまう - 正:
=COUNTIF(B2:B10, "*" & H1 & "*")→ H1セルの値を部分一致で検索
アンパサンド(&)を忘れるとセル参照にならない点に注意してください。
実際の画面例
下記の画像は、誤った数式と正しい数式を比較した例です。

このように、構文ミスをしてしまうと正しくカウントされず、「0」になるケースも多いため注意が必要です。
まとめ
COUNTIF関数でセル参照を使って部分一致を行う場合は、文字列の連結構文(&記号)を正しく使いましょう。
特にワイルドカード(* や ?)を使う際は、文字列として扱う範囲に誤りがないかをよく確認することが重要です。
エクセルで特定の文字のカウントの落とし穴
似た文字・記号の混在に注意
Excelで特定の文字をカウントするとき、見た目は同じでも「実際には異なる文字」が混じっているケースがあります。
例えば、「〇(全角マル)」と「○(丸印)」は見た目がほぼ同じですが、別の文字として扱われます。
このため、=COUNTIF(C2:C11,"○一般") のように完全一致でカウントしようとしても、「〇一般」は含まれません。
意図した文字だけが集計対象になっているか、注意深く確認しましょう。
全角・半角の違いによるミス
カタカナや記号などは全角と半角が混ざってしまうことも多く、カウントミスの原因になります。
例えば「パート(半角カナ)」と「パート(全角カナ)」は別物として認識されます。
セル内のデータ形式に統一感がない場合は、CLEAN関数やASC関数/JIS関数などを活用して、表記をそろえておくのが安全です。
記号を検索したいときの対処法
「*」や「?」などの記号を検索条件に使いたい場合、それらはワイルドカード(任意の文字列や1文字)として動作します。
これを記号そのものとして扱いたい場合は、前に ~(チルダ) を付けて検索しましょう。
例:=COUNTIF(A1:A10,"~*") → アスタリスクを含むセルをカウント
参考スクリーンショット
以下の画像では、「○一般」だけを数える数式を使っているにも関わらず、見た目が同じ「〇一般」が含まれていないことが確認できます。

記事のまとめ
記事のポイントをまとめます。
基本の使い方
- ワイルドカードで部分一致を実現
- セル参照は&でつなぐ
- 条件を動的に変更できる
記述ミスの防止策
- クォーテーションの使い方に注意
- アンパサンドの省略はNG
- 条件式の見直しが重要
範囲の指定方法
- 列全体より範囲指定が推奨
- テーブル機能で範囲を自動化
- コピー時の参照先に注意
誤動作の原因と対策
- 空白や改行が一致を妨げる
- 全角半角の混在に注意する
- 文字列と数値の書式に注意
応用テクニック
- COUNTIFSで複数条件に対応
- OR条件は関数を合算する
- 記号検索にはチルダを使う