OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

アクセス2000でのピボットテーブルに関して

  • すぐに回答を!
  • 質問No.212879
  • 閲覧数86
  • ありがとう数0
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 7% (3/38)

お尋ねしたいことがございます。
アクセス2000で集計をするためにフォームでエクセルのピボットテーブルを使おうと思いますが下記のようなことはどうやったらよいのでしょうか?

--------------------------------------------------
   - バック - その他 - 宝石 - 時計 -合計
--------------------------------------------------
A店 - 1.000 - 2.000  - 3.000 - 4.000- 
--------------------------------------------------
B店 - 2.000 - 3.000  - 4.000 - 5.000 -
--------------------------------------------------

現在このようになっているのですが
これでバック+その他+宝石+時計=合計はでるのですが
バック+時計=合計A
その他+宝石=合計Bもわかるようにしたいのですがどうしたらよろしいでしょうか。
また、並びのことですが現在は
バック-その他-宝石-時計-合計となっておりますが
バック-時計-宝石-その他-合計にしたいのですがそのようなことはできるのでしょうか。宜しくお願いします

理想の表
-------------------------------------------------
・・宝石-その他 - 合計 - 合計A - 合計B
-------------------------------------------------
・・¥ - ¥  - ¥  - ¥   -  ¥
-------------------------------------------------
・・¥ - ¥  - ¥  - ¥   -  ¥
-------------------------------------------------
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1
レベル10

ベストアンサー率 61% (75/121)

元データは A店 バック 100 B店 宝石  50 A店 宝石  200 ... となっていると想像して回答します。 私ならこのようなケースの場合、一時的なテーブルを使います。 ご質問にある、結果に相当するテーブルをあらかじめ作成しておき、アクション クエリや、VBAを使って処理すれば良いと思います。 気をつけなければいけないのは、Null値は足し算できませんので、Nullは&qu ...続きを読む
元データは
A店 バック 100
B店 宝石  50
A店 宝石  200
...
となっていると想像して回答します。

私ならこのようなケースの場合、一時的なテーブルを使います。
ご質問にある、結果に相当するテーブルをあらかじめ作成しておき、アクション
クエリや、VBAを使って処理すれば良いと思います。
気をつけなければいけないのは、Null値は足し算できませんので、Nullは"0"に
置き換える等の処理が必要です。

EXCELのピボットを使いたいとのことですが、私にはこの結果を導くのは難しい
と思います。
EXCELを使うのであれば、上記のようにあらかじめ必要となる項目のシートを用意
し、ソートた上で、IFSUM関数を駆使するか、VBAの様な気がします。


  • 回答No.2
レベル10

ベストアンサー率 56% (59/104)

こんにちは テーブルの構造が書いてありません 2パターンを考慮して、回答いたします 「商品」テーブルに 店名 - 商品 - 金額 A店 - 宝石 - 1000 B店 - 時計 - 2000 A店 - 宝石 - 3000 B店 - バック - 4000 ・・・ と格納されているとします で、これらを集計する為に使用するものは、選択クエリ(集計)を使用します 下記に ...続きを読む
こんにちは

テーブルの構造が書いてありません
2パターンを考慮して、回答いたします

「商品」テーブルに
店名 - 商品 - 金額
A店 - 宝石 - 1000
B店 - 時計 - 2000
A店 - 宝石 - 3000
B店 - バック - 4000
・・・
と格納されているとします

で、これらを集計する為に使用するものは、選択クエリ(集計)を使用します
下記にクエリのSQL文を記述します
SELECT 商品.店名,
Sum(IIf([商品名]="宝石",[金額],0)) AS 宝石合計,
Sum(IIf([商品名]="その他",[金額],0)) AS その他合計,
Sum(商品.金額) AS 合計,
Sum(IIf([商品名]="バック",[金額],IIf([商品名]="時計",[金額],0))) AS 合計A,
Sum(IIf([商品名]="その他",[金額],IIf([商品名]="宝石",[金額],0))) AS 合計B
FROM 商品
GROUP BY 商品.店名
ORDER BY 商品.店名;


もう一つのパターンが、
店名 - バック - その他 - 宝石 - 時計 - 合計
A店 - 1.000 - 2.000 - 3.000 - 4.000 - 
B店 - 2.000 - 3.000 - 4.000 - 5.000 -
・・・
と格納されている場合です

こちらの場合は簡単です。選択クエリを使用します
下記にクエリのSQL文を記述します
SELECT 商品TBL.店名, 商品TBL.宝石, 商品TBL.その他, 商品TBL.合計, [バック]+[時計] AS 合計A, [その他]+[宝石] AS 合計B
FROM 商品TBL
ORDER BY 商品TBL.店名;

これで懸念されている「並び」のことも解決できます

アクセスのピボットテーブルは使用せずに集計結果が算出できます
たぶん、SQL文とは何?と思われているかもしれませんが、クエリを勉強していれば必ず通るところです
頑張りましょう
補足コメント
log

お礼率 7% (3/38)

 *テーブルB    *テーブルA   
  店番←------販売店番号    
  店名       商品番号     
           販売金額    *テーブルC 
           商品番号----→商品番号
           詳細       商品名
           販売日      手数料

リレションシップをしております。
クエリA
店名-商品番号-販売金額-商品名-詳細-手数料金額-販売日


といったクエリをつくりました。
どこの画面でSQL文を記述すえばよろしいのでしょうか。
どこかわかりやすいHPはないでしょうか
お願いします。
投稿日時 - 2002-02-08 20:07:04
  • 回答No.3
レベル10

ベストアンサー率 56% (59/104)

御疲れ様です >どこの画面でSQL文を記述すえばよろしいのでしょうか。 そうですね、普段使うクエリの画面から移行できます。 クエリのデザインビューを表示し、メニューバーの「表示」⇒「SQLビュー」にて表示されます。 例えば、今回下記のようなクエリを作成されたようですが、 >クエリA >店名-商品番号-販売金額-商品名-詳細-手数料金額-販売日 このクエリをSQLビューで見ると下 ...続きを読む
御疲れ様です

>どこの画面でSQL文を記述すえばよろしいのでしょうか。
そうですね、普段使うクエリの画面から移行できます。
クエリのデザインビューを表示し、メニューバーの「表示」⇒「SQLビュー」にて表示されます。

例えば、今回下記のようなクエリを作成されたようですが、
>クエリA
>店名-商品番号-販売金額-商品名-詳細-手数料金額-販売日

このクエリをSQLビューで見ると下記のようになります。
SELECT テーブルB.店名, テーブルA.商品番号, テーブルA.販売金額, テーブルC.商品名, テーブルA.詳細, テーブルC.手数料, テーブルA.販売日
FROM (テーブルA LEFT JOIN テーブルB ON テーブルA.販売店番号 = テーブルB.店番) LEFT JOIN テーブルC ON テーブルA.商品番号 = テーブルC.商品番号;

このようにクエリとSQLは同等ということが分かりますね。
特殊なケースで無い限り、SQLビューはほとんど使用することなくてすみます。
(VBAを使用するときは頻繁に御世話になりますが...)


さて、本題の方ですがテーブルの構造が記されていますね、テーブル名が本当かどうか分かりませんが、掲題の内容を元にSQL文を記します。
SELECT テーブルB.店名, テーブルC.商品名,
Sum(IIf([商品名]="宝石",[販売金額],0)) AS 宝石合計,
Sum(IIf([商品名]="その他",[販売金額],0)) AS その他合計,
Sum(テーブルA.販売金額) AS 合計,
Sum(IIf([商品名]="バック",[販売金額],IIf([商品名]="時計",[販売金],0))) AS 合計A,
Sum(IIf([商品名]="その他",[販売金額],IIf([商品名]="宝石",[販売金額],0))) AS 合計B
FROM (テーブルC RIGHT JOIN テーブルA ON テーブルC.商品番号 = テーブルA.商品番号) LEFT JOIN テーブルB ON テーブルA.販売店番号 = テーブルB.店番
GROUP BY テーブルB.店名, テーブルC.商品名;

このSQL文をSQLビューにコピーして下さい。その後、デザインビューに変更してみて下さい。
クエリで作成した場合の様子が分かると思います。


>どこかわかりやすいHPはないでしょうか
目的のものと合致するか分からないですが、参考に...
http://homepage1.nifty.com/tsware/index.htm
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ