
☆以下のようなテーブルで、フィールド[ID]~[C]があり、文字および数字のデータが混在しています。
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
===========================================
(テーブル(1))
[ID] [A] [B] [C]
1 111 英語 10
2 222 英語 20
3 333 数学 30
4 111 国語 40
5 222 数学 50
6 333 国語 60
7 222 国語 70
8 333 英語 80
9 111 数学 90
===========================================
[課題] クロス集計クエリを作成する
(1) フィールド[A]を行見出しに設定、
フィールド[B]を列見出しに設定、
フィールド[C]を集計する項目に設定する。
(2) フィールド[C]の値を列ごとに平均を計算し、
行ごとに合計を計算する。
※ 列と行で、それぞれ集計した値を表示する
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
===========================================
[クロス集計結果]
合計 英語 国語 数学
111 140 10 40 90
222 140 20 70 50
333 170 80 60 30
---------------
平均 150 36 56 56
===========================================
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
上記のようなクロス集計クエリの結果を表示させたいのですが、
どうすればよろしいでしょうか?
また、クエリだけでは出来ない場合は、SQLで教えていただければ幸いでございます。
お手数お掛けしますが、何とぞ宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
クエリでやろうと思えば、
【テーブルからクロス集計】
Aに対する科目別の合計を出す
______合計__英語__国語__数学
111___140_____10____40____90
222___140____ 20____70____50
333___170_____80____60____30
【テーブルからクロス集計】
Bに対するAごとの合計を出す(軸を逆に考える)
______A’___合計__平均___111__222__333
英語___999___110___110/3___10___20___80
国語___999___170___170/3___40___70___60
数学___999___170___170/3___90___50___30
「A’」列はダミーです。
こうしておくと、「A’」「科目」「合計」か「平均」と3項目あるので、
同じく、クロス集計の作られ方を利用すると、
合計行のためのレコード
_______英語___国語____数学
999_____110____170_____170
または
平均行のためのレコード
_______英語___国語____数学
999___110/3__170/3___170/3
ができあがります。
【テーブルからクロス集計】に追加レコードとしてやれば、
フォームでは、同じレコードソースになります。
他のクエリ等で平均や合計を求めて、
母体のクエリ結果にレコード追加してやる、という手です。
レコード区分を設けて、明細は01、合計は02、平均は03とし並べると
おのずと後ろの方に合計、平均となります。
それか、
他のクエリ等で平均や合計を求めているのだから、
フッタ等でダイレクトにその値を取得するのがよくある例かと思います。
Dlookup関数等使うと、他テーブルのとあるフィールドの値を取得したりできます。
「フォームのフッタに合計を出す」
という観点でさがしてみてはどうでしょうか。
layy様
大変ご丁寧な回答をくださり ありがとうございました。
クロス集計を軸を逆に2回実行し、さらにクロス集計で合計と平均のレコードを作成して、追加クエリでレコードを追加して、再度クロス集計ということですね。
希望通りの結果を得ることができましたが、かなり大変な作業でした。
「フォームでフッタに合計を出す」方法は、1から勉強してからやってみます。
いろんなやり方があるのが分かり、大変勉強になりました(*^_^*)
No.2
- 回答日時:
クエリウィザードでクロス集計クエリを選択してください。
行見出し フィールド[A]
列見出し フィールド[B]
データ フィールド[C]
集計方法 合計
で
A 合計 英語 国語 数学
111 140 10 40 90
222 140 20 70 50
333 170 80 60 30
が出来ます。後はフォームなどで、クロス集計クエリの結果を元にして
フォームフッターで平均値を計算する式を設定すればお望み結果になります。
参照URL
http://www.microsoft.com/japan/office/previous/x …
もし、初めから(2)の平均値が出るようにしたい場合は、クロス集計クエリでなく
フォームでピボットテーブルを作成する形になります。
この回答への補足
ご回答いただき ありがとうございます。
クロス集計クエリまではできるのですが、その後の平均値が上手く表示できませんでした。できればクエリで完結できればと思っていたのですが、できないようですね。。。
「後はフォームなどで、クロス集計クエリの結果を元にして
フォームフッターで平均値を計算する式を設定すればお望み結果になります」とは、具体的にどのようにすればよろしいでしょうか?操作方法を教えていただけると助かります。
お手数お掛けしますが よろしくお願い致します。
No.1
- 回答日時:
同じクロス集計を考えて、
今ある、合計を出している縦軸と横軸を反対にすればできるのでは?。
合計 平均 111 222 333
英語 110 ? 10 20 80
国語 170 ? 40 70 60
数学 170 ? 90 50 30
また、この2つのパターンを用意しておき、
DLOOKUP関数を使うなりすえば相互の結果を取得できると思います。
(最終的に1つのテーブルであれば・・・。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access2003 クロス集計で集計値...
-
ピボットでの時間集計
-
差込印刷での全角表示について...
-
SQL文で パラメータが少なすぎ...
-
ACCESS2010 フィルタ後のエク...
-
アクセスのエラー「クエリには...
-
VBA 別シートの同じ日付の欄に...
-
Accessで、テーブルに入力した...
-
アクセスのクエリー作成
-
クロス集計クエリの結果をテー...
-
年度ごとの最大値
-
Excleピボットでデータのない部...
-
ACCESSでテーブルにあるチェッ...
-
ファイルメーカーのCase関数で
-
ACCESSの時間帯の抽出について
-
ACCESS 「パラメータの入力」...
-
EXCELの外部データ取得ができない
-
日付型のフィールドに空白を入...
-
Word差し込み印刷のハイフン(...
-
ACCESSのクエリで抽出条件「ま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ピボットでの時間集計
-
【アクセス】クエリで、行と列...
-
Accessのクロス集計から構成比...
-
Accessの更新クエリについて質...
-
エクセルのピボットで、集計値...
-
クロス集計の日付表示について
-
クロス集計クエリの合計 テキ...
-
Access2003 クロス集計で集計値...
-
Access2003 クロス集計クエリ...
-
ACCESS2000で複数のクエリをフ...
-
アクセス2013 クロス集計を教...
-
AccessでクロスABC分析表を作り...
-
アクセスの集計クエリの件
-
年齢層で集計したい
-
Access データの横展開
-
いつもお世話になっております ...
-
Access 構成比 クエリ集計
-
統計学 ファイ係数
-
access2010 クロス集計後の計算...
-
Excelで売上げデータの中の任意...
おすすめ情報