スプレッドシートのCOUNTBLANK関数|空白なのに数えない原因と使い方

スポンサーリンク

スプレッドシートで未回答の数をCOUNTBLANKで数えたのに、目で数えた数と合わない。そんな経験はありませんか?

空白に見えるセルを数えてくれなかったり、逆に数式の入ったセルまで数えられたり。原因がわからないまま手で数え直すのは、地味にストレスですよね。

先に結論をお伝えします。COUNTBLANKは、何も入っていないセルに加えて、数式が "" を返すセルも空白として数えます。一方で、スペースだけのセルや0は空白として数えません。

この記事はGoogleスプレッドシートを前提にしています。構文の基本から、数が合わないときの診断方法まで順に見ていきましょう。未入力数や入力率を出す実務レシピもまとめました。

スプレッドシートのCOUNTBLANK関数の基本(構文・引数・基本例)

COUNTBLANK(読み方: カウントブランク)は、指定した範囲にある空白セルの個数を返す関数です。名前はCOUNT(数える)とBLANK(空白)の組み合わせ。アンケートの未回答や、提出物の入力漏れを数えるときに活躍します。

構文と引数

=COUNTBLANK(値1, [値2, ...])
引数必須/任意説明
値1必須空白を数えたい範囲(例: C2:C11)
値2, …任意追加で数えたい範囲。離れた範囲もまとめて指定できる

ふだんは範囲を1つ渡すだけで十分です。ただ、スプレッドシートのCOUNTBLANKは範囲を複数並べられます。公式ヘルプでも、2つ目以降の値や範囲を追加できると案内されています。

複数範囲の使い方は、後半の「複数列のチェックと条件付き書式」で具体例を紹介しますね。

基本の使い方

アンケートの回答状況を管理する表で試してみましょう。C列が回答欄で、D列には =IF(C2="","","OK") という数式が入っています。

行A(氏名)B(部署)C(回答)D(判定)
2佐藤営業回答済OK
3鈴木総務(空)(数式の結果が "")
4高橋営業回答済OK
5田中営業(空)(数式の結果が "")
6伊藤総務回答済OK
7渡辺開発回答済OK
8山本開発(空)(数式の結果が "")
9中村営業(空)(数式の結果が "")
10小林総務回答済OK
11加藤開発回答済OK

未回答の人数を数えるには、C列を範囲に指定します。

=COUNTBLANK(C2:C11)

結果は「4」です。C3・C5・C8・C9の4セルが空なので、目で数えた数と一致します。

先に結論:数式の空文字は数える、スペースと0は数えない

では、D列を数えるとどうなるでしょうか。

=COUNTBLANK(D2:D11)

結果は同じく「4」になります。D3・D5・D8・D9には数式が入っていますが、結果が ""(空文字)なので空白として数えられるわけです。

公式ヘルプでも、「内容のないセル」と「空文字を含むセル」の両方を空白として扱うと説明されています。裏を返すと、スペースや0のように何かが入ったセルは空白の対象外です。

COUNTBLANKで空白に見えるのに数えない・数える原因

「数えない」「数えすぎる」の原因は、ほとんどがセルの中身の種類にあります。まずは種類ごとの判定を表で押さえておきましょう。

判定早見表(真の空セル・空文字・スペース・0・エラー)

COUNTBLANKと、よく比べられる3つの関数の判定を1表にまとめました。ISBLANKは1セルずつ判定する関数なので、TRUE/FALSEで示しています。

セルの中身見た目COUNTBLANKCOUNTAISBLANKCOUNTIF(範囲,””)
何も入力していない空数える数えないTRUE数える
数式の結果が ""空数える数えるFALSE数える
半角スペースだけ空に見える数えない数えるFALSE数えない
全角スペースだけ空に見える数えない数えるFALSE数えない
00数えない数えるFALSE数えない
エラー値(#N/A など)エラー表示数えない数えるFALSE数えない
表示形式で隠した数値空に見える数えない数えるFALSE数えない

見落としやすいのは「空に見える」の3行です。スペースだけのセルは、うっかり入力したまま気づかないことがよくあります。

表示形式で隠した数値は、カスタム数値形式の ;;; などで値を見えなくしたセルのこと。スペースも隠した数値も中身が残っているので、COUNTBLANKの対象外です。

逆に「数式の結果が ""」の行は、COUNTBLANKとCOUNTAの両方が数えています。この二重カウントが、後で説明する「合計が合わない」問題の正体です。

数が合わないときの診断3ステップ(ISBLANK・LEN・TRIM)

空に見えるのに数えられないセルを見つけたら、隣の列に次の3つの式を順に入れてみてください。ここではC3を調べる例で書いています。

ステップ1: =ISBLANK(C3)
ステップ2: =LEN(C3)
ステップ3: =LEN(TRIM(SUBSTITUTE(C3," "," ")))

ステップ1がTRUEなら、そのセルは本当に空です。FALSEなら何かが入っているので、次のステップに進みます。

ステップ2のLENは文字数を返します。結果が0なら、"" を返す数式が入っている可能性が高いでしょう。セルを選んで数式バーを見れば確認できます。

ステップ2が1以上なら、ステップ3で中身がスペースだけかを確かめます。SUBSTITUTEで全角スペースを半角に置き換えてから、TRIMでスペースを取り除く、という式ですね。結果が0なら、スペースだけのセルと判断できます。

ステップ3でも1以上なら、0や改行、表示形式で隠れた値などが残っています。数式バーと「表示形式」メニューの設定を確認しましょう。

範囲全体でスペースだけのセルが何個あるかは、次の式で数えられます。

=SUMPRODUCT(--(LEN(TRIM(SUBSTITUTE(C2:C11," "," ")))=0))-COUNTBLANK(C2:C11)

前半は、スペースを取り除くと空になるセルの数です。そこからCOUNTBLANKの数を引くと、スペースだけのセルが残ります。サンプル表のC列にはスペースがないため、結果は0。

スペースだけのセルは、選択してDeleteキーで中身を消せば空白として数えられます。なお、範囲にエラー値が混ざっていると、この式自体がエラーになる場合があります。

COUNTAとの合計が全セル数にならない理由

「COUNTA(空白以外)とCOUNTBLANK(空白)を足せば全セル数」と考えがちですよね。でも、これは常には成り立ちません。サンプル表のC列とD列で比べてみましょう。

範囲COUNTACOUNTBLANK合計全セル数(ROWS)
C2:C11(手入力)641010
D2:D11(数式)1041410

C列はぴったり10で一致します。一方、D列は合計14となり、全セル数の10を超えてしまいました。

理由は、COUNTAが長さゼロの文字列("")も数える仕様だからです。これはCOUNTAの公式ヘルプにも書かれています。"" のセルはCOUNTAとCOUNTBLANKの両方に数えられ、その分だけ合計が膨らむのです。

この性質を逆に使うと、範囲内の "" のセル数を求められます。

=COUNTA(D2:D11)+COUNTBLANK(D2:D11)-ROWS(D2:D11)

D列なら「14 − 10」で4。数式で空にしているセルがいくつあるかを確かめたいときに便利です。COUNTAの詳しい使い方はスプレッドシートのCOUNTA関数の解説で紹介しています。

COUNTBLANKの実務レシピ(未入力数・入力率・入力完了判定)

ここからは、そのまま貼って使える式を紹介します。引き続き、前半のアンケート表(A2:D11)を使っていきましょう。

未入力数と入力率

未入力数は、回答欄の範囲をCOUNTBLANKで数えるだけです。入力率は「1 − 空白数 ÷ 全セル数」で計算します。

未入力数: =COUNTBLANK(C2:C11)
入力率:   =1-COUNTBLANK(C2:C11)/ROWS(C2:C11)

サンプル表なら、未入力数は4、入力率は0.6です。セルの表示形式をパーセントにすれば、「60%」と表示されますよ。ROWSは範囲の行数を返すので、範囲を広げれば全セル数も自動で変わります。

入力率を =COUNTA(D2:D11)/ROWS(D2:D11) のように出すのは避けましょう。D列は全セルが "" かOKなので、結果は100%になってしまいます。"" を返す数式がある範囲では、COUNTAベースの入力率は実際より高く出るのです。

もうひとつの注意点は、スペースだけのセルが混ざっている場合。COUNTBLANKが数えないぶん、入力率が実際より高くなります。数字に違和感があれば、先ほどの診断3ステップで確認してみてください。

IFで入力完了を判定

COUNTBLANKの結果が0かどうかで、入力完了を判定できます。未入力の件数もあわせて表示すると、残り作業が一目でわかりますよ。

=IF(COUNTBLANK(C2:C11)=0,"入力完了",COUNTBLANK(C2:C11)&"件 未入力")

サンプル表では「4件 未入力」と表示されます。全員が回答すれば「入力完了」に切り替わるので、集計表の上部に置いておくと便利です。

複数列のチェックと条件付き書式

顧客リストのように、1行に複数の項目がある表も見てみましょう。

行A(氏名)B(メール)C(電話)D(住所)
2青木aoki@example.com03-1111-1111東京都
3石井ishii@example.com(空)大阪府
4上田(空)(空)愛知県
5江藤eto@example.com03-2222-2222福岡県
6大野ono@example.com03-3333-3333(空)

表全体の空白は、範囲をまとめて指定すれば数えられます。

表全体の空白数:     =COUNTBLANK(B2:D6)
行ごとの判定(E2): =IF(COUNTBLANK(B2:D2)=0,"完了","未入力"&COUNTBLANK(B2:D2)&"項目")
電話を除いた空白数: =COUNTBLANK(B2:B6, D2:D6)

表全体の空白数は4です。E2の式を下にコピーすると、上から「完了」「未入力1項目」「未入力2項目」「完了」「未入力1項目」と並びます。

3つ目は、構文の説明で触れた複数範囲の指定。電話が任意項目なら、メールと住所の列だけを並べて数えられます。結果はB4とD6の2つで「2」。

未入力がある行に色を付けるなら、条件付き書式を使います。A2:D6を選択し、「表示形式」メニューの「条件付き書式」を開きましょう。「セルの書式設定の条件」で「カスタム数式」を選び、次の式を入れます。

=COUNTBLANK($B2:$D2)>0

列の前にだけ $ を付けるのがポイントです。これで行ごとに判定され、石井・上田・大野の3行に色が付きます。

COUNTBLANKと似た関数との使い分け

空白や件数を数える関数はいくつもあります。目的ごとの使い分けを先に一覧で確認しておきましょう。

関数数えるもの・返すもの向いている用途
COUNTBLANK空白セルの数未入力数・入力率
COUNTA空白でないセルの数入力済みの件数("" がない範囲)
COUNT数値が入ったセルの数金額や点数など数値の入力件数
COUNTIF(範囲,””)条件「空」に合うセルの数他の条件の件数と並べて書くとき
COUNTIFS複数の条件に合うセルの数部署別などの条件付き未入力数
ISBLANK1セルが空かどうか(TRUE/FALSE)行ごとの判定

数値だけを数えたい場面では、スプレッドシートのCOUNT関数が向いています。

COUNTAとCOUNTIF(範囲,””)の違い

COUNTAは「中身があるセル」を、COUNTIF(範囲,””)は「空とみなすセル」を数えます。発想は逆向きですが、早見表のとおり "" のセルはどちらにも数えられます。

COUNTIF(範囲,””)の判定は、早見表ではCOUNTBLANKと同じ結果です。単に空白を数えるだけなら、短く書けるCOUNTBLANKで十分でしょう。

COUNTIFが活きるのは、空白と別の条件をあわせて数えたいときです。たとえば「未回答」と「保留」の合計なら、次のように足し算でつなげます。

=COUNTBLANK(C2:C11)+COUNTIF(C2:C11,"保留")

COUNTIFの条件の書き方は、スプレッドシートのCOUNTIF関数の使い方で詳しく解説しています。

COUNTIFSで条件付きの空白カウント

COUNTBLANKには条件を付けられません。「営業部の未回答だけ」のように絞り込みたいときは、COUNTIFSで空白を条件にします。

=COUNTIFS(B2:B11,"営業",C2:C11,"")

サンプル表では、営業部の田中と中村が未回答なので結果は「2」です。部署名を「総務」に変えると1、「開発」でも1になり、合計すると全体の未入力数4と一致します。

部署の一覧を別の列に作り、部署名をセル参照にすれば、部署別の未入力数表が作れます。複数条件の組み方はスプレッドシートのCOUNTIFS関数の解説が参考になりますよ。

ISBLANK・FILTERとの使い分け

COUNTBLANKは「何個あるか」を返す関数。これに対してISBLANKは「このセルは空か」を1セルずつTRUE/FALSEで返します。

ただし早見表のとおり、ISBLANKは "" を返すセルを空と判定しません。D列のような数式のセルを行ごとに判定するなら、=D2="" のように空文字と比べる書き方が扱いやすいです。詳しくはスプレッドシートのISBLANK関数の解説をご覧ください。

「誰が未回答か」を一覧で知りたいなら、FILTER関数の出番です。

=FILTER(A2:A11, C2:C11="")

結果として、鈴木・田中・山本・中村の4人の名前が下方向に並びます。COUNTBLANKで件数を確認し、FILTERで名前を出す組み合わせがおすすめ。抽出条件の応用はスプレッドシートのFILTER関数の使い方にまとめています。

Excelとの違い

COUNTBLANKはExcelにもありますが、構文に違いがあります。

項目GoogleスプレッドシートExcel
構文COUNTBLANK(値1, [値2, …])COUNTBLANK(範囲)
指定できる範囲複数可1つ
"" を返すセル空白として数える空白として数える

いちばんの違いは、指定できる範囲の数です。スプレッドシートで範囲を複数並べた式は、Excelではそのまま使えない点に注意しましょう。

Excelで開く予定のファイルなら、範囲ごとに分けて足すのが無難です。たとえば =COUNTBLANK(B2:B6)+COUNTBLANK(D2:D6) のように書きます。Excel側の詳しい使い方はExcelのCOUNTBLANK関数の解説をご覧ください。

COUNTBLANKのよくある質問とまとめ

FAQ

Q. 空白があるはずなのに、COUNTBLANKの結果が0になります。

空に見えるセルに、スペースや0などの中身が入っている可能性があります。まずは1セル選んで、診断3ステップの式で中身を確かめてください。範囲の指定がずれていないかも、あわせて確認しましょう。

Q. 0のセルも未入力として数えたいです。

COUNTBLANKは0を数えないため、0のセルをCOUNTIFで数えて足します。

=COUNTBLANK(C2:C11)+COUNTIF(C2:C11,0)

Q. 数式の "" を除いて、本当に空のセルだけを数えられますか?

COUNTAが "" を数える性質を使えば求められます。=ROWS(D2:D11)-COUNTA(D2:D11) と書くと、何も入っていないセルだけが残ります。サンプル表のD列は全セルに数式があるので、結果は0です。

Q. C2:Cのように列の最後まで範囲を指定してもいいですか?

指定はできますが、おすすめしません。シートの最終行までの空セルがすべて数えられ、データ件数と関係ない大きな数になるからです。未入力数や入力率を出すなら、範囲はデータのある行に合わせましょう。

まとめ

COUNTBLANKは、範囲内の空白セルを数えるシンプルな関数です。ただし「何を空白とみなすか」を知らないと、結果が目視と合わなくなります。ポイントを振り返っておきましょう。

  • 構文は =COUNTBLANK(値1, [値2, ...])。スプレッドシートでは範囲を複数指定できる
  • 何も入っていないセルと、数式の結果が "" のセルを空白として数える
  • スペースだけのセル・0・エラー値・表示形式で隠した値は数えない
  • "" はCOUNTAにも数えられるため、COUNTAとの合計は全セル数を超えることがある
  • 数が合わないときは、ISBLANK・LEN・TRIMの3ステップで中身を診断する
  • 条件付きの空白はCOUNTIFS、未入力者の一覧はFILTERで出す

まずはお手元の表で、未入力数と入力率の2つの式を並べてみてください。残りの入力作業がどれくらいか、ひと目でわかるようになりますよ。

タイトルとURLをコピーしました