【Access】 Nz関数で空白を上手に扱う方法

 

アクセス担当のまみです。

 

何も入力されていない空白って扱い方を知らないとちょっと厄介ですね。

空白があることでエラーになったり、空白の数を数えるのかそうでないのかで式も変わってくるし。

 

それに空白って「””」と「Null」の2種類あるんです。

見た目に同じなので人間には区別はつかないけど、パソコンには違って見えるらしい・・・・

 

今回はそんな空白の扱いについてお伝えしますね。

 

Nullと””

 

何もデータが入力されていない状態って「Null」がデータとしてテーブルに入っています。

 

VBAでコードを書いてデータをクリアする時とか、テキストボックスやコンボボックスに「Null」か「””」を使います。

 

私は「Null」は後の処理でエラーになることが多いので「””」を使っています。

 

(はてな君)
Nullと””って何が違うの?

 

(あいちゃん)
何も入力していないとNullで一度入力した値を消したりすると””になるよ。

 

(はてな君)
ふ~ん。そんなの区別つかないね~。

 

(あいちゃん)
見た目は同じだからね。じゃあ実際に空白のデータを扱ってみよう!

 

NZ関数

 

構文
Nz(データ,代替値)

データがある場合はデータを返してくれて、Nullの場合は代替値を返してくれます。

 

(あいちゃん)
代替値は省略可能なんだよ。

 

(はてな君)
省略可能?代替値が省略されていたらどうなるの?

 

(あいちゃん)
データがNullの時に数値だったら0、文字列だったら「””」を返してくれるよ!

 

数値の場合

 

数値がNullだと何が困るかってNullがあると、計算結果もNullになっちゃうってところです。

 

その方が入力ミスがわかるので良いって場合もあると思うので、ケースバイケースですね。

 

使用するテーブル

「T_売上管理表」

 

(はてな君)
わ~い!クリスマスだ!

 

(あいちゃん)
う~ん。なんか反応するとこ違うけど。ま、たまには息抜きしてね!

 

このテーブルからクリスマスツリーとリースの合計を出したいとします。

 

まずはクエリでNz関数を使用しないで計算してみますね。

合計:[クリスマスツリー]+[リース]で計算してくれます。

 

フィールドに「合計: [クリスマスツリー]+[リース]」をそのまま入力してもいいですが、①で右クリックしてズームを選択すると画面が表示されるので、②で入力して③「OK」すると全部の式が見れますよ。

 

出力結果

 

(はてな君)
へ~。空白があると合計も空白になるんだ。計算して欲しいんだけど~。

 

(あいちゃん)
そうだよね。じゃぁNz関数に計算してもらいましょう。

 

合計: Nz([クリスマスツリー])+Nz([リース])で計算してくれます。

 

 

 

出力結果

 

(はてな君)
ちゃんと計算されたよ~!

 

[quads id=2]

 

文字列の場合

 

文字列の場合も数値の場合の使い方と同じで特に違いはないです。

 

ただ、文字列の場合は、空白だったらこの文字を入れたいって代替値を使いたいことがあるかなって違いでしょうか。

 

使用するテーブル

「T_訪問件数」

役職が空白の場合には「一般社員」と表示されるようにしてみましょう。

 

職種:Nz["[役職]”,”一般社員”]で表示してくれます。

 

(あいちゃん)
クエリには役職ってフィールドを表示されるようにしてないんだけど、「T_訪問件数」に役職ってあるので、フィールド名に役職って使えないんだよ。

 

(はてな君)
そっかぁ。だから「職種」にしたんだ~。

 

出力結果

 

(はてな君)
空白の扱いがよくわかったよ!

 

まとめ

 

データに空白があった時もNz関数を使えば簡単に整理できちゃいますね。

 

空白のデータって入力もれなのか、本当に空白なのかで扱いが違ってくるので状況に応じて使い分けてくださいね。

 

一番いいのは入力もれを除いて、空白を作らないでルールを決めておくことなんですけどね!

 

スポンサーリンク