※本ページにはプロモーション(広告)が含まれています
ExcelのCOUNTIF関数が正しくカウントされない・0になる原因と対処法
「ExcelのCOUNTIF関数が正しい件数をカウントしてくれない」「明らかに値があるのに0が返ってくる」「COUNTIF関数で文字列を検索しているが結果がおかしい」──ExcelのCOUNTIF関数に関するトラブルは、データ型の不一致やスペース・書式の問題が原因の場合がほとんどです。
この記事では、COUNTIF関数が正しく動作しない原因を整理し、具体的な解決方法を手順ごとに解説します。
この記事でわかること
- COUNTIF関数が0を返す主な原因
- 数値と文字列の型不一致を解決する方法
- スペース・改行が混入している場合の対処
- ワイルドカードを使った正しい検索方法
- 日付・時刻データをカウントする際の注意点
COUNTIF関数の基本構文
| 引数 | 説明 | 例 |
|---|---|---|
| 範囲 | カウントするセル範囲 | A1:A100 |
| 検索条件 | カウントする条件 | “東京”、”>50″、B1 |
基本の書き方:=COUNTIF(A1:A100,"東京")
COUNTIFが正しくカウントされない主な原因
原因1:数値と文字列の型不一致
セルに「数値として保存された文字列」(左揃えになっている数値)が含まれると、=COUNTIF(A:A, 1) などの数値検索でカウントされません。
原因2:余分なスペースが含まれている
データに全角スペース・半角スペースが含まれていると、「東京」と「東京 」は別データとして扱われてカウントが合いません。
原因3:検索条件の指定方法が誤っている
文字列を数値として指定、またはその逆の場合に正しくカウントされません。
原因4:ワイルドカードの使い方が誤っている
COUNTIF関数では「*」(任意の文字列)「?」(任意の1文字)が使えますが、構文を誤るとカウントが0になります。
原因5:セル範囲が間違っている
絶対参照・相対参照の設定ミスや、列全体を指定すべきところで行を指定しているケースです。
対処法1:数値と文字列の型不一致を解消する
セルの左上に緑色の三角マークが表示されている数値は「文字列として保存された数値」です。
手順(数値を文字列検索する場合)
- COUNTIF関数の検索条件を文字列として指定する
- 例:
=COUNTIF(A:A,"1")(数値1ではなく文字列”1″で検索)
手順(文字列を数値に変換する場合)
- 問題のセル範囲を選択
- 「データ」タブ→「区切り位置」→「完了」をクリック(型変換を強制実行)
- または空白セルに「1」を入力してコピー→問題セルを選択→形式を選択して貼り付け→「乗算」を選択
対処法2:スペース・不要文字を削除する
TRIM関数でスペースを取り除く
- 作業列にTRIM関数を入力:
=TRIM(A1) - TRIM関数は先頭・末尾のスペースと連続スペースを1つに圧縮する
- COUNTIF関数の範囲を作業列に変更する
SUBSTITUTE関数で全角スペースも取り除く
全角スペースはTRIM関数では取り除けないため、SUBSTITUTE関数を使います。
例:=SUBSTITUTE(SUBSTITUTE(A1," ","")," ","")(半角・全角スペースを両方削除)
対処法3:検索条件の書き方を確認する
| カウントしたい条件 | 正しい書き方 | 誤った書き方 |
|---|---|---|
| 文字列「東京」 | =COUNTIF(A:A,”東京”) | =COUNTIF(A:A,東京) |
| 数値100より大きい | =COUNTIF(A:A,”>100″) | =COUNTIF(A:A,>100) |
| 空白セル | =COUNTIF(A:A,””) | =COUNTIF(A:A,空白) |
| 「東京」を含む | =COUNTIF(A:A,”*東京*”) | =COUNTIF(A:A,”東京”) |
| B1セルの値と同じ | =COUNTIF(A:A,B1) | =COUNTIF(A:A,”B1″) |
対処法4:ワイルドカードを正しく使う
COUNTIF関数のワイルドカードは特定の文字を含む条件検索に使います。
*(アスタリスク):任意の0文字以上の文字列?(クエスチョンマーク):任意の1文字
ワイルドカードの使用例
=COUNTIF(A:A,"*東京*"):「東京」を含むセルをカウント=COUNTIF(A:A,"東京*"):「東京」で始まるセルをカウント=COUNTIF(A:A,"*東京"):「東京」で終わるセルをカウント=COUNTIF(A:A,"???東京"):「東京」の前に3文字あるセルをカウント
対処法5:日付データのカウント方法
日付をカウントする場合は、日付をシリアル値として扱う必要があります。
特定の日付をカウント
=COUNTIF(A:A,"2026/3/1")または=COUNTIF(A:A,DATE(2026,3,1))
特定の月のデータをカウント(SUMPRODUCT使用)
=SUMPRODUCT((YEAR(A1:A100)=2026)*(MONTH(A1:A100)=3))
よくある質問(FAQ)
Q. COUNTIF関数で大文字・小文字を区別してカウントしたいです。
A. COUNTIF関数は大文字・小文字を区別しません。区別してカウントしたい場合はSUMPRODUCT関数とEXACT関数の組み合わせを使います:=SUMPRODUCT((EXACT(A1:A100,"ABC"))*1)
Q. 複数条件でカウントしたいです。
A. 複数条件の場合はCOUNTIFS関数を使います:=COUNTIFS(A:A,"東京",B:B,">100")
Q. COUNTIFの結果と目視で数えた件数が合いません。
A. 非表示の行や結合セルがカウントに含まれている場合があります。また、データにスペースや改行が混在している可能性があります。TRIM関数で整理してから再確認してください。
Q. COUNTIF関数で「#VALUE!」エラーが出ます。
A. 検索範囲が別のブックを参照している場合に発生することがあります。参照先のブックを開いた状態で計算するか、SUMPRODUCT関数に切り替えてください。
まとめ
| 問題 | 対処法 |
|---|---|
| 数値なのに0が返る | 文字列型か確認→型変換または検索条件を文字列に |
| スペース入りデータが混在 | TRIM関数でスペースを除去してから集計 |
| 部分一致でカウントしたい | ワイルドカード「*」を使う |
| 複数条件でカウント | COUNTIFS関数を使う |
| 大文字小文字を区別 | SUMPRODUCT+EXACT関数を使う |
COUNTIF関数が正しく動かない場合、まず検索条件の書き方(ダブルクォート・比較演算子)を確認し、次にデータの型(数値か文字列か)とスペースの混入を確認してください。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!