関数 EXCEL&VBA

エクセルで空白セルのカウントに関するトラブルシュート

空白セルがカウントされる (=したくない)』
空白セルをカウントする
空白セル以外をカウントする

ネットの検索結果をみていると、エクセルにおける 空白セルのカウント はなかなか厄介なようです。

というのも、空白セルには「本当の空白」と「見た目の空白」があるからです。(詳細後述)
そのため、思いどおりの結果が得られない場合があるようです。

カウント系の関数はいくつかありますが、それぞれの特性を理解すれば空白セルは自在に対処できます。
では、逆引き形式でトラブルシュートしましょう。



空白セルをカウントする

空白セルをカウントする場合ですが、前提としてここで述べる空白セルとは「見た目が空白」のセルを指しています。
実際には数式が入力されていても、結果として空白が返されている場合も「空白」としてみなします。

こんな時に役に立つのが COUNTBLANK関数 です。

COUNTBLANK関数

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

=COUNTBLANK(範囲

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

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


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

セルG2に入る数式は;

=COUNTBLANK ( D3:D8 )

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

空白セル以外をカウントする

データの入っているセルをカウントする関数としては;

COUNT関数
COUNTA関数
COUNTIF関数

あたりがメジャーどころとして思い浮かびます。

使い分けを間違えるとトラブルの元です。
まずはそれぞれの関数の特性を確認しておきましょう。

COUNT関数

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

上の表で例えると、=COUNT ( D3:D8 ) とすれば返ってくる答えは「3」です。
ブランクのセルと「欠席」という文字列はカウントしない のが特徴です。

COUNTA関数

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

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

このトラブルシュートはのちほど。

COUNTIF関数

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

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


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



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

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

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

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

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

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

数式で表すと;

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

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

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

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

関連記事・広告



併せて読んでおくとさらに便利

VBAで空白行を削除する方法|Excel VBA 高速技
VBA・Unionメソッド
VBAを使って空白行の削除方法を解説します。Unionメソッド を使用して空白行を高速で一括削除する方法をサンプルコード付きで解説。ぜひ参考にしてください。

COUNTIF で「を含む」データをカウントする|Excel 関数
COUNTIF関数・ワイルドカード
COUNTIF関数を使い「~を含む」データをカウントする方法を解説。ExcelのCOUNTIF関数で任意の文字列を含むセルをカウントする にはちょっとした工夫が必要なのです。ヒントは「ワイルドカード」。

エクセルの重複データに色を付ける|「ダブり」チェック
条件付き書式・COUNTIF関数
エクセルで重複するデータに色を付ける方法を解説します。Excelでダブりチェックをする方法はいくつかありますが簡単に設定できるのでぜひ挑戦してみましょう。

Excelで全角・半角をチェックする方法
LEN関数・LENB関数
Excelでデータの全角・半角をチェックする方法を解説。カタカナやアルファベットの中には、フォントによって見た目の全角・半角の区別が難しい文字もあります。

※その他、関連記事はこの記事の下の方にもあります。




-関数, EXCEL&VBA
-, ,