エクセル入門 | 数式.COUNTBLANK(空白セルの個数) | Excelの初心者向け入門解説



最終更新日:2016-10-11

数式.COUNTBLANK(空白セルの個数)


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

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

書式

COUNTBLANK(範囲)

範囲

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


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

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

COUNTBLANK関数は、COUNTIF関数で、
=COUNTIF(範囲,"")
このように指定した結果と同値になります。

使用例

以下の表で、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なので、
=1048576-COUNTBLANK(B:B) ・・・ 2
簡単に求めるなら、これが一番簡単かもしれません。
しかし、ファイルがxlsの場合、行数は65536ですので、ファイルによって書き換える必要が出てきます。
シートの行数を求めるために、何も入っていない列を利用して、
=COUNTBLANK(D:D)-COUNTBLANK(B:B)
このようにすれば、求められないことはありませんが、正直、あまりスマートな感じを受けません。

では、関数の知識を総動員して、
=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関数を使おうと思ったら、その前に代替え手段を検討することをお勧めします。
ほとんどの場合、単純な判定で解決するはずです。



ワークシート関数一覧




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

数式.AVERAGE関数(引数の平均値)
数式.AVERAGEIF関数(検索条件に一致する平均値)
数式.SUMPRODUCT関数(配列の対応する要素の積の合計)
数式.IFERROR関数(エラーの場合は指定値、以外の場合は数式)
数式.作業セル、計算セル
数式.SUMIFS関数、COUNTIFS関数.AVERAGEIFS関数(複数条件)
数式.MOD関数(除算したときの剰余)

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

メモの挿入・削除と改行文字|Google Apps Script入門(12月6日)
リンクの挿入・編集・削除|Google Apps Script入門(12月6日)
セルに数式を入れる|Google Apps Script入門(12月1日)
セルのコピー&各種ペースト|Google Apps Script入門(11月22日)
Twitter Bot 作成|Google Apps Script応用(11月6日)
Excel流の最終行の取得|Google Apps Script応用(11月6日)
方眼紙Excelが楽に入力できるVBA|ExcelマクロVBAサンプル集(11月5日)
「ポケモンを確実に見つける方法」をExcelで数学してみた|エクセル雑感(11月4日)
スプレッドシート(ブック)の作成・名前変更|Google Apps Script入門(11月4日)
シートの挿入・削除・名前変更|Google Apps Script入門(11月3日)

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

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
6.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
7.CSVの読み込み方法|ExcelマクロVBAサンプル集
8.変数とデータ型(Dim)|ExcelマクロVBA入門
9.セル・行・列の削除・挿入(Delete,Insert)|ExcelマクロVBA入門
10.ひらがな⇔カタカナの変換|エクセル基本操作



  • >
  • >
  • >
  • 数式.COUNTBLANK(空白セルの個数)

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


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



    ↑ PAGE TOP