- ベストアンサー
【エクセル】シートが分かれているデータを集める
あるブックにシートが10シートあるとします。 これらのシートの同じ列を、別のシートにまとめたいです。 列には60行くらいのデータがあり、それぞれのシートの行数は同じです。 まとめるシートは、 A列 B列 C列 D列 シート1のA列、シート2のA列、シート3のA列、シート3のA列・・・ のようにしたいです。 関数などを試してみましたが、列設定ではなかなかうまくいかず、 すっきりと持ってくることができません。 知恵をお貸しいただけないでしょうか。 よろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
マクロで対応するなら、集計用のシートを1枚目のシートにして、以下のようなコードで2枚目以降のシートのA列のデータを1枚目のシートにコピー貼り付けします。 Sub sample() Dim i As Integer For i = 2 To Worksheets.Count Worksheets(i).Select Columns("A:A").Copy Sheets(1).Select Cells(1, i - 1).Select ActiveSheet.Paste Next i End Sub
その他の回答 (5)
- kagakusuki
- ベストアンサー率51% (2610/5101)
ANo.2,4です。 ANo.4の関数を次の様に変えれば、関数を少し短くする事が出来ます。 =IF(ISERROR(1/LEN(INDIRECT(Sheet補助!A$1&"!A"&ROWS($1:1)))),"",INDIRECT(Sheet補助!A$1&"!A"&ROWS($1:1)))
お礼
ありがとうございます(^^) 何度もご回答いただいて、感謝です。 またどうぞよろしくお願いいたします。
- kagakusuki
- ベストアンサー率51% (2610/5101)
ANo.2です。 もし、表示させたい列が存在しているシートのシート名が、 Sheetあ Sheetい Sheetう Sheetえ Sheetお ・ ・ ・ という具合に、連番にはなっていない場合には、 まず、適当な空きシート(ここでは仮に「Sheet補助」というシート名のシートとします)の1行目等に、 A1セルに Sheetあ B1セルに Sheetい C1セルに Sheetう D1セルに Sheetえ E1セルに Sheetお ・ ・ ・ という具合に、表示させたいデータがある全てのシートのシート名を、横に並べて入力して下さい。 次に、Sheet1のA1セルのデータを表示させるセルに、次の関数を入力して下さい。 =IF(ISERROR(INDIRECT(Sheet補助!A$1&"!A"&ROWS($1:1))),"",IF(INDIRECT(Sheet補助!A$1&"!A"&ROWS($1:1))="","",INDIRECT(Sheet補助!A$1&"!A"&ROWS($1:1)))) そして、そのセルをコピーして、他のシートのデータを表示させる全てのセルに貼り付けて下さい。
お礼
ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 まとめるシートのA1に=OFFSET(INDIRECT("sheet"&COLUMN(A1)&"!A1"),ROW(A1)-1,)を設定、縦横に必要分コピーして下さい。 尚、データのみとしてい場合、まとめシートの数式範囲をコピー→形式を選択して貼り付け→値を選択→OKとして下さい。
お礼
ありがとうございました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
もし、表示させたい列が存在しているシートのシート名が、 Sheet1 Sheet2 Sheet3 Sheet4 Sheet5 ・ ・ ・ という具合に、「文字列+連番」という形式になっている場合には、 まず、Sheet1のA1セルのデータを表示させるセルに、次の関数を入力して下さい。 =IF(ISERROR(INDIRECT("Sheet"&COLUMN(A1)&"!A"&ROW(A1))),"",IF(INDIRECT("Sheet"&COLUMN(A1)&"!A"&ROW(A1))="","",INDIRECT("Sheet"&COLUMN(A1)&"!A"&ROW(A1)))) 次に、そのセルをコピーして、他のシートのデータを表示させる全てのセルに貼り付けて下さい。
お礼
ありがとうございました。
補足
ありがとうございます。 補足いたしますと、 「文字列+連番」という形式にはなっておらず、 「13」~「100」くらいまでがランダムに並ぶシート名です。
- nobunaga1582
- ベストアンサー率0% (0/2)
お礼
ありがとうございます。 こちらのサイトにはよくお世話になっております。 今回は、なかなかちょうど良いマクロが見当たらずに 困っておりました。 ヒントと言いますか、とっかかりだけご教示いただけますと とてもうれしいです。
お礼
ありがとうございます! 探していたのはまさにこれ!といった感じでした。 少し自分用に手直しは必要ですが、 しっかり別シートからデータを持ってくることが できました。 これであれば、シート名に関わらず使えますので、 応用が利きそうです(^^) 本当にありがとうございました。 (操作を誤って、一度お礼の言葉を消してしまったようなので、 再度投稿しています。重複がありましたら申し訳ありません)