• ベストアンサー

エクセルで複数のブックに分かれているデータをまとめる方法

エクセルを使っています。 ・複数のシート(シートA、シートB、シートC)にあるデータを、一つのシートにまとめる良い方法を教えて下さい。 ・各シートのデータですが、1.列数は同じ、2.行数はばらばらです。 ・各シートにあるデータを、一つのシートに縦に長くコピーしたいです。 簡単なマクロならがんばって使いたいので、マクロのヒントでもかまいません。 どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

関数で処理する方法です。 各シートのA列には番号などの数値が入力されているものとします。 シート4のA1セルには次の式を入力し右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(ROW(A1)<=MATCH(10^10,Sheet1!$A:$A),IF(Sheet1!A1="","",Sheet1!A1),IF(ROW(A1)<=(MATCH(10^10,Sheet2!$A:$A)+MATCH(10^10,Sheet1!$A:$A)),IF(INDEX(Sheet2!$A:$Z,ROW(A1)-MATCH(10^10,Sheet1!$A:$A),COLUMN(A1))=0,"",INDEX(Sheet2!$A:$Z,ROW(A1)-MATCH(10^10,Sheet1!$A:$A),COLUMN(A1))),IF(ROW(A1)<=(MATCH(10^10,Sheet1!$A:$A)+MATCH(10^10,Sheet2!$A:$A)+MATCH(10^10,Sheet3!$A:$A)),IF(INDEX(Sheet3!$A:$Z,ROW(A1)-MATCH(10^10,Sheet1!$A:$A)-MATCH(10^10,Sheet2!$A:$A),COLUMN(A1))=0,"",INDEX(Sheet3!$A:$Z,ROW(A1)-MATCH(10^10,Sheet1!$A:$A)-MATCH(10^10,Sheet2!$A:$A),COLUMN(A1))),""))) このような関数を入力しておくことでマクロの場合とは違って、シートのデータが変更されても即座に変更されます。

teutisoba
質問者

お礼

ありがとうございます。 お返事遅くなりすみません。 試してみます。 本当にありがとうございます。

その他の回答 (2)

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

マクロは丸投げ質問だが、小さい、まとまりのものなどで書いておく。 標準モジュールに Sub test01() s = Array("Sheet1", "Sheet3", "Sheet4") '処理するシート名を配列に For i = 0 To UBound(s) '処理するシートの数だけ繰り返し d = Worksheets(s(i)).Range("A65536").End(xlUp).Row 'コピー元の最下行 MsgBox d d1 = Worksheets("Sheet2").Range("A65536").End(xlUp).Row '集約する(コピー先)シートのその時どき(貼り付け直前)の最下行 Worksheets(s(i)).Range("A2:E" & d).Copy Worksheets("Sheet2").Range("A" & d1 + 1) '貼り付け Next i End Sub しかしコピペすると動くかもしれないが、必要背景知識は山ほどある。こんなのを、まず学ばず、貼り付けて、出来ましたでは意味あるかな。 ーー 上記はコピー元のデータ行は、そろって第2行目から始まり データはA-D列にあると言う例です。 ーー 操作でコピーし貼り付けるほうが早いとおもう。

teutisoba
質問者

お礼

教えて下さいましてありがとうございます。 お礼遅くなりすみません。 やってみます。ありがとうございます。

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.1

参考になりそうなページを紹介します。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_data_matome.html

参考URL:
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_data_matome.html
teutisoba
質問者

お礼

お返事遅くなりすみません。(体調不良等でお返事できませんでした) 大変参考になります。

関連するQ&A

  • フォルダ内にある複数エクセルブックを一つにまとめたい

    マクロを使って複数ブックを一つにマージしたいです。 どなたか宜しくお願いします。 フォルダに16個のエクセルブックがあります。ブックは4つのシートでできています。シートの列数は共通なのですが、行数が異なります。 これを新しいブックにコピペでつなげていきたいのです。 すみませんがどなたか宜しくお願いします。

  • 複数のブックから特定データ群を新ブックにまとめたい

    こんにちは。 EXCEL2007について、ご教示ください。 EXCEL2007で、複数ブック内の特定シート上にある特定のデータ(複数) を特定ブックにまとめたいのですが、うまくできずに悩んでいます。 <やりたいこと>  ・参照元は特定フォルダ内にある全ファイルが対象(100程度)  ・ブック内の特定シートが対象(シート名は  ・コピー   (1) 元シートのA4~F4セル(セル結合されています)のデータを、     先シートのB2セルへコピー   (2) 元シートのG4~L4(セル結合)のデータを、先シートのC2セル     へコピー   (3) 元シートのG6~R6セルのデータを、先シートのE2セルへコピー  ・コピー2   次ブックを読み込み、1行下(B3、C3、E3)にコピーする。  ・コピー3   以降1行下にコピーし、ファイルが無くなるまで繰り返す。 以上ですが、マクロでできるように教えていただけないでしょうか。 よろしくお願いいたします。

  • 複数のブックを新しいブックのSheet1にまとめたい

    教えてください。 「A」「B」「C」「D」「E」「F」「G」 と言った名前のエクセルファイルがあります。 実際は約50個ありますが・・・。 それぞれ、Sheet1にのみ同じフォーマットですが、行数というか、件数が異なります。 新しいエクセルブックのSheet1にA」のデータの下に「B」のデータを貼り付けるという風に、「A」~「G」をまとめて一つのシートにまとめたいです。コピペではなくマクロでできるということを知りました。 毎月作業することになるので、マクロを組んでおきたいと思っています。 しかし、マクロは単純作業を記録して実行するというような基本的なことしかわかりません。 専門的用語ではなく、 (1)ツールをクリック (2)すべてのブックを開いておく (3)Visual Basicをクリック などというように、手順を教えていただけないでしょうか? よろしくお願いします。

  • 複数エクセルブックのそれぞれシートごとを1つに合体

    同項目で、それぞれ入力内容の違う複数のエクセルファイル「A店」「B店」「C店」「D店」・・・と複数店分あります。 各々のファイル内に、Aマスタ、Bマスタ、Cマスタと3シートあります。(これも同項目で入力内容が違う) これをAマスタ、Bマスタ、Cマスタというそれぞれのファイルに分けて、全店分を1つのシートに合体させたいのですが、かなりのファイル数があるので1つ1つのファイルを開き、コピー&ペーストすると、かなりの時間が必要になります。 マクロを利用した方法はございませんでしょうか? シートの内容詳細としては、 ・各シート1~9行目までは、シートの記入方法の説明がある。 ・10行目にヘッダー ・Aマスタ、Bマスタ、Cマスタすべてヘッダーは同じ項目。 そのため、11行目からのデータを、「A店」「B店」「C店」「D店」・・・全店分を合体させ1つのファイルにしたものを作成したいと思っています。 何かいいマクロがございましたら教えていただけますでしょうか。 マクロに関してあまり知識がございませんので、よろしくお願いいたします。

  • エクセル 複数シートのデータを1シートにまとめるマクロ

    エクセルの複数シートにデータがあります。同じ条件の人のデータだけをひとつのシートにまとめたいのですが、マクロを教えていただけますでしょうか。それとも、マクロ以外に良い方法がありますか? エクセル初心者なので、あたりまえのことも知らないかもしれません。。。  【データ】 ●シート1からシート20まで、同じ配列でデータがあります。 ●1行目は見出しです。2行目から1人づつのデータです。(多くても65行までと思っています。) ●A列に到達度、B列に出欠をいれました。 ●C列からM列が氏名、課題、その他のデータです。 ●リストはシート21にあります。  【こんな作業でしょうか?】 ●シート1から20で A列が「C」または「D」ならば その行のA列からM列をコピーして シート21のA列からM列に形式を値にして張り付ける ●シート1から20で B列が「欠」ならば その行のA列からM列をコピーしてシート21のA列からM列に形式を値にして張り付ける (っというのが私の乏しい知識で考えた方法なのですが、これでは不具合がでますか? もちろん、この方法じゃなくもっといいのがあれば、それをやってみたいです。)

  • Excel データの再配置

    Excelでデータを再配置するマクロの組み方を教えて下さい! 参考画像→ http://goo.gl/2nLWH 画像左側のように複数のデータセットが縦方向に配置されているシートで、左上が「セット○」セルから始まるデータセット単位で横方向に空白列を挟んで再配置したいと思っています。 画像はサンプルデータで、実際には行数は不定数、列数は4列のセットが複数個存在します。 宜しくお願いします。

  • エクセルで異なったフォームのデータを複数のシートから集計する方法を教えて。

    アクセスは使えません。 マクロの意味は解りますがプログラミングは出来ません。 エクセルの範囲で、複数シートのフォームがばらばらのデータからA品、B品、C品等々。。。と小計を集計シートに集計して総合計を出したいのです。 これが出来るならば、複数のフォルダの集計も出来るのでしょうか? エクセルで集計しているという人がいるのですが、そのような方法をテキストでも見つけることが出来ません。 私のソフトはウインドウズXP エクセル2003です。 宜しくお願いします。

  • 複数のブックのデーターをひとつにできますか?

    複数のブックにシートが1個づつ、中は同じ種類のタイトルデータ、記号やコメント文章、同じなんですが、これらのブックを新しいブックのシートに指定したブックの順番にデーターが、繋ぎ合わさせることって、できるのでしょうか? たとえば、50個づつのデータが入っているファイルが10個あるとすれば、 新しい11個めのエクセルファイルのシートにデータが500個となる。 こんなことって出来ますか? できるとすれば、マクロという方法ですか? 難しいでしょうか? マクロを書いてくれるようなサービスはないでしょうか? 有るとすれば、どのような単語で検索すれば、マクロを作ってくれるサイトが見つかるでしょうか?

  • Excel2013 複数ファイルシート別結合

    複数のエクセルファイルがありシート名A、B、C、D、Eとあります。 B8からG8まで題名がありB9からデータが入ってます。 B9からのデータ行数は毎回違います。それを同じシート名ごとに貼り付けたいです。 エクセル1エクセル2エクセル3 全シート名があるエクセル1のデータの下に貼り付けていきたいです。エクセル2とエクセル3を ファイルごとにあるシートは変わります。ないシートがあったりします。 それをマクロでやりたいです。よろしくお願いします。

  • エクセルで、複数ブックの表を効率的に集計する方法

    エクセルで、複数ブックの表を効率的に集計する方法を考えています。 定型の集計用シートがあり、Aさん、Bさん、Cさんの3人が記入するとします。 その結果できたシート(シートa、シートb、シートcとします)を以下の2つの方法で集計したいと考えています。 (1)串刺し。上記の様式と同じかたちの集計シートを作成し、各項目ごとに数字を合算。 (2)縦並びの一覧表。 シートaの項目、シートbの項目、シートcの項目が縦に並ぶ一覧表です。 ちなみに、上記3シートは、同一ブックではなく、異なるブック(ファイル)です。 この例のように、3つくらいのデータをまとめるのであれば、手作業でなんとでもなるのですが、実際は、数十~百数十のデータの集計を考えています。 こういう作業を効率的に行う「方法」か「アプリケーション」はありますでしょうか? ちなみに、「Excelシート差込アドイン」というアプリケーションを使って少し省力化できました。

専門家に質問してみよう