- ベストアンサー
大量のエクセルデータをアクセスで集計してエクセルに
こんにちは。 大量のデータをエクセルのピボットテーブルで集計していますが、データが多すぎるのか表示がおかしくなっています。 データだけをアクセスで集計して、エクセルに戻したい(エクセルで表示したい)のですが、なにかサンプル的なHPはないでしょうか。 希望は集計後エクセルにもどして、それをピボットテーブルのようにクリックして表示したり非表示にしたりしたいと考えています。 また、大量のデータを上手に集計する方法を紹介しているHPがあれば、教えてください。 よろしくお願いします。 エクセル:2010 / アクセス:2010
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
1.ACCESSでExcelデータをインポートして 2.クロス集計のクエリー作成(ウィザード機能利用) 3.クロス集計をEXCELへ コピペまたはエキスポート こんなものでいかがですか 定形業務ならフォームで1クリックで可能だろうと思いますが コーディング(VBA)しなければなりません また 列名の情報も必要です
その他の回答 (1)
- chayamati
- ベストアンサー率41% (260/624)
以下は市より助成を受けているデイハウスで利用しているものです 市へは毎月活動報告を報告書にエクセルファイルを付けて提出しています 活動RTN、仕訳帳生成RTN、当月分集計RTN利用実績データを生成しているルーチンです これをエクセルへエキスポートしてエクセルを起動させるまでのものです エキスポートするクエリは11件ありますが一つのBookの11のSheatにエキスポートされます エクセルで左にあるので 右のセルに式で加工します 加工した表のみにするためマクロで右のセル部分を コピーして形式を指定して貼り付けで値のみのとして エキスポートされた列を除去するまでをマクロにします ピボットテーブルは式ではないのでピボットテーブルの作成 過程をマクロにします。 ただし以前に作成した場所には作成できませんのでマクロの 最初にピボットテーブルの列を削除する操作を入れます マクロが完成すると式と左のエキスポート枠を残したまま テンプレート形式として保存します 運用は 1.ファイル名取得のためAccessでエキスポート 2.Excelで新規作成からテンプレートより読み込む 3.名前を付けて保存でAccessで作成されたファイル名 4.Accessでエキスポート 5.Excelでマクロ実行 ※ マクロ実行を1回で済ませるためマクロは1つにする Private Sub 利用実績変換_Click() Dim PX As String 活動RTN 開始日 = 月初日: 終了日 = 月末日 仕訳帳生成RTN 当月分集計RTN PX = Replace(CurrentProject.FullName, CurrentProject.Name, "") PX = PX & "市へ提出\H" & (Year(開始日) - 1988) & "年" PX = PX & Month(基準日) & "月分請求書.xls" DoCmd.SetWarnings False DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5, "X一般", PX DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5, "X生保", PX DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5, "X運水", PX DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5, "X運木", PX DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5, "X認知", PX DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5, "X口腔", PX DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5, "X予運水", PX DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5, "X予運木", PX DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5, "X予認知", PX DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5, "X予口腔", PX DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5, "X仕訳", PX MsgBox (PX & "にエキスポートしました。") DoCmd.SetWarnings True エクセル起動_Click End Sub Private Sub エクセル起動_Click() Dim oApp As Object Set oApp = CreateObject("Excel.Application") oApp.Visible = True 'Only XL 97 supports UserControl Property oApp.UserControl = True End Sub 疲れました。読みなおしののチェックはしていませんので誤字、 言い回しの誤などあるかと思いますがご容赦を また 不明な点はご遠慮なく Q してください
お礼
回答ありがとうございました。 大体の処理はイメージできました。 参考にさせていただきます。
お礼
お礼が遅くなりました。<m(__)m> 回答ありがとうございました。 クロス集計→エクセルへコピペ…までは想像できるのですが、 エクセルのピボットテーブル機能が使えたら…と思い、具体的なサンプルを求めて質問させていただきました。 エクセルvbaはどうにか使えるので、アクセスとの連動をワンクリックでできるよう頑張ってみます。 またアドバイスよろしくお願いします。