エクセルで空白と0を除いてセルの数を数えるには、=COUNTIFS(C3:C10,”<>”,C3:C10,”<>0″) と入れます。”<>” は「空白ではない」、”<>0″ は「0 ではない」という条件で、COUNTIFS は両方に合うセルを数えます。
=COUNTIF(C3:C10,"<>0") だけだと、空白のセルも「0 ではない」として数えてしまうのが落とし穴です。この記事では、正しい数え方と、数値だけを数える方法を、実際の Excel の画面で説明します。
空白と0を除いて数える式の一覧
| 数えたいもの | 式 | 結果(記事の表) |
|---|---|---|
| 空白と0を除く(文字も数える) | =COUNTIFS(C3:C10,"<>",C3:C10,"<>0") | 4 |
| 0 ではないもの(空白も数えてしまう) | =COUNTIF(C3:C10,"<>0") | 6 |
| 0 より大きい数値だけ | =COUNTIF(C3:C10,">0") | 4 |
| 数値の個数から 0 を引く | =COUNT(C3:C10)-COUNTIF(C3:C10,0) | 4 |
「<>0」だけだと空白も数えてしまう
F3 には =COUNTIF(C3:C10,"<>0") が入っていて、結果は 6 です❶。0 ではないセルは 5・3・7・2 の4つなのに、空白の2つ(佐藤・渡辺)も「0 ではない」として数えられています❷。

COUNTIFS で空白と0を両方除く
F4 をダブルクリックして、=COUNTIFS(C3:C10,”<>”,C3:C10,”<>0″) と入れます❸。同じ範囲に、「空白ではない」と「0 ではない」の2つの条件を付けます。

Enter を押すと、結果は 4 になりました❹。空白と 0 を除いた、5・3・7・2 の4つです。

数値だけを数えたいとき
「済」のような文字が混ざる列で、数値だけを数えたいときは注意が必要です。COUNTIFS の “<>” は文字も数えます。実機で 5・0・空白・3・0・空白・7・「済」の8つを数えると、次のようになりました。
| 式 | 結果 | 数えたもの |
|---|---|---|
=COUNTIF(範囲,"<>0") | 6 | 5・3・7・済 と空白2つ |
=COUNTIFS(範囲,"<>",範囲,"<>0") | 4 | 5・3・7・済 |
=COUNTIF(範囲,">0") | 3 | 5・3・7(プラスの数値だけ) |
=COUNT(範囲)-COUNTIF(範囲,0) | 3 | 数値のうち 0 でないもの(マイナスも数える) |
マイナスの数がない表なら ">0" がいちばん簡単です。マイナスも数えたいときは COUNT-COUNTIF を使います。
うまくいかないときの確認表
| 症状 | 原因 | 対処 |
|---|---|---|
| 空白のはずなのに数えられる | スペースや、数式の “” が入っている | COUNTIFS の “<>” は “” を空白として扱わない→ ">0" を使う |
| 0 が数えられる | 0 が文字(’0)として入っている | 数値に変換する |
| 条件の ” ” で #NAME? になる | “<>” を ” で囲んでいない | "<>" のように全体を ” で囲む |
よくある質問
空白と0を除いて平均を出したいです。
=AVERAGEIF(C3:C10,"<>0") とします。AVERAGEIF は空白をもとから無視するので、0 を除く条件だけで足ります(AVERAGEIF関数)。
空白だけを数えたいです。
=COUNTBLANK(C3:C10) とします(空白を数える方法)。

コメント