概要
「空白なのか、エラーなのか」をきちんと見分けたい場面は、とても多いです。
見た目が「何も表示されていない」セルでも、
- 本当に“何も入っていない”空白セル
""(空文字)を返している数式- 実はエラーだけど表示形式や条件付き書式で見えない
など、中身はバラバラです。
ここをしっかり区別してくれるのが ISBLANK 関数です。
さらに、ISERROR や IF と組み合わせることで、
「空白ならスキップ、エラーなら別扱い」といった柔らかい制御ができます。
ISBLANK の基本
書式と返り値
ISBLANK の基本形はとてもシンプルです。
=ISBLANK(値)
ここでの「値」は、セル参照(例:A2)を入れることが多いです。
結果は必ず TRUE か FALSE のどちらかになります。
- セルが「完全に何も入力されていない」場合 → TRUE
- 何かしら入っている(数値・文字列・数式の結果・エラーなど) → FALSE
ポイントは、「見た目」ではなく
“セルに中身があるかどうか” を判定している、ということです。
たとえば、次の 2 つは見た目はどちらも“空白”ですが、動きが違います。
A2 に何も入力していない場合
=ISBLANK(A2) ' → TRUE
A2 に次の数式が入っている場合
="" ' 見た目は空白
=ISBLANK(A2) ' → FALSE(数式が入っているため)
「空白とエラーを区別」というテーマでは、
まず「本物の空白」だけを TRUE にする、という性質を押さえておくことが大事です。
空白とエラーを区別する基本パターン
「空白」「エラー」「正常」の3つを分ける
よくあるニーズは、
- 本当に空白:まだ入力されていないだけ
- エラー:式やデータに問題がある
- 正常値:数値や文字列が正しく入っている
この 3 パターンをきちんと分けたい、というものです。
A2 を判定したいとき、
次のように IF と ISBLANK、ISERROR を組み合わせて書けます。
=IF(
ISBLANK(A2),
"空白",
IF(
ISERROR(A2),
"エラー",
"正常"
)
)
判定の流れはこうです。
- まず ISBLANK(A2) で「本当に何も入っていないか」をチェック
- 空白でなければ、今度は ISERROR(A2) で「エラーかどうか」をチェック
- どちらでもなければ「正常」扱い
これで、「空白」と「エラー」をちゃんと区別しながら、
正常値も一緒に仕分けできます。
空白ならスキップ、エラーなら 0 などにする
入力されていない行は無視、エラー値は別扱い
例えば、A列に入力値、B列に計算結果が入っているとします。
B2 に「A2 を使った計算」をしたいが、以下のようにしたいとしましょう。
- A2 が空白なら、B2 も空白(「まだ入力されていないだけ」とみなす)
- A2 が入っているが、計算の結果エラーになったら 0 にする
- 正常に計算できたら、その計算結果を表示
こういうときは、まず空白判定を ISBLANK で行い、
その後にエラー判定を行うのが分かりやすいです。
例として、B2 に書く式:
=IF(
ISBLANK(A2),
"",
IFERROR(何らかの計算式, 0)
)
「何らかの計算式」の部分に、たとえば 100/A2 などを入れます。
まず ISBLANK(A2) で「未入力なら完全スルー」、
未入力でなければ計算し、
その結果がエラーなら 0 という流れです。
空白(未入力)と、
入力されているがエラーになっているケースを、
きちんと切り分けることができます。
空白だけを数えたいときの ISBLANK
COUNTIF では拾いきれない“本当の空白”を数える
空白セルの数を数えたいとき、
単に COUNTIF(A2:A100,"") を使うと、
- 本当に何も入っていないセル
""(空文字)を返している数式が入ったセル
どちらも「空白」としてカウントされてしまいます。
「数式が入っている「空っぽ」は空白とはみなしたくない」
という場合は、ISBLANK を使ったほうが正確です。
一例:
=SUMPRODUCT(--ISBLANK(A2:A100))
ISBLANK(A2:A100) で TRUE/FALSE の配列を作り、-- で TRUE=1, FALSE=0 に変換、
SUMPRODUCT で合計=「本物の空白セルの個数」を数えています。
この数え方は、
「空白とエラーを区別したい」「空文字も区別したい」というときの定番です。
空白とエラーを視覚的に区別したいとき
表示上のメッセージを変える
エラーが出ているセルに「エラー」、
空白のセルに「未入力」、
正常なセルにはその値をそのまま表示したい場合。
たとえば B2 に、A2 を判定する式として次のように書けます。
=IF(
ISBLANK(A2),
"未入力",
IF(
ISERROR(A2),
"エラー",
A2
)
)
こうしておくと、
- A2 が完全な空白 → B2 は「未入力」
- A2 がエラー(#DIV/0!, #N/A など) → B2 は「エラー」
- A2 が正常 → B2 は A2 の値
となり、目で見てどのセルがどの状態か、判断しやすくなります。
「空白なのか、エラーなのか、正常なのか」を
一目で区別したい場面では、とても役に立つパターンです。
例題
問題1
A2 が「完全な空白セル」のとき TRUE、
それ以外(数値・文字列・数式・エラーなど)が入っているとき FALSE を返す式を書いてください。
=ISBLANK(A2)
問題2
A2 を判定して、
空白なら「空白」、エラーなら「エラー」、それ以外は「正常」と表示したいです。
そのための式を書いてください。
=IF(
ISBLANK(A2),
"空白",
IF(
ISERROR(A2),
"エラー",
"正常"
)
)
問題3
A2 に入力された値を使って計算したいが、
A2 が空白なら何も表示せず(””)、
A2 が入っていて計算結果がエラーなら 0、
正常なら計算結果を表示したいとします。
「何らかの計算式」を 100/A2 としたとき、B2 に書く式を書いてください。
=IF(
ISBLANK(A2),
"",
IFERROR(100/A2, 0)
)
問題4
A2:A100 の中で、「本当に何も入力されていない空白セル」の数を数えたいです。
ISBLANK を使った式を書いてください。
=SUMPRODUCT(--ISBLANK(A2:A100))
問題5
A2 を判定して、
空白なら「未入力」、エラーなら「エラー」、
それ以外(正常値)の場合は A2 の値をそのまま表示したいです。
B2 に書く式を書いてください。
=IF(
ISBLANK(A2),
"未入力",
IF(
ISERROR(A2),
"エラー",
A2
)
)
まとめ
「空白とエラーを区別 → ISBLANK」のポイントは、
- ISBLANK は「本当に何も入っていないセル」だけ TRUE
- 空文字
""やエラー、数式の入った“見かけ上の空白”は FALSE - ISERROR や IF と組み合わせることで
空白・エラー・正常値をきちんと分けられる
というところにあります。
まずはこの型を覚えておくと、応用しやすくなります。
=IF(
ISBLANK(セル),
"空白のときの処理",
IF(
ISERROR(セル),
"エラーのときの処理",
"正常のときの処理"
)
)
あなたの表の中で、「空白」と「エラー」がごちゃっと混ざってよく分からなくなっているところがあれば、
一度 ISBLANK を使って“ちゃんと仕分け”してみてください。
そのあとにエラー対応や集計をすると、格段にやりやすくなります。
