●全ページ一覧の表示(ページ下へ移動)>>

▲PAGE TOP

クロス集計でデータの表示


NO 内容 分類 発行日
vol247 クロス集計でデータの表示 クエリ 2015年11月25日

お客様から、クロス集計で質問がありました。

通常は、クロス集計では、「合計」などを計算する場合が多いです。

でも、データがある場合は「あり」存在しない場合は「なし」を表示したいそうです。

例えば、次のようなデータがあったとします。


ID NO 製品
1 A-12345 A
2 A-12345 B
3 B-12345 A
4 B-12345 B
5 B-12345 C
6 B-12345 D
7 C-12345 B
8 C-12345 C

IDは、オートナンバーです。

これを、縦軸は「NO」別に 横軸は「製品」別に並べて製品が存在する場合は「あり」ない場合は、「なし」と表示したい場合です。

結果は、以下のようにしたい場合です。

NO A B C D
A-12345 あり あり なし なし
B-12345 あり あり あり あり
C-12345 なし あり あり なし

クロス集計でも出来ました。

以下やり方です。


■(1)まず、クエリ集計の合計などの値に表示する「数値」という項目を作ります。

通常の選択クエリで、「数値」という項目を作成します。

項目に

数値: 1

で、数値に「1」が入ります。

クエリに名前を付けて保存します。

データは以下のようになります。

NO 製品 数値
A-12345 A 1
A-12345 B 1
B-12345 A 1
B-12345 B 1
B-12345 C 1
B-12345 D 1
C-12345 B 1
C-12345 C 1


■(2)次に、クロス集計を作成します。

(1)のクエリを使ってクロス集計を作ります。

縦軸に「NO」横軸に「製品」にして、値は「数値」の合計にすると、以下のようになります。


NO 合計 数値 A B C D
A-12345 2 1 1
B-12345 4 1 1 1 1
C-12345 2 1 1


■(3)空白の所にゼロを入れます。

nz関数を使います。
デザインを表示します。

「数値」のフィールドを「数値1」にして
数値1: Nz(Sum([数値]),0)
集計を「演算」にします。

「合計 数値」の列は削除してもよいと思います。

以下のようになります。


NO A B C D
A-12345 1 1 0 0
B-12345 1 1 1 1
C-12345 0 1 1 0


■(4)このクロス集計で、「1」のときは「あり」それ以外の「0」のときは「なし」を表示します。

上のクロス集計で、数値1の項目を以下のようにします。

iif関数を使います。

数値1: IIf(Nz(Sum([数値]),0)=1,"あり","なし")

に変更します。

以下のようになります。

NO A B C D
A-12345 あり あり なし なし
B-12345 あり あり あり あり
C-12345 なし あり あり なし

完成です。

クロス集計で、こういうことも出来ます。


参考にしてください。



おすすめ教材


[↑一番上へ]
[マイクロソフトアクセス(Access)活用法(メールマガジン)(ホームへ)]
12:520502

<<全ページのメニューリストです>>

アクセス(Access)の概要

アクセス(Access)全体

テーブル

クエリ

フォーム

レポート

マクロ

VBA

SQL Server

システム開発

SQL Azure

その他