• ベストアンサー

データの集計をして、Excelのブックに保存する処理

papayukaの回答

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

たぶん全てExcel-VBAで可能だと思います。 但し、相当のスキルを要求される処理で、道のりは険しいと思います。 取り合えずブック分けのサンプルを。 以下の条件で、サンプルブックを用意して試してみてください。  1)新規ブックの一番左のシートのセル A1からタイトル行を含むデータがある  2)B列の所属コードでソートされている  3)上記のブックはマクロ実行前に名前を付けて保存されている。 下記を実行すると上記ブックと同じフォルダ内にB列毎のデータを保存します。 以上、参考まで。 '****************************************************************** Sub BookSeparate() Dim myList(), wb As Workbook, tws As Worksheet, i As Integer On Error Resume Next Set tws = ThisWorkbook.Worksheets(1) If Not tws.AutoFilterMode Then   tws.Range("A1").CurrentRegion.AutoFilter End If Call ListCreate(tws, myList, 2) For i = 0 To UBound(myList)  Set wb = Workbooks.Add(xlWBATWorksheet)  wb.Worksheets(1).Name = myList(i)  tws.Range("A1").CurrentRegion.AutoFilter _    field:=2, Criteria1:=myList(i)  tws.Range("A1").CurrentRegion.Copy _    Destination:=wb.Worksheets(1).Range("A1")  wb.SaveAs Filename:=ThisWorkbook.Path & "\" & myList(i) & ".xls"  wb.Close Next i tws.Range("A1").AutoFilter End Sub '****************************************************************** Private Sub ListCreate(ws As Worksheet, rList, myCol As Integer) Dim myLow As Long, cnt As Long myLow = 2: cnt = 0 Do While ws.Cells(myLow, myCol).Value <> ""   If ws.Cells(myLow, myCol).Value <> _    ws.Cells(myLow, myCol).Offset(-1, 0).Value Then    ReDim Preserve rList(cnt)    rList(cnt) = ws.Cells(myLow, myCol).Value    cnt = cnt + 1   End If   myLow = myLow + 1 Loop End Sub

関連するQ&A

  • エクセルについて教えてください。

    エクセルについて教えてください。毎月、社員の残業時間を、各支店に分けてグラフにして提出するという作業があります。毎月作成するのが手間なので、シート1にデータを貼り付けるとシート2に自動的にデータが入って、グラフも完成するようにしたいのですがどのような方法がありますか?ピボットテーブル以外でなにかいいいい方法があれば教えてください。わかりずらい説明で申し訳ありません。よろしくお願いします。 シート1     1         2         3         4         5        6 1 社員番号     社員名     残業時間   所属部署名   所属支店名   内勤OR外勤 シート2     1        2        3 1           内勤      外勤   2  ○○支店   残業時間  残業時間 シート3 残業時間をまとめたグラフ

  • 【エクセルVBAマクロ】データ集計処理について

    お世話になります。 以下のような形式のデータファイルがあります。 勤怠を集計するデータファイルです。 (出勤=1、欠勤=2) 左から:支店、名前、1日、2日、3日  北海道 山田 1 1 2     田中 2 2 2 東京  山本 1 1 1     西村 1 2 2 大阪  ・・・     ・・・  という感じで、これを集計し支店毎に日にちごとに出勤何名、欠勤何名、合計何名 というデータを作りたいのですが、マクロの組み方を教えていただけますでしょうか? 現在はこれを手作業でおこなっており、時間がかかる、入力ミスが出るといった問題がおこっております。 何卒、宜しくお願い致します。

  • エクセルのファイル別データの集計について

    初心者なのでよろしくお願いします。 次のようなケースでおたずねします。 会社の本部で作成したエクセルファイルの「売り上げ表」フォームを各支店(約100店舗)にインターネットのメールに添付して送信します。 各支店はこのファイルにデータを入力後、インターネットのメールに添付して本部に送信します。 この送付された各添付ファイルのデータを本部で当初のフォームに集計したいのですが、なるべく効率的にするにはどうしたらよいですか? エクセル2000を使ってます。 よろしくお願いします。

  • エクセルデーター集計について

    現在1月から12月まで各月毎のシートと集計表があります。 そのシート内の集計表は  A  ・   B     ・ C ・ D ・ E ・・・・・・・・BB 1担当・顧客ナンバー・日付・苗字・名前・・・・・・・・ 2田中 3佐藤 4小川 5田中 6田中 7佐藤 8井上 ・ 150位まで(行については月により変動あり) と各列と行にデータが入力されてます。 担当者は12名で元になるデータ表には活動順に担当者名が入力されてます。 やりたい事は (1)各担当別の月別集計と年間集計シート作成 月毎にシートを作成でなく、あくまで担当者毎の月毎集計と12か月の年間合計転記を同一シートにする事は可能でしょうか。(個人成績表の為) またその時担当別にシート作成が出来るとうれしいです。 (2)全担当者の月集計一覧シート 一つのシートに全担当者の月別集計(1月から12月)を一覧にしたいのですが、各担当者の月別合計欄を転記の認識なのですが、他にいい方法もありますか? (3)全担当者の年間集計一覧シート (2)の合計を転記の認識です。他にありますか? 以上3点を作成したいと思ってます。 (1)が出来れば何とかなるような気はしますが、どなたかご教授お願い致します。 項目はA~BBまで横一列にあり 担当者の入力も横一列なのでvlookupでも考えましたが、マクロで何とか出来るなら挑戦してみようかと思ってます。 集計表自体他のブックからのリンクやなんやらで20M位ファイルサイズがあり、今回の(1)(2)(3)は新規ブックに作成したいと思います。

  • excelでブックを開くのが遅い

    初めて利用させて頂きます。 質問は下記となります。 エクセルにてマクロを使用したブック、 使用していないブック。 それぞれ最終的に2mb程の容量となり レイアウトに差はありません。 前者は月初から月末までの各日毎に2シートずつ作成していきます。 後者は当月日数×2シートがすでに作成されている状態です。 後者はブックを開く時間は3秒前後に対し 前者はブックを開く時間は20秒前後です。 前者のマクロはブックを開く際には全く動きません。 なぜ前者は開くのに時間がかかるのか わかりません。 時間が掛かる理由と対象法について、 教えていただけると幸いです。

  • Excelのシート間で数式のコピーができません

    Excel2007でシート間でコピーをしたいのですが 数式のコピーができません。 数式がコピーされず0や#REFになってしまうときと 何度かやっているとなぜか運良くできることがたまにあります。 各シートには各月の出退勤のタイムシートを元に カウントした出勤日数、合計勤務時間、平均勤務時間があり、 1年間分をひとつのシートにまとめたいと思っているのですが なかなかうまくいきません。 まとめたものでグラフを作成したいのですが 良い方法はありますでしょうか。

  • Excel マクロ データ集計

    Excel マクロ データ集計 Sheet1にある情報を集計して、集計結果をSheet2に貼り付けるマクロを考えています。 「Sheet1」のA列、B列、C列が合致した場合に同じ商品とみなします。 C列で「新鮮」とついている場合には、商品名で一致させて、Sheet2の 同じ商品名のところに記載します。 「Sheet2」に貼り付ける際、「Sheet1」のA列は不要です。 どのようなマクロを作成すればよろしいでしょうか。 画像を添付します。 「Sheet2」は完成形です。

  • Excelの保存サイズ

    Excel2003で作成したファイルサイズが大きくなったので(1,689KB) データの古い部分を消去したのですが サイズが小さくならず 試しに データの入っているセルやグラフを全部削除したのですが それでも1,289KB有り 理由が解りません 作成したファイル内容は シートが1個 セルに数値を平均4桁入力 423行 A~BD(56列)使用 グラフ5個 マクロを組込みしています 1:サイズを小さくする為にセルのデーターを消去するだけでは駄目なのでしょうか? 2:何処かに隠されたデータが有る気がするのですが それを消去出来ないでしょうか? 兎に角サイズが大きくなったファイルを 作り直さないで一部を消去して サイズを小さくする方法を御存知の方のアドバイスをお願い致します  

  • Excel エクセル

    Excel エクセル [シート1]の、D列に複数の支店名(東京支店、名古屋支店・・・)が入力されています。 同一の支店名も複数あります。 1.支店名のシートを自動的に作成 ex.[東京支店]シート、[名古屋支店]シート ・・・ 2.[シート1]D列の同一支店名の行を該当のシートに書き込み と言う様な事は可能でしょうか?。 マクロ初心者で調べられる限りでトライはしてみましたが、どうしても出来ません。 ご教授のほど よろしくお願いいたします。 ex. [シート1] 列  A  B   C   D   ああ  い   う   東京支店   か   きき  くく  名古屋支店   ささ  し   すす  名古屋支店   た   ちち  つつ  東京支店      ↓ [東京支店]シート ああ い う 東京支店 た ちち つつ 東京支店 [名古屋支店]シート か きき くく 名古屋支店 ささ し すす 名古屋支店 毎月作成されるデータをエクセルを知らない初心者が対応するため、 どうしてもマクロで作成したボタンを押すだけで自動的に処理できるようにしたいのです。

  • エクセルで毎日配信されるデータを抽出したい

    こんにちは。 毎日サイトからメールでエクセルデータが添付され送られてくる相場一覧について相談させてください。 【送られてくるデータ】 エクセル シート:5枚 【現在の作業】 このシートのうちの4枚の一部分に欲しいものの相場が載っているので、それをコピーして、 別に作ったカレンダーに貼り付け、折れ線グラフにしています。 【改善したいこと】 ○送られてくるエクセルデータの中から 必要なデータから必要な部分だけを自動で抽出したい ○抽出データをカレンダーに毎日更新して載せたい ○そのデータを折れ線グラフで表したい 今、行っている作業をマクロで記録して、 マクロ起動用のファイルを作成し、届いたデータを開いてマクロを起動させようとしたのですが、 うまくできませんでした。 このような場合、どのようにして作業するのがいいのでしょうか? 毎日の作業なので、あまり手間と時間をかけたくないのですが、 マクロは記録位しか経験がなく、困っています。 どなたかご教示お願いいたします。