Access。クロス集計クエリで空白に0(ゼロ)を表示させる方法
<クロス集計クエリ0表示 Nz関数とSum関数>
前回、クロス集計クエリをクエリウィザードを使わないで作る方法をご紹介しましたが、クロス集計クエリの結果を見た時に、
空欄が目立ってしまうことがあります。
次のようなクロス集計クエリがあります。
クロス集計クエリを作成すると、
データがないところは、当然何もされないので、
空欄で表示されるわけですね。
この空白になっているところに0(ゼロ)を表示したいわけなのですが、
Excelのピボットテーブルのように、
チェックマークを付ければ、0(ゼロ)を表示してくれるというわけには、
Accessはなっておりません。
では、0(ゼロ)を自分で入力!なんてことは当然出来ません。
ということで、演算フィールドにNz関数とSum関数を使うことで、
0(ゼロ)を表示することが出来ますので、ご紹介していきます。
さてNz関数は、Null Zeroを意味している関数です。
すなわち、
データがNull値でない場合はデータをそのまま返して、
Null値の場合はNullの代替値を返すことが出来る関数です。
今回は、代替値を0(ゼロ)を使うことで、
0(ゼロ)を表示することが出来るのです。
では、クロス集計クエリを、「デザインビュー」で表示しましょう。
演算フィールドの「金額」を修正していきます。
金額: Sum([単価]*[数量])
を次のように修正します。
合計金額: Nz(Sum([単価]*[数量]),0)
データシートビューに変えてみましょう。
このように、0(ゼロ)を表示することができましたね。
しかしながら、この0(ゼロ)を表示させることは出来たのですが、
算出されている数値も、0(ゼロ)も左揃えになってしまっていますね。
このNz関数。ヘルプをみると、
Nz ( variant [, valueifnull ] )という引数なのですが、
引数のvariantはデータ型 Variant の変数。
ということで、データ型数値になってしまうのです。
では、右揃えというか数値にするには、どうしたらいいのでしょうか?
これは、Excelでも発生するのですが、
その場合は、×1することで変えることが出来ますので、
演算フィールドにアレンジを加えてみましょう。
合計金額: Nz(Sum([単価]*[数量]),0)*1
先ほどの演算フィールドの後ろに、*1をつけてみました。
それでは、データシートビューに変えてみましょう。
0(ゼロ)も含めて、左揃えになりましたね。
このように、クロス集計クエリで空欄に0(ゼロ)を表示するには、
Nz+Sum関数のネストで対応することが出来ますので、
少し知っていると便利ですので、0(ゼロ)を表示したいときには、
是非使ってみてください。