NULLと空白の違いとは?
データクリーニング初心者が最初にハマるポイントです。
データクリーニングを始めると、初心者がかなり高い確率で混乱するのが、
- NULL
- 空白
- 空文字
- 0
の違いです。
見た目では「何も入っていない」ように見えても、システム側ではまったく別物として扱われることがあります。
そしてこの違いを理解しないと、
- 集計がおかしい
- 検索できない
- XLOOKUPが一致しない
- CSV連携で壊れる
といった問題が発生します。
この記事では、初心者向けに、
- NULLとは何か
- 空白との違い
- Excelではどう見えるのか
- 実務で何が問題になるのか
を、サンプル付きでわかりやすく解説します。
まず結論
簡単に言うと:
| 状態 | 意味 |
|---|---|
| NULL | 値そのものが存在しない |
| 空白 | 空っぽの値 |
| 空文字 "" | 長さ0の文字列 |
| 0 | 数値のゼロ |
です。
見た目は似ていますが、内部的には別物です。
イメージで理解する
- NULL
「そもそも値が存在しない」
- 空白
「空欄として保存されている」
- 空文字
「文字列だけど中身が空」
- 0
「ゼロという数値」
Excel ではどう見えるか?
ここが初心者が混乱する原因です。
Excelでは、これらが 全部「空っぽ」に見える ことがあります。
例えば
| A列 |
|---|
| (未入力) |
| ="" |
| 0 |
見た目は似ています。
でも内部的には違います。
実際に確認してみる
LEN関数
=LEN(A1)
結果
| 値 | LEN結果 |
|---|---|
| 未入力 | 0 |
| ="" | 0 |
| 0 | 1 |
ここでは、未入力と=""は同じに見えますが、「未入力」と「空文字」は実は違います。
ここが重要です。
例えば:
=ISBLANK(A1)
結果
| 値 | ISBLANK |
|---|---|
| 未入力 | TRUE |
| ="" | FALSE |
なぜ異なる結果になるか?
- 未入力
本当に空。
- =""
数式が存在している。
つまり:
「空文字という値」
が入っています。
実務ではここがかなり重要
例えばXLOOKUPで、下記の変換表を利用したとします。
変換表
| A列(コード) | B列(名称) |
|---|---|
| A001 | 東京 |
| A002 |
検索
=XLOOKUP("A002",A:A,B:B)
結果
一見空っぽ。
でも実際には中身が:
- NULLなのか
- 空文字なのか
- 本当に空白なのか
で後続処理が変わります。
CSVでは、特に危険度が上がります。
CSVでは:
A001,
名称の部分が、
- NULL
- 空文字
- 空白
のどれとして扱われるかが、システムによって違います。
ここは、システム連携では超重要です。
例えば:
| 値 | 意味 |
|---|---|
| NULL | 未登録 |
| 空文字 | わざと空にした |
| 0 | ゼロ件 |
など、意味が変わることがあります。
実務でよくある事故
- 集計漏れ
NULLがカウントされない。
- 検索不一致
空白に見えるのに一致しない。
- IF判定事故
=IF(A1="","空白","値あり")で想定外動作。
- CSV連携崩壊
他システム側でNULL扱いになる。
Excelでは「空白っぽいもの」が多い
かなり重要です。
Excelには:
| 種類 | 見た目 |
|---|---|
| 本当の空白 | 空 |
| ="" | 空 |
| 半角スペース | 空っぽに見える |
| 全角スペース | 空っぽに見える |
などがあります。
実務ではTRIMが重要
例えば:
=TRIM(A1)
何をするものか?
- 余分な空白除去
- 半角スペース整理
ただし全角スペースは消えない
ここも初心者がハマります。
SUBSTITUTEで除去
=SUBSTITUTE(A1," ","")
データクリーニングで重要なのは**「見た目を信じない」**
これがかなり本質です。
例えば:
空っぽに見える
でも、
- 空文字
- スペース
- NULL
- 数式結果
かもしれません。
実務では「空白ルール」を決める
かなり重要です。
例えば:
| 状態 | どう扱う? |
|---|---|
| NULL | 未登録 |
| 空文字 | 意図的空欄 |
| 半角スペース | 除去 |
| 全角スペース | 除去 |
のように決めます。
まとめ
データクリーニングにおいて、最初に混乱しやすいのが、
- NULL
- 空白
- 空文字
- 0
の違いです。
見た目は似ていますが、 システム内部ではまったく別物として扱われます。
特にExcelでは:
- 本当の空白
- =""
- スペース
- 数式結果
が混在しやすいため、
「見た目だけで判断しない」ことが非常に重要です。
データクリーニングでは、
「何が入っているか」
だけでなく、
「どういう状態で存在しているか」
を意識できるようになると、実務力がかなり上がります。