関数 EXCEL&VBA

COUNTA関数で数式をカウントしない方法|空白セルのカウント

COUNTA関数 を使って値の入ったセルをカウントするシーンは珍しくありません。

しかし、この COUNTA関数には 短所ともいえる特徴 があります。

空白セルには「本当の空白」と「見た目の空白」があって、COUNTA関数では、見た目が空白でも数式が入っていれば「空白」とはみなさずカウントしてしまうのです。

見た目が空白ならば 数式をカウントしない方法 はあるのか?
今回は『COUNTA関数数式をカウントしない方法』です。



見た目が空白のセルを捉える

冒頭でも述べたとおり、COUNTA関数では「見た目が空白」でも 実際には数式が入力されていれば、カウント対象(値の入ったセル)としてみなします。

数式をカウントしない時に、脇役として使えるのが COUNTBLANK関数 です。

COUNTBLANK関数

COUNTBLANK関数とは、任意の範囲に含まれる(見た目が)空白セルの個数 を返す関数で;

=COUNTBLANK(範囲

のように表されます。
下のサンプルは、D列が空白のセルを「未払い」としてカウントしセル G2 に返すケースです。

D列のセルには =IF (C3="○", B3, "") (セルD3の場合)という数式が入っているため、「見た目が空白」のセルD5やD8にも数式が入っています。
また、欠席者にはD列に「欠席」という文字列を入れています。


▲D列のセルにはすべて数式や文字が入っている

セルG2に入る数式は COUNTBLANK関数を使って;

=COUNTBLANK ( D3:D8 )

とします。
すると「見た目が空白のセル」のカウント「2」が正しく表示されます。


▲見た目が空白のセルだけを捉えた!

見た目が空白なら数式をカウントしない

COUNTA関数はつかわない

COUNTA関数は何度も述べますが 少し注意が必要な関数 です。
というのも、COUNTA関数は あらゆるデータの入ったセルをカウントする からです。

セルの値が、数値でも日付でも文字列でもカウントします。
さらには、数式が入力されていてその結果が ""(空白)であってもカウントします

数式を含んでいても「見た目が空白」ならばカウントせず、データが入っているセルだけをカウントする方法は状況によっていろいろあります。

最も汎用性があるのは、「対象範囲からとにかく見た目が空白のセルの数を差し引く」のが良いと思います。

数式で表すと;

=ROWS ( 対象範囲 ) - COUNTBLANK ( 対象範囲 )
あるいは
=COLUMNS ( 対象範囲 ) - COUNTBLANK ( 対象範囲 )

これで問題は解決されるのではないかと思います。

COUNTA関数数式をカウントしない方法
ぜひ関数の特性を理解したうえで、巧みに関数を使い分けてデータをカウントしてください。

関連記事・広告






-関数, EXCEL&VBA
-, ,