Excel関数 逆引き集 | NULL文字対策 → IF

Excel
スポンサーリンク

概要

「値が入っていないときだけ別の文字を出したい」
「空白をそのまま計算に使うとエラーになるのを避けたい」
「外部システムに渡すとき、NULL(空)を ‘N/A’ などに置き換えたい」

こういう “値がない(NULL/空白)ときの対策” をするときの基本が IF 関数です。

Excel に「本当の意味でのデータベース的な NULL」はありませんが、
実務では主に次の2つを「NULLっぽい状態」として扱います。

  • 何も入力されていない空セル
  • 見た目は空だが「””(空文字)」が入っているセル

ここでは、それらを IF でどう扱い分けるか を、テンプレと例題でかみ砕いて説明します。


Excelにおける「NULL(空)」の考え方

空セルと空文字(””)の違い

Excel ではよく「NULL」と言いつつ、実際には次の2種類があります。

  1. 本当に何も入っていないセル(ユーザーが何も入力していない)
  2. 数式の結果として "" を返しているセル(見た目は空だが、実際は“空文字”が入っている)

多くの場面では「どちらも“空っぽ”として扱いたい」ので、
IF で

  • =IF(A2="","空です","値があります")
  • =IF(A2="","","なにかある")

のようにチェックします。


基本:空なら代替文字を出す

空白セルを「N/A」に置き換える

A2 に値が入っているかどうかで表示を変えたい例です。

A2 が空 or 空文字 → 「N/A」
A2 に値がある → A2 の値そのまま

B2 に書く式はこうなります。

=IF(A2="","N/A",A2)

ポイントは、条件を A2="" としていることです。

  • A2 が空セル → TRUE(”” と等しい)
  • A2 が “” を返す数式 → TRUE
  • それ以外(何か入っている) → FALSE

「空っぽっぽい」状態をまとめて拾えます。


数値計算のNULL対策:空なら0扱い・それ以外はそのまま

空は 0 にして計算エラーを避ける

A2 に数値が入る想定だけど、空のときもある。
空のときは 0 として扱いたい例です。

=IF(A2="",0,A2)

これにより、

  • A2 が空 → 0
  • A2 に 10 → 10

となるので、合計や平均の計算で "" が混ざってエラーになるのを防げます。

合計列で直接使うなら、たとえば

=IF(A2="",0,A2) + IF(B2="",0,B2)

のように組み合わせてもOKです。


文字列生成のNULL対策:空ならその項目だけ飛ばす

空をそのままつなぐと“変な文”になる問題

たとえば、氏名(A2)と部署名(B2)から

「山田(営業部所属)」

のような文字列を作りたいとします。

B2 が空なのに

=A2 & "(" & B2 & "所属)"

と書くと、

「山田(所属)」

のように、途中が抜けて変な表示になります。

IFで「空なら何も入れない」にする

そこで B2 が空かどうかを IF で判定し、
空ならその部分を出さないようにします。

=A2 & IF(B2="","(部署不明)","(" & B2 & "所属)")
  • B2 が空 → 「山田(部署不明)」
  • B2 に「営業部」 → 「山田(営業部所属)」

のように、“NULL(空)用のメッセージ” を用意しておくパターンです。


外部システム連携用に「NULLの代わり」を出す

API・CSV・システム連携でよくある指定

「値がないときは NULL という文字を出してほしい」
「空欄じゃなくて ‘null’ や ‘-‘ などを出したい」

こういうときも、基本はまったく同じです。

A2 が空かどうかを見て、
空なら “null”、そうでなければ A2 を返します。

=IF(A2="","null",A2)

あるいは、ダブルクォーテーション付き JSON 風にするなら、

=IF(A2="","null","""" & A2 & """")
  • A2 が空 → null(文字列ではなく、JSON的な null を表現したいとき)
  • A2 に “Tokyo” → “Tokyo”
    (セル上の見た目は "Tokyo" という文字列になります)

「空のときに何を出したいか」を IF の第2引数に書くだけ、というシンプルな構造です。


IFと他関数の組み合わせで“NULL対策込み処理”にする

TEXT+IF:空なら空、値があるときだけフォーマット

日付をフォーマットして表示するとき、
セルが空なのに TEXT をかけると "1900/01/00" のような変な表示になることがあります。

そこで 「空なら何もしない」「値があるときだけTEXT」 という形にします。

A2 に日付、B2 にフォーマット済み文字列を作る例です。

=IF(A2="","",TEXT(A2,"yyyy/mm/dd"))
  • A2 が空 → B2 も “”(見た目も空)
  • A2 に日付 → TEXT で「yyyy/mm/dd」形に整形

この「空なら空、そうでなければ〇〇」は非常によく使うNULL対策パターンです。


NULL文字対策の“型”まとめ

空なら代替文字、値があればそのまま

=IF(A2="","代わりの文字列",A2)

空なら 0、値があればそのまま(計算用)

=IF(A2="",0,A2)

空なら何も表示しない、値があれば加工して表示

=IF(A2="","",TEXT(A2,"yyyy/mm/dd"))

空なら「null」、値があればそのまま

=IF(A2="","null",A2)

このあたりの「型」をそのまま指に覚えさせてしまうと、
NULL(空)を意識した安全な数式設計ができるようになります。


問題1

A2 が空(値なし)の場合は「N/A」、
値が入っている場合は A2 の値をそのまま表示したいです。
B2 に書く IF 関数の式を書いてください。

=IF(A2="","N/A",A2)

問題2

A2 に数値が入る想定ですが、空のこともあります。
空の場合は 0、値が入っている場合はそのまま A2 の値を返したいです。
IF を使った式を書いてください。

=IF(A2="",0,A2)

問題3

A2 に氏名、B2 に部署名が入ります。
B2 が空の場合は「(部署不明)」、
B2 に値がある場合は「(部署名所属)」という形で表示したいです。

「山田」「営業部」なら「山田(営業部所属)」
「山田」「(空)」なら「山田(部署不明)」

となるように、C2 に書く式を書いてください。

=A2 & IF(B2="","(部署不明)","(" & B2 & "所属)")

問題4

A2 に日付が入ることがありますが、空のこともあります。
空のときは空のまま、日付が入っているときだけ「yyyy/mm/dd」形式で表示したいです。
B2 に書く、IF と TEXT を組み合わせた式を書いてください。

=IF(A2="","",TEXT(A2,"yyyy/mm/dd"))

問題5

A2 に文字列が入ることがありますが、空のときは「null」という文字を出したいです。
A2 が空なら “null”、空でないなら A2 の値をそのまま返す式を、B2 に書いてください。

=IF(A2="","null",A2)

IF での「NULL文字対策」は、

  • 空ならどうするか
  • 値があるならどうするか

この2パターンをはっきり決めてあげるだけです。

一見地味ですが、ここをきちんと設計しておくと、
のちのち「変な表示」「エラー」「外部システムへの渡しミス」をかなり防げるようになります。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました