• 締切済み

エクセルでシート毎に分かれたデータをひとつのシートに統合する方法

宜しくお願いします。 ひとつのエクセルのブックの中で、シート毎に記入者を分け、記入しています。 大変便利なのですが、このシート毎に分かれたデータのまとめシートを作り、並び替え等出来るのでしょうか? 各シートのページ構成は全く同じで、中のデータだけが各人違うというものです。 セル参照でシートをまたぐなどして利用いましたが、そうすると各人のデータが増えた時に対応できません。 図解させて頂くと、 Aさんのシート Aさん  出張費   \25,000  6月1日 Aさん  交際費   \88,000  6月30日 Bさんのシート Bさん  取材費   \28,000  6月15日 Bさん  交通費   \2,300   7月1日 まとめシート Aさん  出張費   \25,000  6月1日 Bさん  取材費   \28,000  6月15日 Aさん  交際費   \88,000  6月30日 Bさん  交通費   \2,300   7月1日 という風に、日付けなどで並び替えができ、しかも各人のシートの記入行が増えても対応したいのです。 ややこしい質問かもしれませんが、どうぞ宜しくお願い致します。出来ればすごく助かります!

みんなの回答

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

エクセル「統合」機能の「統合元データとリンクする」を使えないか検討してみてください。値の変更には対応するようです。 行増減対応が難しいかもしれない。 「統合」はメニューの「データー統合」の統合です。 その際に、各入力者の各行に固有(重複無しユニーク)の番号をA列に振り合計されないようにします。 Sheet1 10001 2006/1/1 12 10002 2006/2/1 13 Sheet2 20001 2005/2/1 1 20002 2006/7/2 2 20003 2006/5/12 3 Sheet3のA2をポイントし データー統合  合計 Sheet1!$A$2:$C$4 Sheet2!$A$2:$C$4 左端列 ーー 結果 Sheet3のA2をポイントした場合 10001 2006/1/1 12 10002 2006/2/1 13 20001 2005/2/1 1 20002 2006/7/2 2 20003 2006/5/12 3 ーーー VBAでやっても、行増減即時反映というのは作り方が難しいと思う。

全文を見る
すると、全ての回答が全文表示されます。
  • tom0120
  • ベストアンサー率26% (367/1390)
回答No.5

No1です みなさん。説明されていますが、実際にやりたいことが、十分、正確に理解できませんので、こまかく、式がかけませんが、 みなさんのように、 「VBA(プログラム)」で、作成することが、簡単です。 または 「マクロ(自動処理)」 です。 http://kiyopon.sakura.ne.jp/sousa/index.html マクロの使い方は、こんな感じです。 私も、「マクロ」または「VBA(プログラム)」簡単だと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

各シート内のデータ位置がわからないので仮定で書きます。 各シートのA列に氏名、B列に費目、C列に金額とし、 各シートの1行目は項目でデータは2行目以下にあり、途中に空白行は無いものとします。 以上の前提でマクロで処理します。 簡単ですから以下の手順を試してみてください。 1.Altキー+F11キーを同時に押してVisualBasicEditorを呼び出します。 2.メニューから「挿入」、「標準モジュール」で出てきたコードウィンド(右側の白い広い部分)に以下のコード(Sub~End Sub)をコピペします。 Sub TEST() Set ns = Sheets.Add ns.Move After:=Sheets(Sheets.Count) For i = 1 To Sheets.Count - 1 With Sheets(i) .Range(.Range("A2"), .Range("A2").SpecialCells(xlLastCell)).Copy End With lr = ns.Cells(ns.Rows.Count, "B").End(xlUp).Row + 1 ns.Cells(lr, "A").PasteSpecial Application.CutCopyMode = False Next ns.Range(Range("A2"), Range("A2").SpecialCells(xlLastCell)).Sort _ Key1:=Range("D2"), Order1:=xlAscending, Key2:=Range("A2") _ , Order2:=xlAscending, Key3:=Range("C2"), Order3:=xlAscending End Sub 3.Alt+F11キーでワークシートへもどります. 4.メニューから、ツール、マクロ、マクロで出てきたマクロ名(TEST01)を選択して実行 これで新しいシートが追加され、そこに各シートのデータが日付順に張り付きますので、あとはお好きなように並べ替えて下さい。

全文を見る
すると、全ての回答が全文表示されます。
  • ipsum11
  • ベストアンサー率21% (55/251)
回答No.3

VBAでやるのはどうでしょう。 詳細は、ここで検索してみてください。 似たような回答が出てくるんじゃないですか。

全文を見る
すると、全ての回答が全文表示されます。
noname#123709
noname#123709
回答No.2

標準モジュール内に貼り付けて実行すればいけるはず・・・。 条件 1.集計するシートの名前が例では「集計」 2.集計するシートと各人の入力用シートだけのシート構成 3.集計するシートがオブジェクト名上で先頭 Sub 集計() Dim i As Integer Dim j As Integer Range("A2:C" & Range("C65536").End(xlUp).Row + 1).Clear For i = 2 To Sheets.Count For j = 2 To Sheets(i).Range("C65536").End(xlUp).Row Sheets(i).Rows(j).Copy Destination:=Sheets("集計").Rows(Range("C65536").End(xlUp).Row + 1) Next j Next i Range("C2").Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin End Sub

全文を見る
すると、全ての回答が全文表示されます。
  • tom0120
  • ベストアンサー率26% (367/1390)
回答No.1

新規にシートを追加して、この新規のシートで、集計。統合。なんでもできます。 セルを参照して計算をするとき、ほかのシートのセルを参照することができます。 「シート名」と 「セル番号」で 参照するセルを指定します。 シート1のセルE2は 「Sheet1!E2」です。

bikinin
質問者

補足

質問の書き方が悪かったようですね。 参照はシートをまたいで可能だと思うのですが、そうすると各人のシートの記入項目が増えた時に対応できないですよね? 各人の項目の数など関係なしに、記入したら記入しただけまとめシートにコピー(というか参照というか)され、それらが日付け毎に並び替わる、ということをしたいのです。 回答ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel 一つのシートに複数データをまとめる方法

    エクセルの関数を使用し、複数シートの特定の複数セルを一枚のシートに順に書き出すことは出来るのでしょうか? シートはすべて同じ書式で入力されており値だけが異なります。どういった状況かというと、 一つのブックの中に4月1日から9月30日までのデータが一日1シートごと、合計で183シートあります。 それぞれのシートに1日の中でそれぞれ4項目何時間あったかをまとめたデータがあるので同じブックで新たな別のシートに183日分のデータのまとめを表示されるようにしたいのですがどうすればいいでしょうか?(画像参照) マクロや関数に関する知識はなく、関数はSUNやAVERAGEくらいしか使ったことがありません。 似たような質問を調べてみたのですが調べ方が悪いのかなかなか理解には及びませんでした。 もし参考になるサイトや質問等も教えていただけると助かります。

  • エクセルのデータ抽出、別シートへの表記

    こんばんは。 とても簡単かもしれませんが、私の力ではどうしようもありませんのでどなたかお教えください。 sheet2には下記のようなデータがあります。    A       B       C       D 1         吉田     山田     佐藤   2 10月1日   A 勤    C 勤    B 勤 3 10月2日   C 勤    B 勤    A 勤 4    ・・・以下、データが続く・・・ sheet1に、以下のような結果を表記したいのです。    A       B       C       D 1          A 勤    B 勤    C 勤 2 10月1日    吉田     佐藤    山田  3 10月2日    佐藤     山田    吉田 4   ・・・以下、データが続く・・・ 過去の質問を見ても解決できませんでした・・。かなり素人です。お助けください。

  • EXCELで3つのシートのデータを統合したい

    2つの会社(A社,B社)が合併し、それぞれ別の基幹システム(旧システム)を使っていた為、 新たに全く別の基幹システム(新システム)を作成中なのですが、 A社、B社共通の取引先もあれば、それぞれ独自の取引先もあり、 取引先のデータを新システムに移行させる為、エクセルで一覧を作成中です。 1つのエクセルファイルに以下のような3つシートがあります。 シート(1) A社得意先コード 取引先名 郵便番号 住所         取引条件 ・・・・ 000001      (株)○○○ 111-1111 ○○県○○市・・・ 20日締め ・・・ 000002      (株)▲▲▲ ・・・・ シート(2) B社得意先コード  取引先名 郵便番号 住所         取引条件 ・・・・ 000001-00     (株)○○○ 111-1111 ○○県○○市・・・ 20日締め ・・・ 000002-00     (株)□□□ ・・・・ シート(3) A社得意先コード B社得意先コード 新システム得意先コード 000001      000001-00    000001-000 000002                 000002-000            000002-00    000003-000 シート(1)(2)のデータをシート(3)のコード対比表を基にシート(3)にくっつけたいのです。 A社得意先コード B社得意先コード 新システム得意先コード (1)取引先名 (1)郵便番号 (1)住所 (1)取引条件 ・・・・ (2)取引先名 (2)郵便番号 (2)住所 (2)取引条件 ・・・・ 000001      000001-00    000001-000 (株)○○○ 111-1111 ○○県○○市・・・ 20日締め ・・・ (株)○○○ 111-1111 ○○県○○市・・・ 20日締め ・・・ (ここ見づらくてすいません) シート(3)に統合より新たにシートを作成した方がやりやすければそれでもかまいません。 シート(1)(2)にそれぞれ約6000行、80項目くらいあり、VLOOKUPでちまちまやるのは作業ミスを起こしそうであまりやりたくありません。 EXCEL2007を使用しております。 何かいい方法がありましたらご教示願います。

  • 複数のシートのデータをひとつのシートに纏める

    EXCELにおいて、複数のシートのA列のデータをひとつのシートにまとめるにはどのようなマクロを組めばよいのでしょうか。 (内容) ”Cycle1”SheetのA列をコピー⇒”まとめ”SheetのA列に貼り付け ⇒”Cycle2”SheetのA列をコピー⇒”まとめ”SheetのB列に貼り付け ⇒”Cycle3”SheetのA列をコピー⇒”まとめ”SheetのC列に貼り付け ⇒”Cycle4”SheetのA列をコピー⇒”まとめ”SheetのD列に貼り付け ・・・。 現在は、上記の内容を手動でやっており、シート数が多い場合大変です。 よろしくお願いします。

  • Excelで、他のシートのデータを取り込む(統合する)には?

    下記のような「Sheet1」のデータ(学年)に、「Sheet2」のデータ(住所)を取り込もうとしています(データは架空例です)。Sheet1・2は、A列の内容が共通していますが、「Sheet2」のほうがデータ数が少ないです。LOOKUP関数を使えばいいのかと思いましたが、LOOKUPはデータ行数が完全一致している必要があるのか、うまくいきません。 要するに、「Sheet1」のA列に一致する文字列が「Sheet2」のA列にあった場合、その行のB列の内容を「Sheet1」のC列に入れる、というようにしたいのです。どのような手順で行えば可能でしょうか。よろしくお願いします。 --- ■Sheet1(学年データ) 1氏名(A)   学年(B) 2阿部一郎  1年 3伊藤二郎  2年 4上田三郎  3年 5江藤四郎  4年 ■Sheet2(住所データ) 1氏名(A)  住所(B) 2伊藤二郎 東京都○○区 3江藤四郎 大阪府○○市 ■ほしいデータ(Sheet1) 1氏名(A)   学年(B)   住所(C) 2阿部一郎  1年 3伊藤二郎  2年    東京都○○区 4上田三郎  3年 5江藤四郎  4年    大阪府○○市

  • エクセルのデータ抽出、別シートへの表記について

    こんばんは。 昨晩同じ質問をしたのですが、やはりN/Aエラーが出てしまいますのであらためてお願いいたします。(昨晩の質問は締め切ってしまいました) sheet2には下記のようなデータがあります。    A       B       C       D 1         吉田     山田     佐藤   2 10月1日   A 勤    C 勤    B 勤 3 10月2日   C 勤    B 勤    A 勤 4    ・・・以下、データが続く・・・ sheet1に、以下のような結果を表記したいのです。    A       B       C       D 1          A 勤    B 勤    C 勤 2 10月1日    吉田     佐藤    山田  3 10月2日    佐藤     山田    吉田 4   ・・・以下、データが続く・・・ 過去の質問を見ても解決できませんでした・・。かなり素人です。お助けください。

  • Excel 項目を統合、抽出して別シートをつくりたい

    連続投稿失礼いたします。似たような行き詰まりですが、分割して投稿します。 同じく Excel2003 の表 で 日付 収支 支払 収入 会社 項目A 1月1日 500 -100 +600 A社 X 1月1日 -200 -200 0 A社 Y 1月1日 300 0 +300 B社 Z 1月2日 100 0 +100 A社 X 1月2日 100 -500 +600 C社 X ~ 順次 積み立て入力 といった表から 1.別途ワークシートに 集計表を作成するにはどうすればいいでしょうか。 「日付で統合」 1月1日 600 -300 900 A、B X,Y,Z 1月2日 200 -500 +700 A、C X 「データ」-「集計」で エクスプローラのフォルダツリーのように展開、折りたたみはできるのですが、 そちらではなくて、別シートに抽出したい。 2.条件を指定して抽出するにはどうすればいいでしょうか 「A社」抽出 1月1日 500 -100 +600 A社 X 1月1日 -200 -200 0 A社 Y 1月2日 100 0 +100 A社 X 項目からA社を抽出することはできるが、そこから別ワークシートに 行を移植、積み重ねていく方法がまったくわかりません。 こちらもやはりマクロなり、スクリプトを作成しないといけないでしょうか。 おそらく初歩的なスキルだと思うのですが、どうかご教授いただければ幸いです。重ねてよろしくお願いいたします。

  • エクセルで複数シートからデータを統合したグラフを作る

    エクセル2000を使用しています。 複数のシートの表からデータを統合したグラフを作りたいのです。 たとえば シート1:A 12 B 5 C 7 シート2:A 10 B 5 C 4 というデータから シート3で2つの表を統合したグラフ(たとえば積層グラフ:A  12と10  B・・・)をつくりたい。 但し、表は1つには統合しません。 また、データはそれぞれで、合計ではありません。 データの範囲の指定の仕方がわかりません。(たぶんここでは?) 

  • エクセルで複数のシートにまたがるデータを一枚にまとめる方法

    よろしくお願いします。 エクセルのシートが3シートあり、 シート1、シート2には従業員の名前、出勤日、売上高が一覧になっています。シート1、2の違いは月別となっています。 簡単に表にすると a,b,cという従業員がいた場合、 A列 B列 C列 a 4/1 3000 b 4/1 2000 a 4/2 4000 c 4/2 5000 b 4/3 2000 といったイメージなのですが・・・ それを今はそれぞれ月ごとに 人別にオートフィルターで検索し シート3に貼り付け人別の売上表にまとめています。 この場合だとシート1が4月シート2が5月の売上表だった場合、 シート3にaさんの4月5月の売上を一覧表にしています。 例では3人ですが、実際は人数が20人ほどいて、月別のシートも今後増えていきます。 シート3に検索条件aと入力したら シート2、3からVLOOKで値が抽出できるかとも試してみたのですが、 VLOOKは一番最上段のデータのみを抽出してしまうので断念しました。 今後の作業の効率化を考えると少しでも省略化したことを行いたいのですが・・・ なにかよいアドバイスがありましたらいただけると幸いです。

  • エクセル データの統合

    データの統合で理解できない部分があります。 あるシートA、B、(それぞれに行に「店名」、列に「月」)があります。これを新しいシートに統合します。それをCとします。 ここで、統合するときに、データの統合で「上端行」「左端列」の欄にチェックボックスがありますが、これは、行、列の数がA、B異なるときにチェックするものなのでしょうか? では、もし行が、シートA,Bともそろっている?のであれば、「上端行に」チェックを入れる必要はないのでしょうか? また、とりあえず、「上端行」「左端行」にチェックを入れておいた方が無難なのでしょうか? ここのところが曖昧になっております。

専門家に質問してみよう