ISBLANK関数の使い方|「本当の空欄」と「空に見えるセル」を見分ける

執筆者:

カテゴリ:

ISBLANKは、セルが本当に空欄かどうかを判定する関数です。

=A1="" でも空欄判定はできますが、両者は別の意味を持ちます。この違いを知らないと、件数が合わない・条件が効かないといった問題の原因が分かりません。

書式

=ISBLANK(セル)

TRUEFALSE を返します。

="" との違い

これがこの関数の核心です。

セルの状態 ISBLANK(A1) A1 = ""
何も入力していない TRUE TRUE
数式が "" を返している FALSE TRUE
スペースが1つ入っている FALSE FALSE
0 が入っている FALSE TRUE(※)

A1 = ""0 に対しても TRUE を返す環境があります。0と空欄を区別したいなら ISBLANKCOUNT を使ってください。

数式が返した空文字

=IF(A2="", "", A2*1.1)

この数式が入ったセルは、見た目は空欄ですが、値としては空文字("")が入っています。

  • ISBLANKFALSE(何か入っている)
  • = ""TRUE(空文字と一致する)
  • COUNTA1件として数える
  • COUNTBLANK → 空欄として数える

COUNTAとCOUNTBLANKで扱いが逆なので、両方を足しても全体の件数にならないことがあります。合計が合わないときは、ここを疑ってください。

使い分けの判断

やりたいこと 使うもの
見た目が空欄なら処理をスキップ A1 = ""
本当に未入力の行を検出したい ISBLANK
入力漏れを厳密にチェックする ISBLANK
数式の結果も含めて空扱いにしたい A1 = ""

実務では = "" のほうが使用頻度が高くなります。 「見た目が空欄なら何もしない」という要件が多いためです。

ISBLANKが必要なのは、「入力されたかどうか」そのものを問題にする場面です。

実用例

入力漏れを検出する

=IF(ISBLANK(C2), "未入力", "")

C列に数式が入っている場合、C2 = "" だと「数式で空になった行」まで未入力と判定してしまいます。ISBLANKなら区別できます。

未入力の件数を数える

=SUMPRODUCT(--ISBLANK(C2:C100))

--TRUE/FALSE を1/0に変換する書き方です。

COUNTBLANK でも数えられますが、数式が返した "" も空欄として数えてしまいます。 厳密に未入力だけを数えるならこちらです。

必須項目がすべて埋まっているか

=IF(OR(ISBLANK(A2), ISBLANK(B2), ISBLANK(C2)), "未完了", "完了")

項目が多いなら COUNTA のほうが短く書けます。

=IF(COUNTA(A2:F2) = 6, "完了", "未完了")

ただし COUNTA は数式の "" を数えるので、数式が入る列では正確でなくなります。

条件付き書式で未入力を目立たせる

=ISBLANK($C2)

列だけを $ で固定してください。

配列で使えない点に注意

ISBLANKは ARRAYFORMULA の中で正しく動きません。 範囲を渡しても、最初のセルだけを判定する挙動になります。

全行で判定したいなら、次のように書き換えてください。

=ARRAYFORMULA(IF(A2:A="", "未入力", ""))

または LEN を使います。

=ARRAYFORMULA(IF(LEN(A2:A)=0, "未入力", ""))

LEN(A2)=0 は文字数が0という判定で、数式が返した "" も0になります。挙動としては = "" に近いものです。

他のIS系関数

関数 判定するもの
ISBLANK 空欄か
ISNUMBER 数値か
ISTEXT 文字列か
ISERROR エラーか(すべての種類)
ISNA #N/A
ISLOGICAL TRUE/FALSE

ISNUMBER は実務で頻出します。

数値が文字列になっていないか確認する

=IF(ISNUMBER(A2), "数値", "文字列")

SUM の合計が合わないときの原因切り分けに使えます。COUNT で範囲全体を確認する方法もあります。

部分一致の判定

=IF(ISNUMBER(SEARCH("営業", A2)), "該当", "")

SEARCH は見つかった位置を返し、見つからなければエラーになります。それを ISNUMBERTRUE/FALSE に変換しています。FILTER の条件でもよく使う形です。

エラーかどうかの判定

=IF(ISERROR(A2), "エラーあり", "")

エラーを別の値に置き換えたいだけなら IFERROR のほうが簡単です。ISERROR は「エラーの件数を数える」など、エラーの存在自体を扱いたいときに使います。

=SUMPRODUCT(--ISERROR(C2:C100))

Excelとの違い

ISBLANK および IS系関数はすべて共通です。書式も挙動も同じで、数式が返した "" に対して FALSE を返す点も同じです。

ARRAYFORMULA はスプレッドシート固有ですが、Excel 365のスピルでも同様に ISBLANK は配列に対して期待通りに動かないことがあります。

まとめ

  • ISBLANK は「本当に何も入っていないか」を判定する
  • 数式が返した "" に対しては FALSE を返す。ここが = "" との決定的な違い
  • COUNTACOUNTBLANK の食い違いも、この空文字が原因
  • – 実務では = "" のほうが出番が多い。ISBLANKは入力漏れの厳密なチェックに使う
  • ARRAYFORMULA の中では動かないLEN(A2:A)=0 で代用する
  • ISNUMBER は文字列化の検出と部分一致判定に頻出

関連する関数

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です