エクセルマクロで複数シートのデータをまとめる方法
- エクセルの複数シートにあるデータを条件に合わせて一つのシートにまとめる方法を解説します。
- 複数シートで同じ条件のデータをまとめるためには、エクセルのマクロを使用すると便利です。
- マクロ以外にも、フィルタリングやピボットテーブルを利用する方法もあります。
- ベストアンサー
エクセル 複数シートのデータを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列に形式を値にして張り付ける (っというのが私の乏しい知識で考えた方法なのですが、これでは不具合がでますか? もちろん、この方法じゃなくもっといいのがあれば、それをやってみたいです。)
- 6923
- お礼率85% (183/215)
- オフィス系ソフト
- 回答数1
- ありがとう数2
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
コードはかなり簡単なのですが、こういうのは、環境の違いなのか、理由が分からない失敗がありますので、十分に注意して行ってください。私は、この手のワークシートを駆使したものは、あまり自信がありません。 Sub CopytoSheet21() Dim i As Long, j As Long, k As Long Dim TotalSheet As Worksheet Set TotalSheet = Worksheets("Sheet21") k = 2 'TotalSheet の最初の行 Application.ScreenUpdating = False 'Sheet21 のデータの消去 B1から、以下を消す TotalSheet.Range("B1").CurrentRegion.Offset(1).ClearContents For i = 1 To 20 With Worksheets("Sheet" & i) For j = 2 To .Range("A65536").End(xlUp).Row If StrConv(.Cells(j, 1).Value, vbUpperCase) = "C" Or _ StrConv(.Cells(j, 1).Value, vbUpperCase) = "D" Or _ .Cells(j, 2).Value = "欠" Then .Cells(j, 1).Resize(, 13).Copy TotalSheet.Cells(k, 1).PasteSpecial Paste:=xlValues Application.CutCopyMode = True k = k + 1 End If Next j End With Next i Application.ScreenUpdating = True Set TotalSheet = Nothing End Sub
関連するQ&A
- マクロを使用し、EXCELのデータから必要な部分を取り出し2つのsheetに貼り付けたい
条件 EXCELのデータ A列からL列まで 複数行(行数は、決まっていない) (例) 40行ほどあるデータを見て 1行目から10行目までをsheet1に 12行目から20行目までをsheet2に貼り付けたい場合。 11行目のA列(空白になっている)に手入力で「a」と入力 21行目のA列(空白になっている)に手入力で「b」と入力し、 1行目から「a」のある行までをコピーし、sheet1に貼り付ける 「a」のある行より1行下から「b」のある行までをコピーし、sheet1に貼り付ける 以上のことをマクロで実行する方法を教えて下さい。
- ベストアンサー
- オフィス系ソフト
- VBA,二つのExcelのsheetにデータ保存
VBA初心者です。 皆様のお力をお貸し頂きたく質問させて頂きます。よろしくお願いいたします。 質問内容は、下記になります。 Excelのsheet1には、縦列A,B,C・・・とデータが入っております。 sheet1の例 A B C sheet2は、入力するsheetです。 今回はA列の3行目からとします。 問題は、sheet1の縦の列をA,B,C,Dとすればデータの更新は、出来るのですが sheet1のデータのA,B,C一つ飛んでEまた一つ飛んでGという感じでsheet1のデータを 飛ばしてsheet2に表示、更新(保存)をしたいと思います。 ですので、sheet2のA列の3行目からA,B,C,飛んでE飛んでGとsheet1からデータを 表示させ、さらにsheet2の入力値が変更されると、sheet1のデータが入っている A,B,C,E,Gに更新される仕様です。 sheet1(データが入っています) A , B , C , E , G , 値1 , 値2 , 値3 , 値4 , 値5 sheet2(入力する、入力したデータは、sheet1へ更新される) A列 3行目 、sheet1の値1(A列)が入ります。 4行目 、sheet1の値2(B列)が入ります。 5行目 、sheet1の値3(C列)が入ります。 6行目 、sheet1の値4(E列)が入ります。 7行目 、sheet1の値5(G列)が入ります。 以上です。申し訳ございませんが、ご教授よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- 複数シートを通して連番を振るマクロ
マクロ初心者です エクセルワークシートが6枚あります。 シート1枚目のA列にB列データがある行まで連番を振ります(可変)1-100 シート2枚目のA列にはB列データがある101-195 シート3枚目のA列には196-305など ...... となるようにしたいです。 1枚目の最終行を取得して連番を振ることは出来たのですが、2枚目の始まりをどのように書いたらよいのか分かりません。 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelでのデータ抽出
Excelで外部結合風のデータ抽出を教えてください。 シートAとシートBに表形式のデータがあり、 シートAのA列の値とシートBのA列の値が一致するシートBの 行を抽出するのが目的です。 具体的には次のような感じです。 シートA シートB ---------------- ---------------- A列 | B列 | C列 A列 | B列 | C列 ---------------- ---------------- 2 | 2B | 2C 1 | 1BB | 1CC ---------------- ---------------- 4 | 4B | 4C 2 | 2BB | 2CC ---------------- ---------------- 6 | 6B | 6C 3 | 3BB | 3CC ---------------- ---------------- ↓ シートB ---------------- A列 | B列 | C列 ---------------- 2 | 2BB | 2CC ---------------- 以下以外の方法がありましたら教えてください。 1)アクセスに両シートのデータを取り込み、2つのテーブルを外部結合で連結させる。 2)マクロで二重ループをつくり、A列が一致した行を取り出す。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルのA列に入力したデータを別シートと連動させる方法
エクセル2000です。 A列 B列 C列 言葉 意味 例文 とシート1に入ってるデータがあります。 500行程入っているのですが、A列のデータだけをシート2にコピーして一覧で見られるようなシートを作りたいと思っています。 でもA列だけだと縦長でとても見づらいため、B列以降も使い全て20行位にしたいのですが、A列だけをコピーしてシート2に貼り付けた時に自動で各列20行位に収まるような関数やマクロの方法ってありますでしょうか? また今後もシート1、A列の言葉が増えた時にシート2も関連して増えるようにすることも出来ますでしょうか? どうか教えて下さい!
- 締切済み
- オフィス系ソフト
- ExcelVBAで複数セルを別シートに貼り付けたい
Excel VBAでデータをコピーして、別シートに貼り付けるどうしたらいいのでしょうか。 Sheet1のセルA1からA4のデータをコピーして、Sheet2のC2からc5に貼り、次はSheet1のセルB1からB4のデータをコピーしてSheet2のC7からc10に貼りを500行ほど繰り返し(コピーするデータは、4行づつ横へ移動し、貼り付けるほうは4行づつ縦へ移動します。) それが終わったら、今度はB列、c列と100列ほど同じ操作を繰り返します。 いろいろな方法を試しましたが、なかなかうまくいきません。 どなたか教えていただけませんでしょうか。よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルのデータのコピー(シート間)
エクセルのデータのコピー(シート間) シート1の10行目には,A列からCZ列の各列ごとに1行目から9行目までの数値の加算式が入力されています(A10には「=SUM(A1:A9)」,B10には「=SUM(B1:B9)」,・・・CZ10には「=SUM(CZ1:CZ9)」)。 これらの加算式のデータ(A10,B10,・・・CZ10)を,シート2のA列の1行目から78行目まで縦にコピーしたいのですが,良い方法を教えて下さい。 宜しくお願いします。
- ベストアンサー
- その他MS Office製品
- 複数のシートのデータをひとつのシートに纏める
EXCELにおいて、複数のシートのA列のデータをひとつのシートにまとめるにはどのようなマクロを組めばよいのでしょうか。 (内容) ”Cycle1”SheetのA列をコピー⇒”まとめ”SheetのA列に貼り付け ⇒”Cycle2”SheetのA列をコピー⇒”まとめ”SheetのB列に貼り付け ⇒”Cycle3”SheetのA列をコピー⇒”まとめ”SheetのC列に貼り付け ⇒”Cycle4”SheetのA列をコピー⇒”まとめ”SheetのD列に貼り付け ・・・。 現在は、上記の内容を手動でやっており、シート数が多い場合大変です。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- 一致するデータを複数シートから別のシートへ移動
Sheet1~Sheet3を用いて、 Sheet1とSheet2でそれぞれのC列の項目が一致するデータを抽出し、 該当するデータの Sheet1B列⇒Sheet3D1 Sheet2A列⇒Sheet3A1 Sheet2B列⇒Sheet3B1 Sheet2C列⇒Sheet3C1 に移動するためのマクロを組みたいと思っています。 Sheet2からSheet1に検索をかけて、 Sheet2C列≠Sheet1C列であればSheet2のA1行を削除していき Sheet2C列=Sheet1C列であれば Sheet2A~C列をSheet3A~C列へ移動するところまでは出来ました。 ※なお、Sheet3のA1行に文字列があればセルを1行追加する設定にしています。 しかし、それはA1行の文字列をそのままコピペしているだけなので Sheet1B列の一致データをSheet3D1へ移動するやり方が思い浮かびません…。 Sheet2と同じくA1行を削除していこうとしてもうまくいきませんでした。 どんどんマクロも指示文ばかりが増えてわけが分からなくなってきてしまい、挫折しています。 シンプルにするにはどうすればいいでしょうか? また、マクロの内容を載せたいのですが 会社の業務端末で組んでいるため転記できません; 申し訳ありませんが、どうかご指導ください。
- 締切済み
- その他MS Office製品
- エクセルマクロで空欄と空欄の間のデータを取得する
添付画像のようなデータが並んだエクセルシートがあります。(ブックA) ブックAsheet1のA列に数値が入っている行のB列~D列のデータを別のブックBから取得したいのです。 ブックBにsheet1~sheet20まであります。 ブックAsheet1のA列に数値が入っている行のB列~D列のデータを1セットとして、ブックBのsheet1のB1にコピーする。 次のグループをブックBのsheet2のB1にコピーする、 また次のグループをブックBのsheet3のB1にコピーする。 ブックBには書式設定してあるので、値のみコピーします。 ブックAのB列~D列の数値の配置はそのままでコピーします。 この作業をブックBからマクロで行う方法を教えて下さい。 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございました。使わせていただきます。コードは簡単って書いてありますが、マクロを組める頭がある人ってすごいと思います!