ISBLANKは、セルが本当に空欄かどうかを判定する関数です。
=A1="" でも空欄判定はできますが、両者は別の意味を持ちます。この違いを知らないと、件数が合わない・条件が効かないといった問題の原因が分かりません。
書式
=ISBLANK(セル)
TRUE か FALSE を返します。
="" との違い
これがこの関数の核心です。
| セルの状態 | ISBLANK(A1) |
A1 = "" |
|---|---|---|
| 何も入力していない | TRUE |
TRUE |
数式が "" を返している |
FALSE |
TRUE |
| スペースが1つ入っている | FALSE |
FALSE |
0 が入っている |
FALSE |
TRUE(※) |
※ A1 = "" は 0 に対しても TRUE を返す環境があります。0と空欄を区別したいなら ISBLANK か COUNT を使ってください。
数式が返した空文字
=IF(A2="", "", A2*1.1)
この数式が入ったセルは、見た目は空欄ですが、値としては空文字("")が入っています。
- –
ISBLANK→FALSE(何か入っている) - –
= ""→TRUE(空文字と一致する) - – COUNTA → 1件として数える
- –
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 は見つかった位置を返し、見つからなければエラーになります。それを ISNUMBER で TRUE/FALSE に変換しています。FILTER の条件でもよく使う形です。
エラーかどうかの判定
=IF(ISERROR(A2), "エラーあり", "")
エラーを別の値に置き換えたいだけなら IFERROR のほうが簡単です。ISERROR は「エラーの件数を数える」など、エラーの存在自体を扱いたいときに使います。
=SUMPRODUCT(--ISERROR(C2:C100))
Excelとの違い
ISBLANK および IS系関数はすべて共通です。書式も挙動も同じで、数式が返した "" に対して FALSE を返す点も同じです。
ARRAYFORMULA はスプレッドシート固有ですが、Excel 365のスピルでも同様に ISBLANK は配列に対して期待通りに動かないことがあります。
まとめ
- –
ISBLANKは「本当に何も入っていないか」を判定する - – 数式が返した
""に対してはFALSEを返す。ここが= ""との決定的な違い - – COUNTA と
COUNTBLANKの食い違いも、この空文字が原因 - – 実務では
= ""のほうが出番が多い。ISBLANKは入力漏れの厳密なチェックに使う - – ARRAYFORMULA の中では動かない。
LEN(A2:A)=0で代用する - –
ISNUMBERは文字列化の検出と部分一致判定に頻出