• 締切済み

エクセルで複数のシートからデータを抽出したい

例えば、 シート1  シート2  シート3     新しいシート あんず   めろん   あんず      あんず いちご   なし    もも    →  いちご みかん   りんご            かき りんご   かき             なし                      みかん                      めろん                      もも                      りんご                       という感じで、シート1から3を同じデータはダブらず新しいシートにまとめたいのです。ひとつひとつ見ていくのは大変なので、手っ取り早くできる方法を教えてください。

みんなの回答

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

関数では難しいとおもい、VBAでやってみました。 寄せ集めるシート名をSheet4にしてますが、自分のケースに合わせて下記の数箇所を変えてください。 ForNextの3重ループになってます。 一番外側は各シートの数だけの繰り返し 中は各シートのセルの上行から最終下行への行数分の繰り返し 最後はSheet4の中にすでに同じものがないか上のセルのから最下行セル(追加の度に下へ下がる)へのチェックの繰り返しです。 下記をVBEの標準モジュール(ALT+F11キー)に貼り付けて、実行(F5キー)します Sub test01() Dim sh As Worksheet k = 2 For Each sh In ActiveWorkbook.Worksheets 'MsgBox sh.Name If sh.Name = "Sheet4" Then Exit Sub ' sh.Activate d = sh.Range("A65536").End(xlUp).Row ' MsgBox d For i = 2 To d For j = 1 To k If Worksheets("Sheet4").Cells(j, "A") = sh.Cells(i, "A") Then GoTo p1 Next j Worksheets("Sheet4").Cells(k, "A") = sh.Cells(i, "A") k = k + 1 p1: Next i Next End Sub データが多いと処理完了時間が心配ですが、まあやってみてください。 A列以外がある時は Worksheets("Sheet4").Cells(k, "A") = sh.Cells(i, "A") の下行に(B列なら) Worksheets("Sheet4").Cells(k, "B") = sh.Cells(i, "B") を加えます。C列以下も同じです。

  • OsieteG00
  • ベストアンサー率35% (777/2173)
回答No.1

「統合」機能を使うのが一番簡単かと。

参考URL:
http://www.eurus.dti.ne.jp/~yoneyama/Excel/syukei.html