• ベストアンサー

エクセルで多数のシートをまとめる方法

エクセルで10以上あるシートを一発でひとつにまとめる方法はあるでしょうか? コピー&ペーストを繰り返すしかないのでしょうか… 仕事で明日やらなければならないので、 お分かりになる方、是非教えてください!

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

まぁ既出回答にもあるように,10数回程度コピー貼り付けすることで,どうという作業ではないとは思います。 さておき。 ご利用のエクセルのバージョンが不明ですが,ご利用のOfficeのバージョンによっては 1.ワードを起動する 2.挿入のファイルからエクセルブックを指定する 3.添付図のようなダイアログが表示されたらラッキー成功です,ブック全体を指定して挿入する 4.Ctrl+Aで全体を選び,コピーして,エクセルの新しいシートに貼り付ける と一発でできます。 添付図のようにならなかったときは,出来ません。

moca2007
質問者

お礼

ご回答ありがとうございます。 ワードでできる方法もあるんだ!と思い、 早速やってみましたが、職場のエクセルでは添付していただいた図のようなものはでできませんでした。。 今後の参考にさせていただきたいと思います。 ちなみによく確認をしたら、シートは19シートありました。 地道にコピペしてみたいと思います。 ありがとうございました。

その他の回答 (4)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

仮に各シートは同じ項目で同じ表になっているとします。 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)))) これで各シートのデータがまとめのシートに表示されることになります。

moca2007
質問者

お礼

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

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.3

例えば、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]だとか。

moca2007
質問者

お礼

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

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

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

moca2007
質問者

お礼

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

回答No.1

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

moca2007
質問者

お礼

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

関連するQ&A

専門家に質問してみよう