ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

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関数

このとき、演算のフィールド名は任意で構いません。

クロス集計クエリデザインビュー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 の文字列 ("") を返します。
twitter hatena line pocket

関連ヘルプ

クエリの演算フィールドについて、式ビルダーの使い方
重複のない一通りデータを取得したい
テーブルのデータ型をクエリで変更する 《データ定義クエリ》
外部結合とは
削除クエリで、別のテーブルまたはクエリと共通するレコードを一括削除する
複数テーブルをつなげてレコードを結合する 《ユニオン クエリ》
クエリで空白(でない)データを抽出したい、Accessの空白について
重複クエリとは
部分一致のパラメーター クエリを作成する、パラメーター クエリの設定方法
更新クエリでテーブルのデータを置換する(文字列の一部更新)
クロス集計クエリを元にパラメーター クエリを実行「~認識できません」エラー
特定のレコードのみ最初に並べ、他のレコードは普通に並べ替えする
基本的な抽出条件の書き方について
ワイルドカードや数式を使用した高度な抽出
クエリで連番、グループ連番をふる
アクション クエリのメッセージを非表示にするには