これからの季節に親子でハイキング! >>

エクセルで10以上あるシートを一発でひとつにまとめる方法はあるでしょうか?

コピー&ペーストを繰り返すしかないのでしょうか…

仕事で明日やらなければならないので、
お分かりになる方、是非教えてください!

このQ&Aに関連する最新のQ&A

A 回答 (5件)

まぁ既出回答にもあるように,10数回程度コピー貼り付けすることで,どうという作業ではないとは思います。



さておき。
ご利用のエクセルのバージョンが不明ですが,ご利用のOfficeのバージョンによっては

1.ワードを起動する
2.挿入のファイルからエクセルブックを指定する
3.添付図のようなダイアログが表示されたらラッキー成功です,ブック全体を指定して挿入する
4.Ctrl+Aで全体を選び,コピーして,エクセルの新しいシートに貼り付ける

と一発でできます。
添付図のようにならなかったときは,出来ません。
「エクセルで多数のシートをまとめる方法」の回答画像4
    • good
    • 18
この回答へのお礼

ご回答ありがとうございます。

ワードでできる方法もあるんだ!と思い、
早速やってみましたが、職場のエクセルでは添付していただいた図のようなものはでできませんでした。。

今後の参考にさせていただきたいと思います。

ちなみによく確認をしたら、シートは19シートありました。
地道にコピペしてみたいと思います。

ありがとうございました。

お礼日時:2011/10/09 13:11

仮に各シートは同じ項目で同じ表になっているとします。


1行目は必ず項目名が入力されているとします。2行目から下方にデータが入力されているとします。
各シートの2行目から下方のデータをまとめのシートにコピーして表示させることを関数で行うとしたら次のようにすればよいでしょう
まとめのシートでの操作を次に示します。
B1セルから右横の各セルには10以上あるシート名(文字列)を例えばSheet1のように入力します。
A2セルには0を入力します。B2セルには次の式を入力して右横方向にオートフィルドラッグします。

=IF(B1="","",MAX($A2:A2)+COUNTIF(INDIRECT(B1&"!$A:$A"),"?*")-1)

A3セルから横方向には各シート上にある項目名をコピーして並べます。

A4セルには次の式を入力して横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。

=IF(OR(ROW(A1)>MAX($2:$2),A$3=""),"",IF(INDEX(INDIRECT(INDEX($1:$1,IF(COUNTIF($2:$2,ROW(A1)),MATCH(ROW(A1),$2:$2,0),MATCH(ROW(A1),$2:$2,1)+1))&"!A:J"),ROW(A1)+1-INDEX($2:$2,IF(COUNTIF($2:$2,ROW(A1)),MATCH(ROW(A1),$2:$2,0)-1,MATCH(ROW(A1),$2:$2,1))),COLUMN(A1))=0,"",INDEX(INDIRECT(INDEX($1:$1,IF(COUNTIF($2:$2,ROW(A1)),MATCH(ROW(A1),$2:$2,0),MATCH(ROW(A1),$2:$2,1)+1))&"!A:J"),ROW(A1)+1-INDEX($2:$2,IF(COUNTIF($2:$2,ROW(A1)),MATCH(ROW(A1),$2:$2,0)-1,MATCH(ROW(A1),$2:$2,1))),COLUMN(A1))))

これで各シートのデータがまとめのシートに表示されることになります。
    • good
    • 25
この回答へのお礼

ご回答ありがとうございます。

分かりやすいご説明、ありがとうございます!
早速次回試してみたいと思います!

お礼日時:2011/10/09 22:14

例えば、Sheet10とかで、



A列に、
A1:Sheet1
A2:Sheet2
A3:Sheet3
のシート名を入力しておき、

B1:=INDIRECT(A1&"!$A$1")
B2:=INDIRECT(A2&"!$A$1")
以下コピペ

とかってやると、列挙したシート名の$A$1セルの内容を抜き出せるとか。

--
10あるシートの内容が、1枚のシートに入る容量なら、単純にコピー&ペーストを繰り返しても10回かそこらの作業ですし。
有効なシートの範囲を選択する方法だと、シート選んで、[Ctrl]+[Home]、[Ctrl]+[Shift]+[End]だとか。
    • good
    • 11
この回答へのお礼

ご回答ありがとうございます。

[Ctrl]+[Home]、[Ctrl]+[Shift]+[End]で選択すると、
一気に範囲を指定できるんですね。
これでやってみたいと思います。

お礼日時:2011/10/09 13:08

方法はないでしょう。

人間の繰り返し作業ををVBAでやることは出来ます。自動でやってくれるイメージです。
しかし明日までということだと、質問者はVBAプログラムの経験が無いだろうから出来ません。
10シートぐらいのコピペは、ここに質問して、回答を待つことに比べたら直ぐ出来てしまいます。
仕事でエクセルを使うにはVBAが出来ることが必須というのが私の持論です(表の組み換えなどが頻繁にする必要がありえるからです)。表の組み換えなどは、関数では、特別の思い付き(スキル)が必要で、式が複雑になったりする。
ーーー
質問に書いてないが、各シートの項目構成や順序は同じなのだろうね。書いておくべきだ。難易大きく左右する。
    • good
    • 4
この回答へのお礼

ご回答ありがとうございます。

私には高度なことのようです。。
各シートの項目構成順序は同じです。
商品名・在庫数・仕入額等が入った表を、
商品のカテゴリごとにシートに分けてあります。
ちなみにもう一度確認したら、シートは19シートありました。
コピペでやってみたいと思います。

お礼日時:2011/10/09 13:06

「ひとつにまとめる」がどういう意味かにもよりますが、内容を1枚のシートに集めるという意味でしたら「そういう機能」はありません。

    • good
    • 2
この回答へのお礼

ご回答ありがとうございます。

内容を1枚のシートに集めるという意味です。
やはり無理ですか。ありがとうございました。

お礼日時:2011/10/09 13:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel複数シートにあるデータを1枚にまとめる

Excelブックにある50枚ほどのシートのデータを一枚のシートにまとめたいです。
現在シート1には機材Aを使用している人の名前、シート2には機材Bを使用している人の名前、シート3には機材Cを・・・
というような感じで50枚ほどあります。
これを一枚にまとめます。
列Aに名前、列Bからを機材名としたいんです。
たとえば山田さんが機材Aと機材Cを使用していたとしたら、「山田 ○  ○」という感じで、機材A、Cの列に○が付くようにしたいです。
各シートに記載されている名前は、重複しています。(佐藤さんはシート1にも2にも40にも名前があるというようなかんじです)
列の中に何回も同じ名前が出ることを避けたいです。

出来る限り短時間で終わらせたいのですが、なんせExcelの知識が乏しく困っています。
なるべく早くするよう言われていますので、初心者でも出来るような方法をご存じでしたら教えてください。
ちなみにしようするのはExcel2010です。

大雑把な質問で申し訳ございません、よろしくお願いいたします。

Aベストアンサー

一例です。
各シートはA列に名前が入力されているとしています。
(1)Sheet1~Sheet50の名前を新シート(1行目は見出しとしましょう)にのA2以下にコピー、
   新シートのA列を選択→データタブで重複の削除
(2)新シートのB2に=IF(COUNTIF(INDIRECT("Sheet"&COLUMN(A1)&"!A:A"),$A2),"○","")を入力、縦横にコピー
   因みにB1より右方向には機材名を入力して下さい。

Q複数シートの同じセル内容を1シートに順番に貼り付けたい

複数あるシートの同じ番地のセルをコピーして、1シートの一覧にしたいと思っています。簡単な方法があったら教えてください。

Aベストアンサー

次のようにしてはどうでしょう。
あるシートのA2セルから下方に例えばSheet1,Sheet2などとシート名を入力します。
B1セルには表示したいセル番地を例えばA1のように入力します。他にも表示させたい場合にはC1セルにセル番地を入力します。
そこでB2セルには次の式を入力し右方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。
=IF(OR($A2="",B$1=""),"",INDIRECT($A2&"!"&B$1))

Q複数の同じフォーマットのファイルを新しいブックで一つのシートにまとめる方法

仕事で、各部署から送られてきた、同じフォーマットのファイル(シート1にのみデータ有)が50個近くあります。
それを新しいブックで一つのシートにまとめなくてはいけません。
地道にコピペするのは時間がかかるのでマクロで処理を行いたいと思います。
マクロでの処理方法ご存知の方、処理方法の載っているサイトをご存知の方、もしくはマクロより簡単な方法がありましたら教えてください。

あと、逆に一つのシートをいくつかのファイルに振り分けていく方法もご存知でしたら教えて下さい。
よろしくお願いします。

Aベストアンサー

すみません。質問を勘違いしていました。
>新しいブックで一つのシートにまとめなくてはいけません
でしたね。
Sub Sample1()
Dim buf As String, i As Long
Dim j
buf = Dir(Sheets("Sheet1").Range("A1").Value & "\*.xls")
Do While buf <> ""
Workbooks.Open Worksheets("Sheet1").Range("A1").Value & "\" & buf
Sheets("Sheet1").Range("A1:J1000").Copy
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Workbooks(buf).Activate
Application.CutCopyMode = False
Workbooks(buf).Close SaveChanges:=False
buf = Dir()
Loop
End Sub
で試してみてください。使い方などは
http://oshiete1.goo.ne.jp/qa4225063.html
を参照してみてください。同じ質問があったので気がつきました。

すみません。質問を勘違いしていました。
>新しいブックで一つのシートにまとめなくてはいけません
でしたね。
Sub Sample1()
Dim buf As String, i As Long
Dim j
buf = Dir(Sheets("Sheet1").Range("A1").Value & "\*.xls")
Do While buf <> ""
Workbooks.Open Worksheets("Sheet1").Range("A1").Value & "\" & buf
Sheets("Sheet1").Range("A1:J1000").Copy
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Workbooks(buf).Activate
Application.CutCop...続きを読む

Qエクセルで一つのブックにある複数のシートを一つのシートにまとめる。

エクセルで一つのブックにある複数のシートを一つのシートにまとめる。
各シートには同じ形式の表(大きさも同じ)が1枚ずつあります。
それを一つのシートに、縦に並べて表示したい。
シートが100枚ぐらいありますので、ひとつひとつコピーするのは
大変です。
よろしくお願いします。

Aベストアンサー

こんばんは。

VBA(マクロ)を使った方法の紹介です。

以下の参考URLをご覧ください。

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

Q複数のシートにまたがるデータをひとつのシートにまとめるには(VBA)

複数のシートにまたがるリスト形式のデータをひとつのシートにまとめるにはどのようなマクロを組めばよいのでしょうか。
具体的には
(1)Sheet1のリスト形式のデータ全てをコピーする
(2)貼り付け先のシート(統合シート)に貼り付ける
(3)Sheet2のデータ全てをコピーする
(4)統合シートの最終行の次に貼り付ける
(5)残りのシートについても(3)→(4)を繰り返す

よろしくお願いします。

Aベストアンサー

"統合"という名前のシートに、他のすべてのシートのリストデータを貼り付けます。
各シートのリストはA列から始まっているものとします。(違う場合はコードを修正してください)

Sub test01()
Dim sh As Worksheet
Dim lr As Long, tlr As Long
For Each sh In Worksheets
If sh.Name <> "統合" Then
lr = sh.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
sh.Rows("1:" & lr).Copy
tlr = Sheets("統合").Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
Sheets("統合").Range("A" & tlr + 1).PasteSpecial
Application.CutCopyMode = False
End If
Next
End Sub

QEXCEL:複数シートから特定行を一覧化したい

【 EXCELで悩んでいます 】
複数のシートから特定の言葉の記入がある行だけ、
新規ワークシートへ自動で書き出したいのですが難儀しています。

当方エクセル初心者でして、
ピボットテーブルもマクロも組んだことがありません。
工程数がかかってもいいので、できるだけ優しい方法を教えて下さい。

仕事で使うデータで、これがあると非常に助かります。

【 準備しているデータ 】
・参照したいデータシートは8枚
・それぞれ、同じフォーマットで内容が異なる60行弱の文字データ
(画像参照ください。このようなデータシートが8枚あります)

【 やりたいこと 】
8枚にも渡るシートの内容のなかから、
特定の文字が入っているもの(画像でいうと、G列「進捗」の「作業中」になっている行)だけを自動的に抽出して
一枚の新規シートにまとめて一覧化したい

【 環境 】
EXCEL 2003
Windows

面倒かとは思いますが、
お優しいエクセルマスター様がいらっしゃると信じております。
どうかよろしくお願い申し上げます。

Aベストアンサー

>なお、MackyNo1様がお考えの記録マクロの利用する方法もよろしければお知らせいただきたいのですがよろしいでしょうか?

以下のようなキー操作でマクロを記録してください。

まず、準備として、1行目に項目名を記載した集計シートを作成しておきます。

「ツール」「マクロ」「新しいマクロの記録」から、以下の操作をします。

集計シートのA2セルからデータ挿入範囲を大きめに選択し、Deleteキーで以前のデータを削除します(最初は何も入力されていませんが)。
次に1枚目のシートの項目行を選択し、データの入力されているA2セルからデータ範囲を大きめに選択し(予定最大データ数分まで選択します)、「データ」「フィルタ」「オートフィルタ」で必要なデータを表抽出し、Ctrl+Cでコピーして、集計シートのA2セルでCtrl+Vで貼り付けます。
2枚目のシートからは以下の操作を行います。
同様に、2枚目のシートのA2セルから、データ範囲を大きめに選択してからフィルタで抽出したデータをコピーし、集計シートのA1セルを選択して、Ctrl+↓のショートカット操作を行い、マクロの記録ツールバーの「記録終了」右にある「相対参照」のアイコンをクリックし、↓キーを押してから、相対参照ボタンをもう一度押して捜査隊参照を解除してCtrl+Vで貼り付けます。
この操作を8枚目のシートまで行い、最後にすべてのシートのフィルタモードを、「データ」「フィルタ」「オートフィルタ」で解除すれば完成です。

最終セルの選択にCtrl+↓のショートカット操作を利用すること、相対参照の記録ボタンをA列の一番下のデータの1つ下のセルを選択すること、各シートのデータ範囲を最初に選択しておいてからフィルタ操作するところが記録マクロ操作のポイントです。

>なお、MackyNo1様がお考えの記録マクロの利用する方法もよろしければお知らせいただきたいのですがよろしいでしょうか?

以下のようなキー操作でマクロを記録してください。

まず、準備として、1行目に項目名を記載した集計シートを作成しておきます。

「ツール」「マクロ」「新しいマクロの記録」から、以下の操作をします。

集計シートのA2セルからデータ挿入範囲を大きめに選択し、Deleteキーで以前のデータを削除します(最初は何も入力されていませんが)。
次に1枚目のシートの項目行を選択し、データ...続きを読む

Qエクセル:複数シートのデータを一覧シートに自動的に表示させるには?

エクセル:複数シートのデータを一覧シートに自動的に表示させるには?

こんにちは。
以前同じ質問をさせて頂いたのですが、締め切った後で試したところ
どうにもうまくいかず(試さずに締め切ってしまった私が悪いのですが・・)、
もう一度質問させていただきます。

複数シート(6シート程度)に同一形式のリストがあり、あるシートに入力していくと
同一ファイル内の「一覧シート」に自動的にID番号順に表記される(※下記参照)
というようにしたいと考えております。

何かよい方法はありますでしょうか?
お知恵を拝借できれば幸いです。宜しくお願い致します。

(例)
Sheet1
ID 日付     名前  達成度・・・(項目=15項目ぐらい)
1 2010/10/17  山田  A
4 2010/10/30  鈴木  A



(それぞれのシートに100個ぐらいのリスト)

Sheet2
ID 日付     名前  達成度・・・
2 2010/10/17  佐藤  C
3 2010/10/20  中村  B




一覧シート
ID 日付     名前  達成度・・・
1 2010/10/17  山田  A
2 2010/10/18  佐藤  C
3 2010/10/20  中村  B
4 2010/10/30  鈴木  A


エクセル:複数シートのデータを一覧シートに自動的に表示させるには?

こんにちは。
以前同じ質問をさせて頂いたのですが、締め切った後で試したところ
どうにもうまくいかず(試さずに締め切ってしまった私が悪いのですが・・)、
もう一度質問させていただきます。

複数シート(6シート程度)に同一形式のリストがあり、あるシートに入力していくと
同一ファイル内の「一覧シート」に自動的にID番号順に表記される(※下記参照)
というようにしたいと考えております。

何かよい方法はありますでしょうか?
...続きを読む

Aベストアンサー

 横から失礼します。

>やはり関数では難しいですか・・・

 作業用シートと併用すれば、関数でも可能です。

 まず、例えば

作業用シート

という名称のシートを設けて下さい。
 次に、作業用シートのA列に、

A1セル  Sheet1
A2セル  Sheet2
A3セル  Sheet3
A4セル  Sheet4
 ・    ・
 ・    ・
 ・    ・

という具合に、元リストが存在しているシートの名称を、入力して下さい。
 この時、シート名を並べる順序は特に気にされなくても結構ですが、同じ名称を重複して入力する事はなさらないで下さい。(途中に空欄や、存在しないシート名が入力されていても、そのシート名を無視して、処理する事が可能です)
 次に、作業用シートのC1セルに、次の数式を入力して下さい。

=IF(ISERROR(INDIRECT(INDEX($A:$A,MOD(INT(ROW()-0.5),MATCH("/",$A:$A,-1))+1)&"!IV65536")),"",IF(ISNUMBER(INDIRECT(INDEX($A:$A,MOD(INT(ROW()-0.5),MATCH("/",$A:$A,-1))+1)&"!A"&INT((ROW()-0.5)/MATCH("/",$A:$A,-1))+1)),INDIRECT(INDEX($A:$A,MOD(INT(ROW()-0.5),MATCH("/",$A:$A,-1))+1)&"!R"&INT((ROW()-0.5)/MATCH("/",$A:$A,-1))+1&"C"&COLUMNS($A:A),0),""))

 次に、作業用シートのB1セルに、次の数式を入力して下さい。

=IF(ISNUMBER($C1),$C1+COUNTIF($C$1:$C1,$C1)/COUNTIF($C:$C,$C1),"")

 次に、作業用シートのB1~C1の範囲をコピーして、同じ列の2行目以下に、全ての元リストの行数の合計を、上回るのに充分な行数に、貼り付けて下さい。
 そして、作業用シートのC列全体をコピーして、C列よりも右にある列に貼り付けて下さい。(例えば、元リストがO列まである場合には、それよりも2列多い、Q列にまで貼り付けて下さい)

 次に、一覧シートの
A1セルに「ID」、
B1セルに「日付」、
C1セルに「名前」、
D1セルに「達成度」、
と入力して下さい。
 次に、一覧シートのA2セルに、次の数式を入力して下さい。

=IF(ROWS($1:1)>COUNT(作業用シート!$B:$B),"",VLOOKUP(SMALL(作業用シート!$B:$B,ROWS($1:1)),作業用シート!$B:$IV,COLUMNS(作業用シート!$B:C),0))

 次に、一覧シートのA2セルをコピーして、同じ行のA列よりも右にあるセルに貼り付けて下さい。(例えば、元リストがO列まである場合には、O列にまで貼り付けて下さい)

 次に、B2セルの書式設定の表示形式を、日付にして下さい。
 最後に、作業用シートの2行目をコピーして、3行目以下に貼り付けて下さい。

 これで準備は完了です。
 後は、作業用シートのA列に名称を入力した、各シートの元リストにデータを入力すると、そのデータが自動的に一覧シートに、ID順に表示されます。

 横から失礼します。

>やはり関数では難しいですか・・・

 作業用シートと併用すれば、関数でも可能です。

 まず、例えば

作業用シート

という名称のシートを設けて下さい。
 次に、作業用シートのA列に、

A1セル  Sheet1
A2セル  Sheet2
A3セル  Sheet3
A4セル  Sheet4
 ・    ・
 ・    ・
 ・    ・

という具合に、元リストが存在しているシートの名称を、入力して下さい。
 この時、シート名を並べる順序は特に気にされなくても結構ですが、同じ名...続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QExcel 2シートを1枚に印刷したいです…

こんにちは☆
タイトルの通りですが、Excel 2シート(各A4サイズ)をA3用紙1枚に印刷したいのですが、できません。

印刷する2シートを選択→印刷→プロパティ→集約(2ページを1ページに集約)としているのですが…
今の所、それぞれ各1枚ずつ計2枚が印刷されます。
使っているプリンターはRicohのimagio Neo C380 という機種です。
わかる方、ご享受よろしくお願いしますm(_ _)m

Aベストアンサー

>印刷する2シートを選択→印刷→プロパティ→集約(2ページを1ページに集約)
プリンターで1ページ印刷を指定しても2ページで印刷されてるんですね。オフィス用のプリンターはよく知らないのですが、A3を指定して「割り付け印刷」ってできないですか?確認してみてください。

>その2シートの行や列幅がそれぞれ違う場合に、ネックになりそうで・・・
1.Excelのカメラ機能で可能です。どちらかのシートで印刷エリアを選択してコピーします。
2.もう一方のシートの貼り付けたいところで、「shift」キーを押しながら「編集」をクリック、「図の貼り付け」または「図のリンク貼り付け」をクリックします。
3.『図』と貼り付けられ、一つのシート上に2つの表が並びます。あとはページ設定でA3にしてください。

Qエクセルの複数のファイルの結合

エクセルのファイル(複数シート)が複数あります。
その複数のファイルを一つにまとめ、各ファイルのシートをすべて一つのファイルにまとめたいのですが、どなたか
教えてください。

Aベストアンサー

こんにちは。
残念ながら、>開かずに結合する方法・・・はありません。

というのは、ファイルの中でのデータの並び方が決まってるのですが、ファイルがエクセルである事を示すデータや、所有者、保存日時の記録等々、シートのデータだけじゃない部分が沢山あり、その並び順もエクセルのファイル形式で決まっているので、途中に変な物が出てくるとエクセルのファイルとしてまともに認識できなくなって、読み込めなくなってしまうので、単純にファイル同士を繋げたのではダメなのです。
テキストファイルのような文字だけなファイルなら、そういうツールはありますが、エクセルのような、細かく中身が決められているファイルではこれは無理です。

結局、必要な部分だけを拾い出して、所定の場所にくっつけるという操作が必要になり、その一番簡単な方法は、開いてシート毎に移動するという操作になり、結局、皆さんが仰る方法が一番簡単になるのです。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング