エクセル入門
COUNTBLANK(空白セルの個数)

Excelの初心者向け入門解説
最終更新日:2020-04-30

COUNTBLANK(空白セルの個数)


指定された範囲に含まれる空白セルの個数を返します。


COUNTBLANK関数の書式

COUNTBLANK(範囲)

範囲に含まれる空白セルの個数を返します。

範囲

空白セルの個数を求めるセル範囲を指定します。


空白文字列 ("") を返す数式が入力されているセルも計算の対象となります。
ただし、数値の 0 を含むセルは計算の対象となりません。

通常この関数を使用する必要があるのは、
COUNTA関数で数えたセルの個数から、空白文字列 ("") を返す数式が入力されているセルの個数を除きたい場合になります。
CAUNTA関数では、空白文字列 ("") を返す数式が入力されているセルの個数が含まれてしまうからです。

COUNTBLANK関数は、COUNTIF関数で、
=COUNTIF(範囲,"")

このように指定した結果と同値になります。

COUNTBLANK関数の使用例

以下の表で、B列においてデータの入っている個数を調べるとします。
B列には、
=IF(OR(A1="リンゴ",A1="バナナ"),A1,"")
この数式が入っています。
また、行数は不定なので、何行あるか分からないとして話を進めます。

A列 B列
ABC  
123  
リンゴ リンゴ
234  
キャベツ  
バナナ バナナ
345  
ニンジン  

上に掲載した範囲なら、2個が答えになります。
この2をどのように取得するかという問題です・・・
そこで、COUNT系の関数を試してみると、

=COUNT(B:B) ・・・ 0
=COUNTA(B:B) ・・・ 8
=COUNTBLANK(B:B) ・・・ 1048574


いずれも、回答に結びつく感じがしません。

シートの行数は1048576、これはROWS(A:A)で求めることができます。
=ROWS(A:A)-COUNTBLANK(B:B) ・・・ 2
簡単に求めるなら、これが一番簡単かもしれません。
ROWS関数は、指定した配列または範囲内の行数を返します。
ROWS(範囲)

では、関数の知識を総動員して、いろいろやってみましょう。

=COUNTA(B:B)-COUNTBLANK(OFFSET(B1,0,0,COUNTA(B:B),1))
データの入っている範囲をOFFSET関数で作成して・・・
ほとんどの場合は、これで取得できますが、
データが歯抜けになっている場合は、これでは正しく取得できません。
苦労した割には結局使えない・・・という事になります。

実は、COUNTIF関数を使って簡単に求められるのです。
=COUNTIF(B:B,"?*")
または、
=COUNTIF(B:B,">= ") ・・・ =の後ろに半角スペースが入っています。
これで結果が2になります。

さらに、このような場合は、C列に、
=IF(B1="",0,1)
このように追加して、

A列 B列 C列
ABC   0
123   0
リンゴ リンゴ 1
234   0
キャベツ   0
バナナ バナナ 1
345   0
ニンジン   0

これであれば、C列をSUM関数だけで求められますし、わかり易いのでないでしょうか。
上記のように、難しい関数を使うまでもなく、別セルで判定を入れる事で簡単に求められるものです。

そもそも、今回の例では、文字列が入っているセルの個数なので面倒ですが、
これが数値の入っているセルの個数なら、単純にCOUNT関数ですんでしまいます。

ここでは、COUNTBLANK関数の説明をしましたが、
COUNTBLANK関数は、使う上で非常に注意が必要な関数です。
COUNTBLANK関数を使おうと思ったら、その前に代替え手段を検討することをお勧めします。
ほとんどの場合、単純な判定で解決するはずです。
以下も参考にしてください。
空白以外のセルの個数(計算結果が空白を除く)
エクセル挑戦問題 範囲内の空白以外のセルの個数を数える数式を作って下さい。ただし、計算結果が空白のセルはカウントしない事、つまり、IF関数等の結果が、""の場合は対象外にすると言う事になります。※セル範囲はA列全てを指定する事、つまりデータ範囲は決まっていない状態です。


ワークシート関数一覧

Excelワークシート関数の一覧と解説です、詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

ワークシート関数の一覧(2010以降)
Excelワークシート関数の一覧と解説です。Excel2010以降に追加された関数一覧になります。2007までのワークシート関数一覧ワークシート関数の一覧 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 Excel2010で追加されたワークシート関数 Excel2013で追加されたワークシート関数 関数名 種類と説明 …



同じテーマ「エクセル入門」の記事

EOMONTH関数(月数だけ前後の月の最終日)
WEEKDAY関数(曜日に変換)
WEEKNUM関数(その年の何週目)
COUNTBLANK(空白セルの個数)
AVERAGE関数(引数の平均値)
AVERAGEIF関数(検索条件に一致する平均値)
SUMPRODUCT関数(配列の対応する要素の積の合計)
IFERROR関数(エラーの場合は指定値、以外の場合は数式)
作業セル、計算セル
SUMIFS関数、COUNTIFS関数.AVERAGEIFS関数(複数条件)
MOD関数(除算したときの剰余)


新着記事NEW ・・・新着記事一覧を見る

Variantの数値型と文字列型の比較|エクセル雑感(7月1日)
VBAのVariant型について|VBA技術解説(6月30日)
VBAのString型の最大文字数について|エクセル雑感(6月20日)
VBAで表やグラフをPowerPointへ貼り付ける|VBAサンプル集(6月19日)
アクティブシート以外の表示(Window)に関する設定|VBA技術解説(6月17日)
マクロ記録での色のマイナス数値について|エクセル雑感(6月16日)
ツイッター投稿用に文字数と特定文字で区切る|エクセル雑感(6月15日)
日付の謎:IsDateとCDate|エクセル雑感(6月14日)
IFステートメントの判定|エクセル雑感(6月13日)
インクリメンタルサーチの実装|ユーザーフォーム入門(6月12日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ