• ベストアンサー

アクセス 項目毎にデータを横に並べる方法

こんにちは。宜しくお願いします。 アクセスのデータで 商品/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 のように横に並べたいのですが、 このようにする方法はありますでしょうか? 最終的にエクセルファイルにするので、アクセスかエクセルで何か方法があれば教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

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

kapakapa
質問者

お礼

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

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

アクセスVBAで、商品名+SEQでソートし、DAOかADOで1レコードづつ読み、商品が同じ間はフィールドに横に並べて行けばできます。 エクセルに持ってきて関数でもできると思いますが、ちょっとややこしいと思います。 TRANSFORMやPIVOTを使うと、例えばa商品の存在しない値段の列(450円や520円)も設けられてしまうのでは。

kapakapa
質問者

お礼

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

  • headgear
  • ベストアンサー率23% (6/26)
回答No.1

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

kapakapa
質問者

補足

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

関連するQ&A