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以上に簡単に思えることも、ちょっと手間がかかるかもしれませんね。