No.002
クロス集計クエリの結果のNull値を「0」と表示する
2003/2007/2010/2013/2016/2019
クロス集計クエリの結果で、該当がなかったときは空白(Null 値)の表示となります。
Null 値 ではなく「0」で表示したい、というお問い合わせです。
なにはともあれ、クロス集計クエリをデザイン ビューで開きましょう。
クロス集計の集計結果を表している設定は、[行列の入れ替え]行 で [値] の設定となっている、今回の例では合計の計算を行っている列です。
では、この計算の結果が Null 値 の場合は 0 となるように、演算式を設定します。
Accessの関数には便利な、Null 値 を別の指定した値に変換できる Nz 関数というのがあります。
Nz 関数は、2つの引数を次のように設定します。
Nz(フィールドや数式, Null 値の場合に変換する値)
今回は、[金額]フィールドの合計が Null 値 の場合 0 にするので、次の式になります。
Nz(Sum([金額]),0)
クロス集計の [集計]行 は、組み込みの [合計] などの集計方法以外の計算は、[演算] に指定して求めます。
したがってデザイン ビューは、次のように設定します。
このとき、演算のフィールド名は任意で構いません。
さて、Nz 関数の結果は、文字列のごとく返されます。
キチンと数値化する場合は、数値化する関数の引数にNz関数をネストします。
Cint(Nz(Sum([金額]),0))
CLng(Nz(Sum([金額]),0))
Val(Nz(Sum([金額]),0))
Cint 関数は引数を 整数型 に変換、CLng 関数は引数を 長整数型 に変換します。桁数によって利用してください。
またVal 関数は、引数に含まれる数値を適切なデータ型に変換して返します。
ヘルプmemo
<Nz 関数>(式のカテゴリ: 変換)
指定の値が Null 値の場合に、0 長さ 0 の文字列 ("")、またはその他の指定値を返します。
- 数式:
- Nz(variant, [valueifnull])
- 引数:
- ・[variant] ...データ、フィールド、数式、データ型 Variant の変数を指定
- ・[valueifnull] ...引数[variant] が Null 値 の場合に返される値を指定 (省略可)
- ヒント:
- ・クエリで使用し、引数[valueifnull] を省略すると、長さ 0 の文字列 ("") を返します。