- ベストアンサー
エクセル:複数ブックをマクロを使い同一条件で集約・抽出したい
教えて下さい 複数のエクセルブックがあります(全て1フォルダーに集約してある) それぞれA列に日付、B列に金額が入っている 複数あるブックを指定する日付で次から次へと検索しその金額とファイル名を新しいブックに縦に全てコピー(抽出)したい ちなみに、必ず条件にあうデータがそれぞれのブックにあるとは限りません 無い場合もあります 無い場合は特に抽出する必要はありません ========================================================= 例:2007/12のデータを抽出したい ★抽出結果イメージ A B C 1 2007/12 200 ああああ.xls 2 2007/12 300 いいいい.xls 3 2007/12 100 うううう.xls 4 ・ ・ ・ 5 ・ ・ ・ 6 ・ ・ ・ 7 ・ ・ ・ ========================================================= このような場合、マクロでできますか?マクロは初心者です 教えてください よろしくお願いします 複数あるブックとは数的に60とかあります ちなみに現状はファイルを一つ一つ開き、指定日付を検索し見つけだし その行をコピーペーストしています たくさんブックがあるので、これをしていると目がチカチカしてきてしまいます この作業がマクロでできると、すごく感激なのですが・・・ どなたか、お知恵・お力をおかしくださいませ
- dog1cat2
- お礼率50% (2/4)
- オフィス系ソフト
- 回答数4
- ありがとう数3
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
私なら (1)1本のファイルに集約化します。 (A)集約して65536行以内ならエクセルに (B)それ以上だとアクセス)に (1)(A)の場合として マスターすべき課題 (2)フォルダの全ファイル(=ブック)を次々処理する方法 For Each・・ (3)ブックのシートが複数ある場合なら、各シートを次々処理する方法 For Each・・ (4)データの最下行を知る方法 (5)データを一本に結合する方法 ーー 結合したファイルができたら、 (7)日付列でソートする (8)日付が変わるまで金額を足しこみ、変わると直前までの合計と直前の日付をエクセルシートに書き出す。 合計をご破算して、今回行以下について、加算を繰り返す ーー アクセスの場合はデータさえ移してしまえば、後は簡単。 (SQL文の勉強) ーーー 以上コードを作るのは、本質問コーナーの趣旨に反し、私も根気と 時間と回答許容行数がない。 (2)(3)(4)などはWEB照会すれば沢山例が載っている。 (7)はマクロの記録で判る。
その他の回答 (3)
- merlionXX
- ベストアンサー率48% (1930/4007)
うまくいくかどうかわかりませんが、サンプルを書いてみました。 集約するファイルも集約されるファイルと同じフォルダーにあるとします。 集約するファイルのSheet1に転記されます。 Sub Test() Dim ans, fn, wb, x, i, n, sh, myPath ans = InputBox("検索月を2007/12のように入力します。") myPath = ThisWorkbook.Path & "\" fn = Dir(myPath & "*.xls") '選択したフォルダ内のExcelファイルを検索します Do Until fn = "" '全て検索し終えると、filename = Empty となるので、その間以下を実行します If fn <> ThisWorkbook.Name Then 'ファイルが自分以外なら Set wb = Workbooks.Open(myPath & fn) '選択したファイルを開きます For Each sh In wb.Worksheets '各シートごとに x = sh.Cells(Rows.Count, 1).End(xlUp).Row '最終行取得 For i = 1 To x '1行目から最終行まで以下を実行します If Cells(i, 1) = ans Then '入力と同じなら n = n + 1 With ThisWorkbook.Sheets("Sheet1") '転記 .Cells(n, 1) = sh.Cells(i, "A") .Cells(n, 2) = sh.Cells(i, "B") .Cells(n, 3) = wb.Name End With End If Next i Next sh wb.Close (False) '選択したファイルを閉じる End If fn = Dir() '次のファイルを検索 Set wb = Nothing Loop '繰り返し End Sub
- ka_na_de
- ベストアンサー率56% (162/286)
マクロでできますが、 自分で理解したりメンテナンスしたり 引継ぎしたりできないようであれば 辞めておいた方がよいでしょう。 それよりも、エクセルの フィルター操作やブック間のシートのコピーの方法 あるいは、データを簡単に一括選択する方法などを 調べた方が、あとあと応用が利きますよ。 冷たいようですが、ある程度自分でトライしてからでないと 丸投げして作ってもらっても長続きしないと思います。
お礼
早速の回答ありがとうございました みなさんの言うとおり、他力本願でした 申し訳ありませんでした 関数など使ったり、エクセルのほかの便利な機能をつかって 少しでもやりたいことに近づけるように頑張ります
- ASIMOV
- ベストアンサー率41% (982/2351)
>マクロでできますか? という質問でしたら、答えは「出来ます」です 「自分では出来ないので誰か作ってくれ」と言うことでしたら↓ http://faq.okwave.jp/EokpControl?&tid=607824&event=FE0006
関連するQ&A
- 複数ブックの特定セル列を新しいブックへ集約したい
お願い致します。 下記の操作をVBAで行いたいと思っています。 下記画像サンプルにあるように、複数ブック(同じ階層)に同じ配列のデータがあります。 こちらの、黄色く色付けしている(実際は色付けされていません)複数列を新たなブックの1シートへ抽出したいと考えています。 列のデータ量は、各ブックごとに違っていますので、11列のデータを基準に抽出できればと思います。 複数シートを1つのシートに纏めCSVで出力するとこまではVBAで出来たのですが、 複数ブックのシート指定列を抽出して1つの違うブックへ纏めることが出来ないでいます。 どうぞご教授よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- Excel マクロで複数ブックのデータを一つのブックにまとめたい
マクロ初心者です。 フォーマットの同じ複数のブックのセルをコピーし、 新しいブックに羅列したいのですが、 ブック数が多く、手作業では効率が悪く、困っています。 例えば・・・Book001.xls、Book002.xls、二つのブックがあります BooK001.xls ABCD 1 * 2 * 3 * 4 * Book002.xls ABCD 1 + 2 + 3 + 4 + これを、新しいブック(All.xls)に ABCD 1 *+ 2 *+ 3 *+ 4 *+ といったように、コピーしたいのですが、マクロ初心者のため、お手上げ状態です。 条件は、 ・フォルダにBookXXX.xls(XXXは001~の連続した番号)という名のブックが入っている ・BookXXX.xlsは全て同じフォーマット マクロの構文はもちろん、設定の仕方も教えていただけないでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 複数のブックのデータを一つのブックにまとめたい
http://t_shun.at.infoseek.co.jp/My_Page/Excel-VBA/vba_page1.htm ↑の 7. 指定したフォルダ内にあるExcelファイルを検索して開く の部分のマクロを利用して、集計.xlsというブックで、複数のブックを開くようにしましたが、そのブックを開いた時にそのブックのSheet2の中のデータのみコピーして、集計.xlsに貼り付けたいのですが、どのようにすればよいのか困っています。 指定したフォルダの中には、回答01.xls 回答02.xls ・・・と16個のブックがあります。順番に開いてコピーをするときに、どのようにブック名とシート名を指定すればよいのかわからず困っています。 何か参考になるものがあれば教えてください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルのマクロで悩んでます
はじめて投稿いたします。 現在、エクセル2000でマクロを組んでいるのですが、何日も悩んでそこから動けないので質問させていただきます。 やりたいことは、 (1)検索フォームの入力テキストに記載した数値を読んで検索ボタンを押すと、 (2)データブック.xls内の完全に一致した数値のセルの行をアクティブにして (3)その行のA列からO列の値をコピーして (4)入力ブック.xlsの入力シートのB4:B18に数値だけ貼り付け したいと考えています。 検索フォームは入力ブック.xls内で作成しています。 今のところ、(3)でA列の値を読んで、(4)でB4セルに貼りつけということはできているのですが、複数になるとできていません。 根気よく、同じプログラムを書くのが良いのでしょうか? かなり面倒なので、もっと簡単にかける方法があれば教えてください。
- 締切済み
- Windows XP
- エクセル 複数条件抽出について
エクセル2013を使用しています。 データシートより複数条件に当てはまるデータを 別のシートへ必要な項目のみ抽出する方法(関数orマクロ)をお教え下さい。 データシート:A列からU列まで様々なデータが入力されている。 抽出条件:H列とN列 抽出する項目:C列・I列・M列・O列・Q列・R列・S列 (抽出する項目は増える可能性有) 複数条件の抽出はフィルタオプションで出来たのですが、 抽出が必要な項目を指定する方法が分かりませんでした。 宜しくお願いします。
- 締切済み
- Excel(エクセル)
- Excelマクロ。複数ファイルから特定セルの抽出
Excel2003を使用しています。 あらかじめ特定のセルにデータを入力してそのデータを元に計算。 それらのBookは日付ごとに1つのBookとなっています。 今、各Book(ファイル?)から計算されたセルのデータを抽出し、 新しいBookにそれらのデータを順に並べたい。 具体的には A列:Book名(日付) B列:各々のBookの特定のセル C列:以下、同様 ・ ・ ということを考えています。 いろいろ調べてみると、マクロないしVBAを用いるとよさそうだ、 ということは分かったのですが、知識が乏しく難航しています。 なにか参考になるページないし、やり方とうアドバイスいただけますでしょうか。
- ベストアンサー
- オフィス系ソフト
- 複数のエクセルブックから特定シートの特定セル抽出
同一フォルダ内にある複数のExcelブックから特定シートの特定セル値を抽出して一覧表にまとめるExcel マクロ(VBA)を教えてください。 よく似ている質問、回答を読んだのですが、私のレベルではとても応用できず質問させていただきます。 【前提】 ・実行する端末のOSはWindows XP(SP3)、Excelは2003 ・対象フォルダはネットワーク接続フォルダ「\データ解析\データ」 この中に、複数のExcelブックがあります。 ・抽出したい対象は、各ブック内のシート(シート名はファイル名と同じ)の「BO6からBW16までの□の範囲」で統一されています。 【抽出一覧作成イメージ】 ・「集計.xls」ブックの「Sheet1」の2行目から抽出した結果を一覧表示する。 ・表示はA列に抽出元ブック名(=ファイル名)、B列に抽出元BO6セルの値。以降,C列・D列と 順に値を入れていきたい。 ・BO6~BW16までのセル値を「集計.xls」ブックの「Sheet1」に貼り付ける際には「値で貼り付ける」が望ましい。 というようなイメージです。 とても勝手なお願いではありますが、宜しくお願いいたします。
- ベストアンサー
- その他MS Office製品
- エクセル 抽出マクロについて
はじめまして。マクロ初心者です。 エクセルで抽出結果を別シートにコピーしたいのですが、 抽出条件が2列にわたっています。 A B C D 日付 タイトル 分類(あ) 分類(い) 11/22 テレビ 3 2 12/15 ラジオ 1 4 11/18 雑誌 2 5 …というような感じです。 例えば分類が「2」のものを抽出したい時に、 ●シート1のあるセルに「2」と入力してマクロを実行。 ↓ ●シート2に以下のように結果をコピーして表示。 A B 日付 タイトル 11/22 テレビ 11/18 雑誌 という具合にしたいのです。(C列、D列は表示しない) データはシート3に入力されていて、今後どんどん増えていく予定です。 エクセルは2007です。 本やホームページを参考に試行錯誤したのですが、うまくいきません…。 どなたかご回答よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 複数のエクセルファイルからデータ抽出とまとめる
集約一覧表と同じ場所にある複数のサブフォルダ全てにある全てのエクセルブックからデータを抽出して集約一覧表に表示させたいのですが、どのようにマクロを組めばいいのかわかりません。 抽出するデータは B1、B3、B7、B9 です。これを集約一覧の2行目から順番に各行に各エクセルブックの抽出データをB1をA列、B3をB列、B7をC列、B9をD列に表示させできることならE列に各ブックへのハイパーリンクを自動で貼るマクロを作りたいと思っています。 更に今後、集約一覧をフォルダごと移動することも考えて絶対パスを自動で取得できるようにもしたいです。 初心者の為、いろいろエクセルのガイドブックやいろんなサイトの似たような質問をたどってみましたがよく理解できず困っています。どなたかご教示いただけませんでしょうか?
- ベストアンサー
- その他MS Office製品
- 複数条件抽出をVBAで
excelの複数条件抽出をVBAでやりたいので教えてください。 エクセル2003で複数条件抽出をしたいと思っています。 dateのシートに、A列:日付、B列:名前、C列:金額があります。 それを1というシートに、日付と名前の2つの条件が合致している金額を抜き出したいと思っています。 抜き出すのは0601&AさんをA5セル~A20 0601&BさんのはB5~B20へ ということは可能でしょうか? もしよろしければ教えていただければ助かります。 'date'シート 日付 名前 金額 0601 Aさん 100円 0601 Aさん 120円 0601 Bさん 150円 シート'1' 0601&Aさん 0601&Bさん 100円 150円 120円 どの人がやってもボタン1つで実行できるようにしたいために、 VBA出できればと思っております。
- 締切済み
- オフィス系ソフト
お礼
みなさんありがとうございしました 1つのファイルに集約したり、関数をつかったりと マクロだけではなく、違う考え方もしてみたいと思います また、困ったら相談させていただきます もうちょっと私も今持っている知識をふりしぼって 頑張ってみたいと思います ありがとうございました