関数 EXCEL&VBA

COUNTIF関数・COUNT関数・COUNTA関数の違い

値の入っているセルを カウント する関数としてメジャーなものは;

COUNT関数
COUNTA関数
COUNTIF関数

あたりが思い浮かびますよね。(もちろん他にもあります)

これらは使い分けを間違えるとトラブルの元です。
今回は、それぞれの関数の特性についてピックアップします。



COUNTIF関数・COUNT関数・COUNTA関数の違い

COUNT関数

COUNT関数 は、数値データのセル をカウントするのに適した関数です。

上の表で例えると、D列に金額の入ったセルのみをカウントする際に;

COUNT ( D3:D8 )

とすれば返ってくる答えは「3」です。
ブランクのセルと「欠席」という文字列はカウントしない のが特徴です。

COUNTA関数

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

セルの値が、数値でも日付でも文字列でもカウントします。

ポイント
データの入ったセルをカウントする COUNTA関数は、数式が入力されていてその結果が ""(空白)であってもカウントします「見た目が空白」でも 空白としてカウントされない ので注意しましょう。

COUNTIF関数

COUNTIF関数 は、任意の条件に合致するデータ(セル)をカウントするのに適しています。

前述の表で例えると、D列が「欠席」のセルをカウント(=欠席人数)するのには最も適した関数といえます。


▲セルG2に COUNTIF関数 をセット


空白セルがカウントされてしまうケース

さて、ネット検索で
エクセル 空白セル カウントしない
エクセル 空白セル カウントされる
などと検索している方は、何に困っているのでしょう?

私の推測では、上で述べた関数の特性からすると COUNTA関数 を使用してデータをカウントしたいのに、数式を含んだ「見た目の空白」をカウントしてしまい困っているのではないでしょうか。

空白セルをカウントしない方法

数式を含んでいても「見た目が空白」ならばカウントせず、データが入っているセルだけをカウントする方法は状況によっていろいろあります。
COUNTA関数 ではなく COUNT関数 で解決する単純なケースもあるでしょう。

セルに文字列が含まれている場合など COUNT関数では解決できない場合、最も汎用性があるのは、「対象範囲からとにかく見た目が空白のセルの数を差し引く」のが良いと思います。

数式で表すと;

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

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

データが数字のみならば COUNT関数 で充分ですし、文字列が特定の文字であれば COUNTIF関数 で役割を果たすことは可能です。
また、空白セルが数式を含まない「本当の空白」であれば COUNTA関数 が使えます。

ぜひ関数の特性を理解したうえで、うまく関数を使い分けてカウントしてください。

関連記事・広告






-関数, EXCEL&VBA
-, ,