• ベストアンサー

Excel データの取り纏め

Excelファイルが10個あります。 それぞれシートが1~20シート。 行の項目は順に「No」「日付」「ID」「名前」・・・ 入力行はシートによりマチマチです。(1件~100件くらい) これを一括で1シートにまとめたいのですが、簡単な方法を教えてください。 また、毎週繰り返しの作業で前回まとめたデータは残し、次の行から追加したいです。 Excel詳しい方、アドバイスお願いします。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.7

 遅くなりましたが次の様な方法は如何でしょうか?  まず、元データとなるExcelファイルだけを纏めた1つのフォルダーを作っておきます。(データが必要なだけですので、必ずしも大元のファイルである必要は無く、コピーしたファイルであっても構いせん)  次に、下記のVBAマクロを起動させますと、ファイルを選択するためのダイアログボックスが開きますから、そこで「元データファイルをまとめたフォルダー」を開き、関係の無いファイルが紛れ込んでいない事を確認してから、元データとなるファイルの内の1つを選択し、[開く]ボタンをクリックして下さい。  すると、選択したフォルダー内にある全てのExcelファイルの全シート(但し、VBAの構文内で指定されている「元データから除外するシート名」のシートは除く)の、A列~L列の2行目以下のデータが、「一括」というシート名のシートに転記され、一括シートの既存のデータに付け加えられた上で、重複するデータが削除された後、「日付」、「地域」、「ID」に従って昇順で並べ替えられ、A列の「No」欄には、並べ替えられた後の順番で連番が割り振られます。  尚、「一括」というシート名のシートが存在していなかった場合には、新たに一括シートが自動的に作成されます。  それから、もし処理の途中でエラーが発生するとか、ESCキーが押されるなどといった理由により処理が中断する様な事がありますと、処理の途中でコピーしたデータと、マクロを起動させる前からあったデータが混在してしまう事になりますので、区別をつけやすくするためにA列のNoが「●」印付きの赤文字で表示される様になっています。  これは処理が最後まで正常に行われれば、元の表示に戻る様になっています。  又、万が一、処理が途中で中断される様な事があった場合には、「●」印付きの赤文字になっていない行を削除してしまえば、元のデータだけを残す事が出来る訳です。  尚、「●」印付きの赤文字表示を元に戻す際には、該当するセルの書式設定の表示形式を[標準]等に戻して下さい。  Sub QNo8981909_Excel_データの取り纏め() Dim myPath As String' 指定フォルダー名 Dim myFileName As String' 検出したファイル名 Dim myBook(1) As Workbook ' ワークブックの一時格納用の変数 Dim myRange As Range' セル範囲の一時格納用の変数 Dim FirstRow As Long' 項目欄として使用している行 Dim LeftColumn As String' コピー対象とする表の中の左端の列 Dim RightColumn As String ' コピー対象とする表の中の右端の列 Dim SortRefColumn(6) As String ' 並べ替えの基準となるデータが入力されている列 Dim oldNumberFormat As String ' No列の元の表示形式を格納するための変数 Dim oldRows As Long ' No列において最初にデータが入力されていた行数 Dim i As Long, j As Long' 繰り返し処理用の変数 Dim myTemp As Variant ' データの一時格納用変数 Dim myImfo As String' 表示する文字列の一部の格納用変数 Dim myBox As Variant' MsgBoxやInputBoxの返答を一時格納するための変数 Dim myOk As Boolean ' 判定結果の一時格納用変数 Dim oldStatusBar As Variant ' ステータスバーの初期表示のデータを保存しておくための変数 Dim PasteSheetName As String' 貼り付け先として使用するシートのシート名 Dim PasteSheet As Worksheet ' 貼り付け先として使用するシート Dim ExcludeSheet(4) As String 'コピー元として使用しないシートのシート名 PasteSheetName = "一括" ' 貼り付け先として使用するシートのシート名 FirstRow = 1 ' 項目欄として使用している行 LeftColumn = "A" ' コピー対象とする表の中の左端の列 RightColumn = "G" ' コピー対象とする表の中の右端の列 SortRefColumn(0) = "B" ' 並べ替えの際の基準となるデータが入力されている列その1:「日付」が入力されている列 SortRefColumn(1) = "F" ' 並べ替えの際の基準となるデータが入力されている列その2:「地域」が入力されている列 SortRefColumn(2) = "G" ' 並べ替えの際の基準となるデータが入力されている列その3:「店舗名」が入力されている列 SortRefColumn(3) = "C" ' 並べ替えの際の基準となるデータが入力されている列その4:「ID」が入力されている列 ExcludeSheet(1) = "雛型" 'コピー元として使用しないシートのシート名 その1 ExcludeSheet(2) = "コピー元として使用しないシートのシート名 その2" 'コピー元として使用しないシートのシート名 その2 ExcludeSheet(3) = "コピー元として使用しないシートのシート名 その3" 'コピー元として使用しないシートのシート名 その3 On Error GoTo label_Err ' 何かエラーが発生した場合はlabel_Errへ進む With Application oldStatusBar = .DisplayStatusBar ' ステータスバーの初期表示のデータを取得 .DisplayStatusBar = True ' ステータスバーの表示ON .CommandBars("Status Bar").Visible = True ' ステータスバーの表示ON .EnableCancelKey = xlErrorHandler ' Escキーでエラートラップする .ScreenUpdating = False ' 画面描画停止 .Calculation = xlCalculationManual ' 自動計算を停止 End With 'PasteSheetNameと同名のSheetが存在しなかった場合には、貼り付け先のシートを新たに作成 If IsError(Evaluate("ROW('" & PasteSheetName & "'!A1)")) Then Sheets.Add After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = PasteSheetName myTemp = Array("No", "日付", "ID", "名前", "金額", "地域", "店舗名") With Sheets(PasteSheetName).Range(LeftColumn & FirstRow) For i = 0 To 6 With .Offset(0, i) .Value = myTemp(i) .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With Next i .Resize(2, Columns(LeftColumn & ":" & RightColumn).Columns.Count).Borders.LineStyle = True End With myTemp = Empty End If Set PasteSheet = Sheets(PasteSheetName) ' 貼り付け先として使用するシート ※ まだ途中なのですが、このサイトの回答欄の文字数制限の限度を超えてしまうため、残りは又後で投稿させて頂きます。

その他の回答 (8)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.9

 回答No.8の続きです。 With .Range(LeftColumn & .Range(SortRefColumn(0) & Rows.Count).End(xlUp).Row + 1) _ .Resize(myRange.Rows.Count, myRange.Columns.Count) .PasteSpecial Paste:=xlPasteFormats ' 新たなデータの転記先となるセル範囲に書式のみ貼り付け Application.CutCopyMode = False ' コピーモード解除 myRange.Copy ' 元データのセル範囲をコピー .PasteSpecial Paste:=xlPasteValuesAndNumberFormats ' 新たなデータの転記先となるセル範囲に、元データのセル範囲の値と表示形式のみを貼り付け Application.CutCopyMode = False ' コピーモード解除 End With End With End If Next i myBook(0).Close SaveChanges:=False ' 開いたブックをClose Set myBook(0) = Nothing End If myFileName = Dir ' 次のファイル名を参照 Loop Application.StatusBar = "データを統合中...." ' ステータスバーに「統合中」である事を表示 ' 全てのデータが格納されたシートにおける データが存在しているセル範囲を指定 With ThisWorkbook.Sheets(PasteSheetName) Set myRange = .Range(LeftColumn & FirstRow & ":" & RightColumn _ & .Range(SortRefColumn(0) & Rows.Count).End(xlUp).Row) ' ひとまとめにされたデータの内、No.以外の全ての項目が重複しているものを削除 myRange.RemoveDuplicates Columns:=Array(2, 3, 4, 5, 6, 7), Header:=xlYes ' 既存のNoの表示形式を元に戻す If oldRows > 0 Then _ ThisWorkbook.Sheets(PasteSheetName).Range(LeftColumn & FirstRow + 1) _ .Resize(oldRows, 1).NumberFormatLocal = oldNumberFormat ' ひとまとめにされたデータの並べ替え With .Sort With .SortFields .Clear ' 並べ替え範囲の初期化 For i = 0 To UBound(SortRefColumn) ' 設定されている並べ替えの基準の数だけ繰り返し If Not IsError(Evaluate("COLUMN(" & SortRefColumn(i) & "1)")) Then ' 並べ替えの基準となる列番号が設定されているか否かを判定 .Add Key:=Range(SortRefColumn(i) & FirstRow + 1), Order:=xlAscending ' 設定されている列を昇順で並べ替えを行う際の基準列として指定 End If Next i End With .SetRange myRange ' 並べ替えを行うセル範囲を指定 .Header = xlYes ' 指定されたセル範囲の中で1番上の行をタイトル行と見做して、並べ替えの対象から除外する .MatchCase = False ' 大文字と小文字を区別しない .Apply End With myTemp = Empty myTemp = .Range(SortRefColumn(0) & .Rows.Count).End(xlUp).Row ' 最終行の行番号取得 myTemp = 1 / 0 ' 空欄の行の削除 .Range(LeftColumn & myTemp + 1 & ":" & RightColumn & FirstRow + myRange.Rows.Count - 1).Delete Shift:=xlUp ' ↓ 連番を入れる With .Range(LeftColumn & FirstRow + 1 & ":" & LeftColumn & myTemp) .Formula = "=ROW()-" & FirstRow .Value = .Value End With ' ↑ 連番を入れる .Columns(LeftColumn & ":" & RightColumn).Columns.AutoFit ' 列幅の自動調整 End With Application.Cursor = xlDefault ' マウスポインターの設定を標準のものに戻す Application.ScreenUpdating = True ' 画面描画再開 ' ステータスバーを復帰 Application.StatusBar = False Application.DisplayStatusBar = oldStatusBar MsgBox "処理が終了しました", vbInformation, "終了" GoTo labelE label_Err: ' Escキー脱出用 兼 エラー時処理用行ラベル label2: If Err = 18 Or Err = 91 Or Err = 1004 Then If MsgBox(Replace(Replace(myBook(0) Is Nothing, False _ , "中断キーが押"), True, "ファイルの読み込みが中断") _ & "されました。" & vbCrLf & "処理を中止し、マクロを終了します。" _ & vbCrLf & vbCrLf & "※ [いいえ]ボタンは無効です。" _ , vbExclamation + vbYesNo, "中断") <> vbYes Then GoTo label2 End If ' MsgBox() = vbYes Else MsgBox "実行時エラー '" & Err.Number & "' が発生しました。" _ & vbCrLf & Err.Description & vbCrLf & vbCrLf & _ "そのため処理を実行する事が出来ませんので、マクロを終了致します。" _ , vbExclamation, "エラー" End If ' If Err = 18 Or Err = 91 Or Err = 1004 ' 開いているExcelBookの中にマクロによって開かれたものがある場合には閉じる If Not myBook(0) Is Nothing Then For Each myBook(1) In Workbooks If myBook(1).Name = myBook(0).Name Then myBook(0).Close SaveChanges:=False ' 開いたブックをClose Next myBook(1) End If Set myBook(1) = Nothing ThisWorkbook.Activate Sheets("一括").Select Application.ScreenUpdating = True MsgBox "処理が途中で中断されました。" & vbCrLf & PasteSheetName & _ "シートには、処理の途中で新たに貼り付けられた未統合のデータが残っています。" & vbCrLf & _ "No.が「●」印付きの赤文字で表示されている行が、処理開始以前からあったデータです。" _ & vbCrLf & "No.の表示を元に戻すには、セルの書式設定の表示形式を[標準]に設定して下さい。" _ , vbInformation, "Information" labelE: ' 処理終了 On Error GoTo 0 ' エラーの際の動作を標準の設定に戻す ' ステータスバーを復帰 With Application .StatusBar = Empty .StatusBar = False .DisplayStatusBar = oldStatusBar .EnableEvents = True ' イベント動作再開 .EnableCancelKey = xlInterrupt ' Escキー動作を標準の設定に戻す .Cursor = xlDefault ' マウスポインターの設定を標準のものに戻す .Calculation = xlCalculationAutomatic ' 自動計算モードに切り替え .ScreenUpdating = True ' 画面描画再開 End With End Sub  以上です。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.8

 回答No.7の続きです。 label1: MsgBox "このマクロは選択したフォルダー内に存在する全てのExcelファイルに記録されているデータを、" _ & vbCrLf & """" & ThisWorkbook.Name & """ファイルの""" & PasteSheetName & _ """シート上に1つにまとめてコピーするという処理を行います。" & vbCrLf & vbCrLf & _ "下の[OK]ボタンを押すと現れる" & vbCrLf & _ "「フォルダーを開き、元データファイルの内の1つを選択して下さい」" & vbCrLf & _ "というタイトルのダイアログボックスにおいてね元データが保存されているフォルダーを開いて、" & vbCrLf & _ "フォルダー内に元データとして使用する事が出来ない余計なファイルが含まれていない事を確認後、" _ & vbCrLf & "元データのファイルの内のどれか1つを選択してから[開く]ボタンを押して下さい。" _ & vbCrLf & vbCrLf & "※ 上記の操作はあくまでフォルダを選択するためのものであり、" & vbCrLf & _ "フォルダー内のどのファイルを選択してもフォルダー内の全てのファイルのデータがコピーされます。" _ & vbCrLf & "  ですから、フォルダー内に、コピー元として使う事が出来ないファイルが含まれていない様に注意して下さい。" _ , vbInformation, "説明" myPath = "" With Application.FileDialog(msoFileDialogOpen) .InitialFileName = CurDir .Title = "フォルダーを開き、元データファイルの内の1つを選択して下さい" .AllowMultiSelect = False With .Filters .Clear ' 「表示するファイルの種類」の設定を初期化 .Add "Excelブック", "*.xls; *.xlsx; *.xlsm", 1 ' 「表示するファイルの種類」を設定 End With If .Show Then ' 元データファイルの1つが選択された場合 myPath = Left(.SelectedItems(1), InStrRev(.SelectedItems(1), "\")) ' 元データファイルの保存先フォルダーのパスを取得 Else ' 元データファイルが選択されなかった場合 myBox = Empty myBox = MsgBox("保存されているExcelファイルが選択されていません。" _ & vbCrLf & "元データとなるファイル""" & "のみ" & """が保存されているフォルダーを" & _ "選択するための基準となる保存済みのExcelファイルを指定しなければ、どのファイルを" _ & "元データとして扱えば良いのか解りませんので、処理を進める事が出来ません。" _ & vbCrLf & "フォルダーを指定し直しますか?" & vbCrLf & vbCrLf & _ "[再試行]:フォルダーの選択のやり直し" & vbCrLf & "[キャンセル]:マクロの終了" _ , vbRetryCancel + vbQuestion, "フォルダーの再選択の可否") If myBox = vbRetry Then GoTo label1 Else Exit Sub End If End If End With ' 指定したフォルダー内に、このマクロが記録されているWorkbookと同名のWorkbooktがあった場合には処理を中止 If Dir(myPath & ThisWorkbook.Name) <> "" Then MsgBox "「指定されたフォルダー内に保存されているコピー元のWorkbook」の中に、" & _ "データの転記先のWorkbookと同名のWorkbookが存在しているため処理を行う事が出来ません。" _ & vbCrLf & "処理の実行を中止します。", vbExclamation, "無効な選択" Exit Sub End If ' 開いているExcelBookの中に指定したフォルダー内に保存されているものが無い事を判定 Set myBook(0) = Nothing myImfo = "" For Each myBook(1) In Workbooks If Dir(myPath & myBook(1).Name) <> "" Then myImfo = myImfo & vbCrLf & myBook(1).Name Next myBook(1) Set myBook(1) = Nothing ' 指定したフォルダー内に保存されているファイルと、現在開いているExcelBookの中に、同名のものがあった場合には処理を中止 If myImfo <> "" Then MsgBox "「指定されたフォルダー内に保存されているコピー元のWorkbook」" & _ "と同名のWorkbookが既に開かれているため処理を進める事が出来ません。" & vbCrLf & _ "処理の実行を中止しますので、もし本マクロによる処理を行いたい場合には、" & _ "現在開かれているWorkbookの内、下記のものを閉じてから再度本マクロを起動させて下さい。" _ & vbCrLf & myImfo, vbExclamation, "処理の妨げとなっている開かれたBook" Exit Sub End If With Sheets(PasteSheetName) oldRows = .Range(SortRefColumn(0) & Rows.Count).End(xlUp).Row - FirstRow If oldRows > 0 Then With .Range(LeftColumn & FirstRow + 1) oldNumberFormat = .NumberFormatLocal .Resize(oldRows, 1).NumberFormatLocal = "[赤]""●""0;[赤]""●""@" End With End If End With With Application .EnableEvents = False ' イベント動作停止 '.Cursor = xlWait ' マウスポインターを[待ち状態]にする End With myFileName = Dir(myPath & "*.xl*", vbNormal) ' 指定フォルダーに存在する1つ目のExcelファイルの名称を取得 ' 指定フォルダーの全Excelワークブックについて繰り返す Do While myFileName <> "" ' 元データがあるワークブックとして指定されたワークブックが '貼り付け先のワークブックでは無い場合に限り処理を行う If myPath & myFileName <> _ ThisWorkbook.Path & ThisWorkbook.Name Then Application.StatusBar = myFileName & " を読み込み中...." ' ステータスバーに処理ファイル名を表示 ' ワークブックを読み取り専用で開く Set myBook(0) = Workbooks.Open(Filename:=myPath _ & myFileName, UpdateLinks:=False, ReadOnly:=True) '全シートに対して繰り返し処理 For i = 1 To myBook(0).Sheets.Count ' 選択したシートのシート名がコピー元として使用しないシート名と同名ではない場合に限りコピーを行う myOk = True For j = 0 To UBound(ExcludeSheet) If myBook(0).Sheets(i).Name = ExcludeSheet(i) Then myOk = False Next j If myOk Then With myBook(0).Sheets(i) Application.StatusBar = myFileName & " の '" _ & .Name & "' シートのデータを転記中...." ' ステータスバーに処理ファイル名とシート名を表示 ' データの転記先の表の項目欄の1行下の書式を、新たなデータの転記先となるセル範囲にコピー Set myRange = .Range(LeftColumn & FirstRow + 1 & ":" & RightColumn _ & .Range(SortRefColumn(0) & .Rows.Count).End(xlUp).Row) ' 元データのセル範囲を取得 End With With ThisWorkbook.Sheets(PasteSheetName) .Range(LeftColumn & "1:" & RightColumn & 1).Offset(FirstRow).Copy ' データの転記先の表の項目欄の1行下のセル範囲をコピー ※ まだ途中なのですが、このサイトの回答欄の文字数制限の限度を超えてしまうため、残りは又後で投稿させて頂きます。

  • -9L9-
  • ベストアンサー率44% (1088/2422)
回答No.6

フォーマットが決まっているのなら、他の方も書いている通り、ひとつひとつ手作業でくっつけてやれば済むこと。その程度のデータ量なら一時間もあればまとめられるでしょう。 なお、そんなデータ管理は本来ならデータベースソフトでやるべきこと。EXCELでやろうとするから訳が分からなくなるんだと思います。

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

対象のfile(エクセルではブック)だけを、それ以外のブックは混じっていないフォルダを作る。 判別とフォルダ移動を手作業に頼るか、名前によってででも、自動的にプログラムで判別、移動できればラッキー。 (1)1フォルダの中のブックを1つずつ取り上げて全部のブックを捕まえて、対象シートをコピーし 集約ブックの1シートに張り付ける。Copy-Paste法。 WEBで「1フォルダの中のエクセルブックをすべて1つずつ捉える方法のコード例はたくさん載っている。 FOR EACHの活用。 今まで同じような質問も相当数あった。 ・各シートの列について項目順序が違う場合や捨てる項目がある場合は、1つに統一するようにVBAプログラムで中間的に編集する。そして張り付ける。 ・集積してきたシートの途中の現在の最終行はEnd(xlup)でとらえられる。その1行下のセル行に張り付ける。この繰り返しを行う。これもWEBにたくさんコード例がある。 ・1つのブック内のシートのデータもFor Eachでとらえられる。邪魔者シートがあれば手作業でのぞいておくか、名前ででも区別できればラッキー。 ・シートのデータの最初に見出し行があれば、Copy段階で、見出しはのぞくよう範囲指定して、コピーする。 ーー WEBに実例があるから、検索語を工夫して、検索し、勉強してみて。 質問者は余りVBAの経験がないようなので、頑張らないと。 ーー 本件は手作業でやるとした場合の行動や判別思考をなぞっているやり方だ。 まずそのステップを順序立てて箇条書きにしてみるとよい。その場合、口で言えばこうなるものをコードではどうなるという質問をここにしないと(丸投げだと)自分も進まないし、このコーナーは、そっくりコードを書けという依頼をする場所じゃない。 -- 各階に各階を区別できる情報(列の付加)も必要かもしれない。 並び順は作業完成後考えたらよい。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 前述の様に、解決方法を回答するために必要な情報が何も説明されていないため >簡単な方法 を回答する事は不可能ですが、簡単ではない方法、つまりある程度労力を要する方法であれば御伝えする事が出来ます。  まず、それらのファイルの中の各シートの中で、 >「No」「日付」「ID」「名前」・・・ 等の項目名が入力されている列より下の、実際のデータが入力されている行範囲をまとめてコピーして、 >一括で1シートにまとめたい としているまとめるためのシートの「既存のデータがある一番下の行」よりも下の行に貼り付ける、という作業を、各シート1枚ごとに繰り返して行って、全てのファイルの全てのシートのデータを1枚のシートに貼り付けて下さい。  その際、前回貼り付けたデータが重複して貼り付けられる事になっても構いませんので、「前回どこまでのデータを貼り付けたのか」などという事は気にせずに、項目欄よりも下の行のデータを丸ごと貼り付けてしまって構いません。  又、データをまとめるためのシートの下に追加して貼り付けて行く際にも、列がずれてしまう事と、既に貼り付けられているデータが上書きされて消えてしまう事さえなければ、途中に空欄の行が少々挟まってしまっても構いませんので、貼り付け先の行は必ずしもデータが貼り付け済みとなっている最終行の次の行でなくとも構いません。  そして、全てのデータを1枚のシートに貼り付け終えた後、「『No.』と記されているセル」~「データを貼り付けたセル範囲の中で右下の隅のセル」のセル範囲をまとめて範囲選択して下さい。  次に、「重複の削除」ダイアログボックスを開いて、Excelの[重複の削除]機能を使用して、重複するデータを全て削除して下さい。  その際には、削除対象とする項目の設定を[すべて選択]とし、[先頭行をデータの見出しとして使用する]欄のチェックもONにして下さい。  尚、もしExcelの[重複の削除]機能の使い方を御存知ではない場合には、下記のURLのページを御覧下さい。 【参考URL】  All About > デジタル > IT・インターネット > エクセル(Excel)の使い方 > データベース・データ集計 > 重複しているデータを瞬時に削除する方法   http://allabout.co.jp/gm/gc/376556/  次に、Excelの[ユーザー設定の並べ替え]機能を使用して、[重複の削除]を行った際に既に選択済みとなっているセル範囲のデータを昇順に並べ替えて下さい。  その際には、オプションの「並べ替えの方向」はデフォルトの「行」方向としたままで良く、最優先される項目は「日付」等の項目欄から適時選択し、その他にも優先したい項目がある場合には[レベルの追加]ボタンをクリックして、優先する項目を適時追加して下さい。 【参考URL】  パソコン三昧 やさしい講座 ~第77回 Excel 2007 の並べ替えとオートフィルタ機能~   http://mikisky40.web.fc2.com/kohza/kohza77/kohza77_06.html  

noname#212067
noname#212067
回答No.3

あれだ! 一ファイずつ開いて、新規作成したシートにコピペすればよいのです 一番簡単な方法です! 簡単を必要とする人は、頭より手を動かしましょう!

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 この様な件の解決方法を回答するために必要な情報が何も説明されていないため、良い方法を回答する事するが出来ません。  この様な質問をする際には、A列、B列、C列・・・のどの列から、A列、B列、C列・・・のどの列までの範囲のデータをまとめたいのかという事と、 >行の項目は順に「No」「日付」「ID」「名前」・・・ とは一体何行目の事なのか、という事を必ず説明しておかなければ、どのデータをまとめれば良いのかなど、他人である回答者には判る筈がありません。  そしてどのデータを取り扱えば良いのか解らない以上、質問者が求めている事を実現する方法など答えられる筈もありません。  質問をされる際には、どの様な状況であるのかという事と、何をしたいのかという事、その際にはどの様な条件があるのかという事、等々の必要な情報を必ず説明する様にして下さい。  今回は、必要な情報の説明が殆どされていないのですから、「補足コメント入力」欄等を利用して上記に有る様な必要な情報を残さず御説明願います。

ss151120
質問者

補足

初めての質問なので言葉足らずで申し訳ありません。 あらためて A列 B列 C列 D列 E列 F列 G列 1行目 No 日付 ID 名前 金額 地域 店舗名 2行目以降、入力データ (シートにより数行~数十行入力されています) これらの入力された複数のシートを 1行目を共通にして入力されているデータ取り纏めたいです。 コピペでは時間がかかるので、一括でできる方法(VBAなど)教えていただけると助かります。

  • aokii
  • ベストアンサー率23% (5210/22063)
回答No.1

Excelファイル10個*20シート*100件=2000行を引用して、1シートにまとめ、必要により並べ替えては?

関連するQ&A