[Excel] 式が入っている空白セルを除いてカウントする方法

Excelで、値が入力されているセルの数をカウントする関数としてCOUNTA()やSUBTOTAL()、AGGREGATE()などがあります。

いずれも値が入力されたセルをカウントさせることができますが、数式が入力されているものの、見かけ上は空白に見えるセル(長さ0の文字列が入ったセル)も一緒にカウントされてしまいます。

分かりやすく言えば、式の結果が「""」を返すようになっているセルもカウントされてしまう、という状態。

できれば、「""」が入力されたセルは空白として認識してほしいですよね。目に見えて値が入力されたセルだけをカウントさせるには、以下の方法を使えば解決です。

COUNT()関数を使う

数値のみが表示されるセルであれば、COUNT()関数を使って以下のように指定することで、空白セル(「数式が入っているが見かけ上は空白のセル」も含む)はカウントされません。

=COUNT(範囲)

ただし、数値のみが表示されているセルしかカウントされませんので、数値以外が表示されるセルであれば、この方法は使えません。日付や時間は、内部的には数値ですのでカウントされます。

例:
セルに表示された値が「1111」 → カウント対象
セルに表示された値が「千百十一」 → カウント対象外
セルに表示された値が「2020/03/26」 → カウント対象

COUNTIF()関数を使う

文字列のみが表示されるセルであれば、COUNTIF()関数を使って以下のように指定することで、空白セル(「数式が入っているが見かけ上は空白のセル」も含む)はカウントされません。

=COUNTIF(範囲,"?*")

ただし、数値のみが表示されているセル以外しかカウントされませんので、数値のみが表示されるセルであれば、この方法は使えません。日付や時間などもカウント対象外です。

例:
セルに表示された値が「1111」 → カウント対象外
セルに表示された値が「千百十一」 → カウント対象
セルに表示された値が「2020/03/26」 → カウント対象外

COUNT()とCOUNTIF()関数を併用する

COUNTIF()関数が文字列しかカウントしないなら、数値しかカウントしないCOUNT()関数と組み合わせればよさそうですね。

=COUNT(範囲)+COUNTIF(範囲,"?*")

これで、数値(日付・時間含む)でも文字列でもカウントされるようになります。

COUNTBLANK()関数を併用する

カウントしたいセル全てに、必ず数式が入るのであれば、COUNTA()関数とCOUNTBLANK()関数を併用してもカウントできます。

=COUNTA(範囲)-COUNTBLANK(範囲)

指定した範囲内に、数式も入らない完全に空白なセルが存在する場合は、正しい結果にならないため、注意が必要です。

さいごに

COUNTA()関数が、長さ0の文字列「""」もカウントしなければ、悩む必要はないんですけどね。何か情報が入っているセルをカウントする、という関数のようなので、その辺は仕方ないですかね。

個人的には、COUNTBLANK()関数の逆バージョンがあればうれしいな、と思いますが、現状でも組み合わせて何とかなるので、特別不便は感じていないです。はい。

初稿:2020年3月26日

コメント

タイトルとURLをコピーしました