プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。宜しくお願いします。
アクセスのデータで

商品/SEQ/値段
a   1  500
a   2  600
a   3  700
b   1  200
c   1  450
c   2  520

というデータを
商品/値段1/値段2/値段3/・・・
a   500  600   700
b   700
c   450  520
のように横に並べたいのですが、
このようにする方法はありますでしょうか?
最終的にエクセルファイルにするので、アクセスかエクセルで何か方法があれば教えて下さい。

A 回答 (3件)

クロス集計クエリでできます。


クエリの新規作成でウィザードが開いたらクロス集計クエリウィザードを選び順次進めます。
テーブルを選択し行見出しに商品を選択、列見出しにSEQを選択、集計する値があるフィールドで値段を選び集計方法は先頭にし集計値を表示するのチェックを外します。
このクエリを開けば出来ます。
または
クエリの新規作成でデザインビューを開きSQLビューに切替えて下記のSQLをコピーすれば出来ます。(テーブル名や商品などのフィールド名は使うテーブル名に直してください。)

TRANSFORM First(テーブル名.値段) AS 値段の先頭
SELECT テーブル名.商品
FROM テーブル名
GROUP BY テーブル名.商品
PIVOT テーブル名.SEQ;

このクエリを使ってExcelにエクスポートすれば良いと思います。
    • good
    • 1
この回答へのお礼

ごありがとうございました。なんとか出来そうです。上記のかたの意見も参考にして、チェックしながら作業してみます。助かりました。

お礼日時:2006/02/15 08:44

アクセスVBAで、商品名+SEQでソートし、DAOかADOで1レコードづつ読み、商品が同じ間はフィールドに横に並べて行けばできます。


エクセルに持ってきて関数でもできると思いますが、ちょっとややこしいと思います。
TRANSFORMやPIVOTを使うと、例えばa商品の存在しない値段の列(450円や520円)も設けられてしまうのでは。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。VBAまで勉強していないので、私には難しいかもしれません。今、パソコンスクールでデータベースの勉強を始めたので、これからアクセスについても、もう一歩レベルアップしたいと思います。ありがとうございました。

お礼日時:2006/02/15 08:47

このままテーブルをエクセルに出力して


エクセルのピボットテーブルを使用してレイアウトを
行:商品
列:SEQ
データ:値段
のようにすればできると思います。

この回答への補足

ありがとうございます。やってみたのですが、データの個数が表示されてしまいます。どこかの設定でしょうか?

補足日時:2006/02/14 17:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A