- ベストアンサー
アクセス 項目毎にデータを横に並べる方法
こんにちは。宜しくお願いします。 アクセスのデータで 商品/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 のように横に並べたいのですが、 このようにする方法はありますでしょうか? 最終的にエクセルファイルにするので、アクセスかエクセルで何か方法があれば教えて下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
クロス集計クエリでできます。 クエリの新規作成でウィザードが開いたらクロス集計クエリウィザードを選び順次進めます。 テーブルを選択し行見出しに商品を選択、列見出しにSEQを選択、集計する値があるフィールドで値段を選び集計方法は先頭にし集計値を表示するのチェックを外します。 このクエリを開けば出来ます。 または クエリの新規作成でデザインビューを開きSQLビューに切替えて下記のSQLをコピーすれば出来ます。(テーブル名や商品などのフィールド名は使うテーブル名に直してください。) TRANSFORM First(テーブル名.値段) AS 値段の先頭 SELECT テーブル名.商品 FROM テーブル名 GROUP BY テーブル名.商品 PIVOT テーブル名.SEQ; このクエリを使ってExcelにエクスポートすれば良いと思います。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
アクセスVBAで、商品名+SEQでソートし、DAOかADOで1レコードづつ読み、商品が同じ間はフィールドに横に並べて行けばできます。 エクセルに持ってきて関数でもできると思いますが、ちょっとややこしいと思います。 TRANSFORMやPIVOTを使うと、例えばa商品の存在しない値段の列(450円や520円)も設けられてしまうのでは。
お礼
ご回答ありがとうございました。VBAまで勉強していないので、私には難しいかもしれません。今、パソコンスクールでデータベースの勉強を始めたので、これからアクセスについても、もう一歩レベルアップしたいと思います。ありがとうございました。
- headgear
- ベストアンサー率23% (6/26)
このままテーブルをエクセルに出力して エクセルのピボットテーブルを使用してレイアウトを 行:商品 列:SEQ データ:値段 のようにすればできると思います。
補足
ありがとうございます。やってみたのですが、データの個数が表示されてしまいます。どこかの設定でしょうか?
お礼
ごありがとうございました。なんとか出来そうです。上記のかたの意見も参考にして、チェックしながら作業してみます。助かりました。