- ベストアンサー
エクセルで複数ブックの特定範囲を一覧化する方法
- エクセルでイベントの参加者を一括集計する方法を紹介します。紙ベースではなくエクセルベースで申し込み情報を受け取り、特定の範囲を抽出し一覧化することが可能です。
- 複数ブックの参加者情報を一つのブックにまとめ、特定の範囲のみを転記し一覧化する方法を解説します。マクロを使用して複数シートを一つのブックに結合することもできます。
- 空欄セルを除外して特定の範囲のみを転記する方法も紹介します。エクセルの関数やフィルタリング機能を使用することで、データの整理を効率的に行うことができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
マクロで処理するなら以下で出来ます。 1.「一つのブックにまとめた」ブックで新たにシートを追加、追加シートのシート名を"一覧"とする。 2.Alt+F11を押下し、VisualBasicを開く。 3.VisualBasicのプロジェクトエクスプローラーで"一覧"シートをダブルクリックする。 4.Editerペインに以下のマクロを貼り付ける。 Public Sub 一覧作成() Dim lSt As Worksheet Set lSt = ActiveWorkbook.Sheets("一覧") Dim wST As Worksheet Dim listRow As Long '一覧の一行目は自分で設定してね。 listRow = 1 For Each wST In ActiveWorkbook.Sheets '対象外のシート名("Sheet3")は処理しない(★適当に変更する) '一覧シート(lst.Name)も対象外とする。 If wST.Name <> "Sheet3" And _ wST.Name <> lSt.Name Then Dim R As Long Dim C As Integer For R = 2 To 10000 '1シート最大10000人まで(★適当に変更する) 'A列にデータが無い場合は集計元シートのデータなしと判定→次のシートへ If Trim(wST.Cells(R, 1)) = Empty Then Exit For End If '一覧対象のデータありの場合 listRow = listRow + 1 '一覧シートの格納行 lSt.Cells(listRow, 1) = wST.Name 'シート名 For C = 1 To 3 '1シート最大3列とした場合(★適当に変更する) lSt.Cells(listRow, C + 1) = wST.Cells(R, C) Next Next End If Next End Sub 5.上記の"★"を確認変更する。 ★の意味合いは以下 (1)対象外シート名の指定、上記では"Sheet3"と"一覧"を例示。 (2)一覧表の対象となるコピー元の各シート最大行数は10000としている。これを超える場合は変更する。 (3)各シートからコピーする列は列1~3、3列を超える場合は変更する。 6.Excel2007のリボンで「表示」「マクロ」から「~.一覧作成」を実行する。 各シートのデータが”一覧”シートに集まります。 ただし、一覧の先頭行はどこかのシートの1行目をコピーするなどして、手動で設定してください。 (各シートの2行目からコピーしています) 以上
その他の回答 (2)
- KURUMITO
- ベストアンサー率42% (1835/4283)
ブックαやブックβの各データはまとめのブックのあるシートに入力されているとします。それがシート名になっているとします。すなわちブックαやブックβと命名されたシートが有るとします。幾つかのシートになっていても構いません。 そこでまとめのシートですがA1セルにはシート名の文字を入力し、右横方向の列にはシート名、例えばブックα、ブックβなどと入力します。 A2セルには0を入力します。 B2セルには次の式を入力して右横方向にドラッグコピーします。 =IF(B1="","",A2+COUNTIF(INDIRECT(B1&"!C:C"),"*?")) A4セルにはシート名、B4セルには年齢、C4セルには性別、D4セルには氏名の文字をそれぞれ入力します。 A5セルには次の式を入力してD5セルまで横にドラッグコピーしたのちに下方向にもドラッグコピーします。 =IF(ROW(A1)>MAX($2:$2),"",IF(COLUMN(A1)=1,INDEX($1:$1,MATCH(ROW(A1)-0.1,$2:$2,1)+1),INDEX(INDIRECT(INDEX($1:$1,MATCH(ROW(A1)-0.1,$2:$2,1)+1)&"!A:C"),ROW(A1)-INDEX($2:$2,MATCH(ROW(A1)-0.1,$2:$2,1))+1,COLUMN(A1)-1))) シートの数が多くなっても対応することができます。
お礼
ありがとうございました。
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
>一覧化する(A行にシート名を転記する)ことができません。 シート名は全部同じだと思う、タブン、、、 A行ッウのはドコのこと??
お礼
ありがとうございます。 解説付きで自分で改変がしやすく、非常にありがたいです。 こういう回答を待っていたんです。