この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。MicrosoftのCOUNTIF関数の公式説明を参考に、記号を文字として数える方法を架空の表で解説します。検証ステータス:📘 公式仕様を参考にした手順・Excel実機未確認
期待結果は関数仕様から説明しています。実際のExcel画面での操作と計算結果はまだ確認していません。
ExcelのCOUNTIFで「*」が全部一致する?ワイルドカードを文字として数える方法
Excelで商品名や問い合わせ分類を集計するとき、アスタリスク()を含む文字だけ数えたいのに、COUNTIFで全件が数えられてしまうことがあります。「」を条件にしたのに、なぜ「通常品」まで一致するのでしょうか。原因は、COUNTIFが一部の記号を普通の文字ではなく、検索のための特別な記号として扱うためです。
例えば、作業メモに「確認」「通常」「要確認?」が混在しているとします。ここで数えたいのは、記号が実際に入力されているセルです。しかし、単純に COUNTIF(A2:A6,"*") と書くと、アスタリスクが任意の文字列に一致するワイルドカードとして解釈され、目的とは異なる集計になります。見た目が似た「文字の」と「検索条件の*」を区別することが、この記事の中心です。
対象環境と準備
| 項目 | 内容 |
|---|---|
| 対象 | Microsoft ExcelのCOUNTIF関数 |
| 必要なもの | 空のワークシート |
| 入力 | 架空の作業区分5件 |
| 変更範囲 | 自分で作成した練習用セルだけ |
| 注意 | COUNTIFの比較条件でのワイルドカードの扱いを確認 |
| 未確認 | Excelの各バージョンの実画面、実計算結果 |
練習用の新しいブックを開き、A1に「作業区分」、A2からA6に次の文字列を入力してください。会社の実データや顧客名は使いません。アスタリスクと疑問符は、半角で入力することが重要です。全角の「*」や「?」は別の文字なので、結果が変わります。
| セル | 入力する文字列 |
|---|---|
| A2 | 確認* |
| A3 | 通常 |
| A4 | 要確認? |
| A5 | *保留 |
| A6 | 完了 |
まず、この5件のうち半角アスタリスクを含む行が何件あるか、目で数えてみてください。「確認」と「保留」の2件です。半角疑問符を含む行は「要確認?」の1件です。実際のセルと計算式を比較する前に、手作業の正解を持っておくと、関数が何を数えているのか判断しやすくなります。
実験1:「*」をそのまま条件にする
空いているセル、例えばC2に次の式を入力します。
=COUNTIF(A2:A6,"*")
この式は「半角アスタリスクという文字を含むセル」を数える式ではありません。COUNTIFの条件に書かれたアスタリスクは、任意の文字列に一致する特別な記号です。今回の5セルはいずれも文字列なので、期待される結果は5です。これは掲載式の仕様上の期待値であり、この記事の制作時にExcelで実測した数字ではありません。
「通常」や「完了」にはアスタリスクが見当たりません。それでも数えられることが、最初の発見です。検索条件としての「*」は、見た目に星印があるかを探しているわけではなく、文字列全体に一致する条件として働いています。条件に書いた記号と、セル内の記号は、同じ見た目でも役割が違います。
COUNTIFには、セルの範囲と条件という2つの引数があります。最初の A2:A6 は調べる場所です。次の "*" は判定に使う条件です。引用符があるからといって、必ず文字どおりの記号になるわけではありません。引用符はExcelの式の中で文字列の条件を渡すための書き方であり、その内部のワイルドカード解釈とは別の話です。
実験2:「~」で記号を文字として扱う
では、半角アスタリスクそのものを含むセルを数えるにはどうすればよいでしょうか。COUNTIFでは、特殊な記号の直前に半角チルダ(~)を置くことで、文字としての意味を指定できます。
=COUNTIF(A2:A6,"*~**")
この条件は、一見すると星印が多くて読みづらいかもしれません。左端の「」は、記号の前にどんな文字があってもよいという意味です。中央の「~」は、半角アスタリスクという文字そのものを意味します。右端の「*」は、その後ろにどんな文字があってもよいという意味です。したがって、文字列のどこかに半角アスタリスクがあるセルを数えます。
今回の期待結果は2です。「確認」と「保留」が一致し、「通常」「要確認?」「完了」は一致しません。文字の位置が先頭でも末尾でもよいように、両側へワイルドカードを置いている点がポイントです。
もし「セル全体が半角アスタリスク1文字だけ」という行を数えたいなら、条件は "~*" です。前後のワイルドカードがなくなるので、他の文字を含むセルは対象になりません。「含む」と「完全一致」を区別すると、業務の集計条件を誤りにくくなります。
図で見る:同じ星印でも役割が違う
次の図は、COUNTIFの条件に書いた記号をどう読み分けるかを示しています。Excel内部の処理を再現した図ではなく、式を読むときの判断順序を整理したものです。
flowchart TD
A["COUNTIFの検索条件"] --> B{"記号の書き方"}
B -->|"*"| C["任意の文字列として照合"]
B -->|"~*"| D["星印そのものを照合"]
B -->|"~?"| E["疑問符そのものを照合"]
C --> F["記号がない文字列も一致し得る"]
D --> G["文字としての星印を探せる"]
E --> H["文字としての疑問符を探せる"]
左側の分岐では、記号は検索の命令です。中央と右側の分岐では、記号をデータの一部として扱います。どちらが正しいかは、数えたい対象によって変わります。全件を数えたいのか、記号が入力された行だけを数えたいのかを、式を書く前に決めることが重要です。
条件を1つ変える:疑問符を探す
今度は半角疑問符を含むセルを数えます。COUNTIFの条件では、疑問符も特別な記号で、任意の1文字に一致します。つまり、"?" だけでは「疑問符という文字」を指定したことになりません。
=COUNTIF(A2:A6,"*~?*")
期待結果は1です。「要確認?」だけが一致します。星印の実験と比較すると、違うのは中央の ~* が ~? に変わった点だけです。両側の「*」は、文字列のどこに記号があっても探すという役割を変えずに残しています。このように1条件だけ変えると、式のどの部分が結果を決めるのかを確認できます。
もう一つの落とし穴はチルダそのものです。COUNTIFでチルダを文字として検索したい場合は、チルダを重ねて "~~" と表します。業務のデータに「~」が含まれるとき、単に特殊記号を前に付ければよいと覚えていると、意図しない条件になります。検索対象の文字が「*」「?」「~」のどれなのかを明確にしてから式を選んでください。
失敗したときは、どこを確認するか
期待した2件にならない場合、最初に確認したいのは入力された文字の種類です。半角「*」と全角「*」は違います。Excel上では似て見えても、検索条件の ~* は半角アスタリスクを対象とするため、全角の星印を含むセルには一致しません。入力方式を変えたデータが混ざっていないかを、数式バーで確認します。
次に、条件の引用符とチルダの位置を見直します。"*~**" は先頭から順に「任意の文字列」「文字としての星印」「任意の文字列」です。星印を探したいのに "~*" とした場合は、星印だけが入力されたセルを探す条件になり、前後に文字がある「確認*」には一致しません。式が壊れたのではなく、探す範囲が違うのです。
セルが空欄か、空文字列を返す数式なのかにも注意してください。ワイルドカードを使う条件と、単純な空白判定は同じ意味ではありません。今回の実験ではすべて文字列を直接入力しているので、空欄の違いを切り分け対象から外しています。本番表に空欄や数式が混在する場合は、代表的な行を追加して期待件数を先に決めてください。
最後に、数えたい範囲がずれていないかを確認します。A2:A6のつもりがA2:A5になっていれば、「完了」の行が対象外になります。逆に見出しのA1まで含めると、条件によっては見出しも集計されます。式の意味が正しくても、範囲が違えば結果は変わります。まず小さなサンプルで正解を決め、範囲を拡張するのが安全です。
仕事で使うなら、条件を言葉で残す
問い合わせ分類に「要確認?」のような印を付ける運用では、記号の意味を先に決めることが大切です。「疑問符がある行」は記号を含む文字列の検索ですが、「未確定の行」は業務上の状態の検索です。記号を状態の代わりに使うと、入力者によって表記が揺れ、集計式も複雑になります。継続運用する台帳では、状態を専用列で管理する方法も検討してください。
一時的なデータ確認や、外部から受け取った一覧の検査では、COUNTIFのワイルドカードが便利です。大量の行を一つずつ目視する代わりに、記号が混入している件数を先に調べられます。ただし、件数だけではどの行に問題があるかは分かりません。必要に応じてフィルターなどで該当行を確認し、修正前の原本を残します。
実際の台帳へ適用するときは、式をそのまま本番列に上書きせず、隣の空き列や別シートで結果を照合してください。少なくとも「記号あり」「記号なし」「全角記号」「空欄」を含む試験行を用意すると、入力の揺れによる誤集計を見つけやすくなります。集計結果が合ったことと、業務上の分類が正しいことは別なので、担当者が意味を確認できる形で残すことも大切です。
まとめ
COUNTIFで「*」を条件にすると、星印という文字を探すのではなく、ワイルドカードとして照合します。半角アスタリスクを含むセルなら "*~**"、半角疑問符を含むセルなら "*~?*" を使います。最初に5行の架空データで期待件数を決め、1条件だけ変えて比較すれば、記号の意味を混同せずに確認できます。
