1/30/2022

Access。クロス集計クエリで空白のヌル値に「0(ゼロ)」を表示したい【Null value】

Access。クロス集計クエリで空白のヌル値に「0(ゼロ)」を表示したい

<Access>

Accessでテーブルからクロス集計クエリを作るには、クエリウィザードをつかうことで手早く作ることができます。


合算するデータが無い場合は、空欄=ヌル値で表示されているのですが、この空欄に「0(ゼロ)」を表示したいのですが、どうしたら手早く行うことができるのでしょうか。


Excelのピボットテーブルには、「0(ゼロ)」で表示する方法は、ありますが、Accessには、そのような機能はありません。


そこで、Accessのクエリでは、演算フィールドをつかって「0(ゼロ)」を表示します。


では、デザインビューにして演算フィールドを設定していきます。


[売上高]フィールドを次のように修正していきます。


金額: Nz(Sum([売上高]),0)


そして、忘れてはいけないのは、集計方法を「合計」から「演算」に変更します。

Sum関数を使うことで、「演算」に変更しないとエラーメッセージが表示されてしまいます。


では、実行して確認してみましょう。


空欄=ヌル値のセルに「0(ゼロ)」を表示することができました。


演算フィールドを説明します。

Nz関数は、フィールドがヌル値のときに、代わりに値を代入することができる関数です。

Excelにはありません。Nz関数を使うことで、ヌル値のセルが対象で処理をしてくれます。

そのため、IIf関数のようなイメージを持たなくても大丈夫です。


その引数に、Sum関数を使います。

集計関数のSumをつかうことで、該当するデータの合算値を算出することができます。

この結果がヌル値だったら、「0(ゼロ)」で置換するように設定することで、「0(ゼロ)」を表示することができました。



ただ、よく見ると、数値が左揃えになってしまいました。

これは、数値型ではなく、文字型に変わってしまったためです。


データ型を数値型に戻す必要がありますので、演算フィールドをさらに加筆修正していきます。


デザインビューに変更します。


CLng関数で先程の演算フィールドを囲ってあげるように修正します。


金額: CLng(Nz(Sum([売上高]),0))

実行して確認してみましょう。


数値が右揃えに戻ったことが確認できました。


CLng関数は、文字型(テキスト型)のデータを数値型に変換することができる関数です。

また、CLng関数は、整数の時だけに使用することができる関数です。


このように、単純に「0(ゼロ)」を表示したいだけだったのですが、色々修正する必要があります。


Accessでは、Excel以上に簡単に思えることも、ちょっと手間がかかるかもしれませんね。