PR

AccessによるNullを含んだ計算 Nz関数の活用

全般

Accessによる計算において、Nullデータの計算は数値として認識されず、結果が返されません。

具体的には、5+Null = Null のように計算結果にNullを返すことになります。

データベースで数値情報を蓄積する中、クエリ等で計算が必要になる機会もでてきますが、Nullの場合はゼロとして扱うことが多く、この際の処理方法を紹介します。

スポンサーリンク

サンプルデータ

サンプルテーブルとして「テーブルA」を作成し、フィールドには「数値A」と「数値B」を作成、それぞれのデータ型を「数値型」とします。

次に、以下のようにサンプルデータを入力します。

数値A 数値B
15 10
10  
  11

特に、2レコード目、3レコード目は各フィールドがNullとなっています。これらデータについて、クエリで単純な足し算の結果を見ていきます。次いで、Nz関数を用いた場合の結果も見てみましょう。

サンプルクエリ

今回作成するサンプルクエリは次のように【フィールド】の項目を設定します。

① 数値A
② 数値B
③ 合計: [数値A] + [数値B]
④ Nzを利用した合計: Nz([数値A],0)+Nz([数値B],0)

これらは図1に示したとおりです。

図1 サンプルクエリの設定内容

そして、作成したクエリからデータシートビューで内容を確認したものが図2となります。

図2 Nz関数を用いた計算結果

まず、単純に足し算をした③の結果の場合、Nullを含んだ結果はそのままNullを返しています。一方、Nz関数を用いて、Nullをゼロと代替し計算した④の結果はそれぞれ、Null=0として足し算した結果を返しています。

それでは、Nz関数について詳しく見ていきましょう。

Nz関数について

まず、Nz関数の構文は以下のようになります。

Nz ( variant [, valueifnull ] )

各引数の説明は次のとおりです。

引数 説明
variant 必須。 データ型 Variant の変数です。今回はクエリのフィールドを設定しています。
valueifnull variant 引数が NULL の場合に返す値を提供する Variant です。 この引数を使用すると、0 または長さが 0 の文字列以外の値を返すことができます。上述の例では「0」を設定しました。

それでは、改めてNz関数による処理を含めたプロセスを確認しましょう。

先に紹介した④の「Nzを利用した合計: Nz([数値A],0)+Nz([数値B],0)」について、各フィールドでNullとなった場合は、代わりに「0」として扱い計算することとしており、その結果が返されたものとなります。

まとめ

今回は、数値計算としてNullをゼロと代替しましたが、例えば文字列のフィールドでNullの場合に、Nz関数として「値無し」といったワードに置き換えることも可能です。データ処理をする際に、Nullの取り扱いは難しく、状況に応じた処理が必要になりますがNz関数を用いれば様々な処理をすることができますので、是非活用していただければと思います。

スポンサーリンク

Kindle Unlimitedにサインアップして無料体験に登録する
Kindle Unlimitedに登録すると、人気のシリーズ、ベストセラー、名作などに好きなだけアクセスして、シームレスなデジタル読書体験を実現できます。

コメント

タイトルとURLをコピーしました