• ベストアンサー

エクセルの複数、複数シートを一つにする

エクセルの複数のシートを一つにしたいと思います。 それぞれのタイトルは若干順序や内容がちがいます。 どうもミスが多いので、ミスなく早く一つにできる方法はありませんか。 また、複数のよく似たエクセルを一つにする場合は、 一つのエクセルにシート別にして、複数シートから1シートにする方法が早いでしょうか。 マクロなどは使えないので、力技の方法とミスを少なくする方法をご紹介いただけるとたすかります。

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

  • ベストアンサー
  • acha51
  • ベストアンサー率41% (436/1042)
回答No.6

acha51補足です 項目は、1シートめは A列     B    C    D   E     F 管理番号 資産番号 製品番号 購入先 購入金額 管理担当者 2シートめは、 A列      B    C    D    E    F    G 管理番号 製品番号 製品名 購入先 購入金額 登録番号 管理担当者 ということなので 1シートめを以下の列挿入の変更します A列     B    C    D   E     F    G    H 管理番号 資産番号 製品番号 ブランク 購入先 購入金額 ブランク 管理担当者 2シートめを以下の列挿入の変更します A列     B    C    D   E     F    G    H 管理番号 ブランク  製品番号 製品名 購入先 購入金額 登録番号 管理担当者 1シートと2シートを統合してA列をキーにしてならべかえると A列     B    C    D   E     F    G    H 管理番号 資産番号 製品番号 ブランク 購入先 購入金額 ブランク 管理担当者 管理番号 ブランク 製品番号 製品名  購入先 購入金額 登録番号 管理担当者 このようになるので2シートから結合した行この例では下段の行のうち重複していない 製品名と登録番号を上段に移しこの行を削除する 結果は以下のように統合できます A列     B    C    D   E     F    G    H 管理番号 資産番号 製品番号 製品名 購入先 購入金額 登録番号 管理担当者 4の同一項目が連続してくるの意味はこのように同じ内容のA列が連続してくるということです 回答投稿の確認画面でみると、列記号とセル内容がずれて見えます もしずれていれば位置を修正して確認お願いします

prettySue
質問者

お礼

初心者の質問に、ご丁寧に回答いただきまして、どうもありがとうございました。 とても丁寧に説明していただいたので、よく理解できました。 実際にやってみます。

その他の回答 (5)

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

例えば次のようにすればよいでしょう。 シート1では項目名がA1セルからF1セルに入力され、シート2では項目名がA1セルからG1セルまで入力されているとします。 シート2に有ってシート1に無い項目名をシート1に入力します。シート1のG1セルには製品名、H1セルには登録番号と入力します。 そこでシート2のデータをシート1に入力するのですが、その際にはシート1のデータが入った最終の行が100行目だとしたら101行目のA101セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF(Sheet2!$1:$1,A$1)=0,"",IF(INDEX(Sheet2!$A:$G,ROW(A2),MATCH(A$1,Sheet2!$1:$1,0))="","",INDEX(Sheet2!$A:$G,ROW(A2),MATCH(A$1,Sheet2!$1:$1,0)))) これでシート2のデータが項目ごとに振り分けられてシート1にまとめて表示されることになります。

prettySue
質問者

お礼

ありがとうございました。 関数でデータを入力できれば、ミスはないし効率よいですね。 勉強すれば、自力で自在に必要な計算式ができるのでしょうか。 がんばってみます。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 ANo.3です。  先ほどの回答で、何故か添付画像を貼付ける事が出来ませんでしたので、もう1度添付致します。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 もし、全てのシートにおいてA列の項目名が必ず「管理番号」となっている場合には、次の様な方法があります。  まず、適当な未使用のシートを2枚用意します。  その2枚のシートの内の1枚(ここでは仮に「補助」という名称のシートであるものとします)のA2以下に、 A2セルに  Sheet1 A3セルに  Sheet2 A4セルに  Sheet3 という具合に、元データが存在する各シートのシート名を入力して下さい。  次に、補助シートのB2セルに次の数式を入力して下さい。 =IF(ISNUMBER(MATCH("管理番号",INDIRECT("'"&$A2&"'!A:A"),0)),MATCH("管理番号",INDIRECT("'"&$A2&"'!A:A"),0),"")  次に、補助シートのC2セルに次の数式を入力して下さい。 =IF($B2="","",MAX(MATCH("゛",INDIRECT("'"&$A2&"'!A:A"),-1),IF(COUNTIF(INDIRECT("'"&$A2&"'!A:A"),"="&MAX(INDIRECT("'"&$A2&"'!A:A"))),MATCH(MAX(INDIRECT("'"&$A2&"'!A:A"))+1,INDIRECT("'"&$A2&"'!A:A")),0))-$B2)  次に、補助シートのE2セルに次の数式を入力して下さい。 =IF($C2="","",SUM($C$1:$C1)+1)  次に、補助シートのB2~E2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。  次に、前述の未使用のシートの内のもう1枚(ここでは仮に「統合」という名称のシートであるものとします)の1行目に、管理番号、製品番号、製品名、購入先、購入金額、登録番号、管理担当者、等々の各項目名を並べて入力して下さい。  次に、統合シートのA2セルに次の数式を入力して下さい。 =IF(ISERROR(1/(INDIRECT("'"&INDEX(補助!$A:$A,MATCH(ROWS($2:2),補助!$E:$E))&"'!R"&ROWS($2:2)-VLOOKUP(ROWS($2:2),補助!$E:$E,1)+INDEX(補助!$B:$B,MATCH(ROWS($2:2),補助!$E:$E))+1&"C"&MATCH(A$1,INDIRECT("'"&INDEX(補助!$A:$A,MATCH(ROWS($2:2),補助!$E:$E))&"'!R"&INDEX(補助!$B:$B,MATCH(ROWS($2:2),補助!$E:$E)),FALSE),0),FALSE)<>"")),"",INDIRECT("'"&INDEX(補助!$A:$A,MATCH(ROWS($2:2),補助!$E:$E))&"'!R"&ROWS($2:2)-VLOOKUP(ROWS($2:2),補助!$E:$E,1)+INDEX(補助!$B:$B,MATCH(ROWS($2:2),補助!$E:$E))+1&"C"&MATCH(A$1,INDIRECT("'"&INDEX(補助!$A:$A,MATCH(ROWS($2:2),補助!$E:$E))&"'!R"&INDEX(補助!$B:$B,MATCH(ROWS($2:2),補助!$E:$E)),FALSE),0),FALSE))  次に、 次に、統合シートのA2セルA2セルをコピーして、 次に、統合シートの各データを表示させる全てのセルを含むセル範囲に貼り付けて下さい。

prettySue
質問者

補足

ありがとうございました。 幸いA列は同じ内容なので、この式を使えそうです。 これは高レベルの関数でしょうか。 自力で自在にこうした関数式が作れるとよいのですが。 図入りで解説していただいたので、とてもわかりやすかったです。

  • acha51
  • ベストアンサー率41% (436/1042)
回答No.2

<< エクセルの複数のシートを一つにしたいと思います 超力技です、シートAにシートBを統合するとします 1.各シートの列の項目をあわせる 2.シートBをコピーしてシートAの最下行の次に張り付ける    〃 をコピーする前にセルに色をつけておくと間違えにくい 3.全体を選択して、キーとなる列でデータ、並び替え 4.同一項目が連続しているので1行にまとめる    <<複数のよく似たエクセルを一つにする場合は、 一つのエクセルにシート別にして、複数シートから1シートにする方法が早いでしょうか。 そのほうが間違えにくいでしょう 

prettySue
質問者

お礼

ご回答ありがとうございました 手順がよくわかりました。これなら私にもできそうです。 4.同一項目が連続しているので・・・ の意味がよくわかりませんでした。初心者の質問ですみません。

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

表の組み換えに当たる作業だろうが、VBAでやら無いと、関数では複雑になりすぎる。 関数ではシートの行数に違いがあると式が複雑になる。 もうひとつ本当の内容はともかく、項目列の場所がシートごとに違うと面倒だ。 >タイトルは若干順序や内容がちがいます。 タイトルが違うとは、項目の順序がシートごとに違うのか。 >内容がちがいま どういう風に違うのか。 例えば住所1で、あるシートでは市区町村まで、在るシートでは町名まで入れている場合など。 同じ列にまとめて良いのかどうか。 こういうことを注目することが大切で、作業を左右するという認識のない質問で、回答や解説は大変だ。 質問に模擬実例でも3シートぐらい挙げれば、ある程度推察は付くが、例を挙げない質問者がおおいので困る。 この質問は、エクセルのバージョンさえも書いてない。 ーー、 VBAでは集約シートの最終行がとらえられるから、その下の行から元シートデータを(順次)貼り付ければ仕舞い。 これをVBAで組む。 列(順序)構成が違うと単純に貼り付けられず、各シートの列ごとに組み替えないといけない。 違いが少なければ手作業で統一を済ませて、VBAを簡単にする手もある。 ーー この点よく考えて、また処理はVBAでも良いのか、質問をしなおしたら。 ついでにシート数の概数と、データ行数の概数も書いておいたら。

prettySue
質問者

お礼

あまりにも稚拙な質問ですみませんでした。 項目は、1シートめは 管理番号 資産番号 製品番号 購入先 購入金額 管理担当者 2シートめは、 管理番号 製品番号 製品名 購入先 購入金額 登録番号 管理担当者 たとえばこのような感じで、違うのです。 エクセルバージョンも確認しないと、バージョンでかなり機能がちがうんですね。 稚拙な質問におつきあいいただきまして、ありがとうございました。 VBAもよくわからないので、勉強します。

関連するQ&A

  • Excelの複数のシートを一つのシートに結合したい

    一つのエクセルファイルに複数のシートがあります。 このシートを一つのシートにまとめる効率の良い方法を教えてください。 なお、私は、マクロ等の使用方法がわからないため、マクロでご回答 される場合は、お手数ですが、手順を記載してください。 宜しくお願い致します。

  • 複数のエクセルシートの表をひとつにまとめたい。

    複数のエクセルシートの表をひとつにまとめたい。 複数のエクセルシートにある表を、1つのシートにまとめたいのですが、いい方法はありますか? マクロは使い方がわからないので、簡単な方法があると助かります。

  • 複数のエクセルを1つのエクセルに

    複数のエクセルを1つのエクセルにしたいです。 また、1つのシートにそれぞれのエクセルファイルを追記でまとめたいです。 どのエクセルファイルも1行目はタイトル行となっています。 エクセルのファイル名は変えても問題ありません。 これはマクロで可能でしょうか? 他の方法がありましたら、教えてください。 よろしくお願いします。

  • 複数のシートで同時にシートの保護をしたい。

    複数のシートで同時にシートの保護をしたい。 エクセルデータを一括して保護を掛けるやりかたはマクロで紹介されているページを多く拝見したのですが、一部を同時にというのはやはり難しいのでしょうか? 私はマクロのこともあまり詳しくはないのですが、可能な方法があれば楽なのにと思い投稿しました。 現在、出勤表をエクセルで製作しております。 1日~31日までシートが31枚 それを個人別にまとめているシートが20枚 さらに一覧状態にしているシートが3枚 となっており、個別にまとめているシート20枚にキーワード付きシート保護をしたいのです。 キーワードは全シート20枚共通として。 セル設定で日付シートのロックを外す方法も考えたのですが、検索語の置き換え機能が使えなくなるため いい方法が無いかと思っております。 宜しくお願い致します。

  • EXCELで、複数シートの同じセルを一覧にして表示する方法

    EXCELで、複数シートの同じセル(たとえば、複数シートのB5)を、べつの1枚のシートに特定の列に表示する方法を教えてください。シートには名前が付いていますが、コピーしたい順に左から並んでいます。 下記にINDIRECT関数を使用する方法が記載されていましたが、マクロを使用した方法を教えてください。 マクロに関しては全くの素人ですが宜しくお願いいたします。 http://oshiete1.goo.ne.jp/qa1727203.html

  • 複数のシートから重複するデータを別シートに抜き出す

    こんにちは。 Excel2007です。 複数のシート(現在はSheet1からSheet4ですが、最終的にはSheet10ぐらいまでになります)に蔵書データが入っています。 A列21行目から作者名、B列21行目から本のタイトル、C列21行目からページ数と以下、値段、ISBNなどJ列まで蔵書データが入っています。本棚ごとにSheet1、Sheet2と分かれて入力されています。 この複数のシートから本のタイトルが重複するものを別シートに抜き出すにはどうしたらいいでしょうか? 重複データを削除するマクロや関数は探せたのですが、複数のシートにまたがっている場合は探しきれませんでした。 何かいい解決方法があればご教授下さい。

  • エクセル マクロ 複数シートを集約

    複数のエクセルシートの同一範囲を集約シートに纏めたいのですが どうやったらできるのか教えてください。 (1)範囲はA1からL216まで (2)シート数は毎回変動 (3)集約シートにはシート1の内容の次の行からシート2の内容というふうに  ずらずらとデータを並たい 以上3点が要望としてあります。 いくつかのマクロを組み合わせて一つのマクロを作ろうとしたところ この部分だけうまくいかずに困っております。

  • Excel一覧シートから複数シートの作成

    EXCEL等で、情報一覧シートから、複数の個別情報シートを作りたいです。 例えば、情報一覧シートに10人の名前・住所の情報があるとすれば、 個々の名前・住所が指定のセルに記入されたシート10枚を、一覧の順に作る、という感じです。 下記リンクと逆のことを行えばいいと思いますが、方法がわかりません・・・ http://oshiete1.goo.ne.jp/qa3550265.html?ans_count_asc=20 情報一覧シートはCSVなので、excel以外にaccessなどでも可と思います。 マクロなどはわからないのですが、 出来る場合の方法、マクロの場合の簡単な解説などを ぜひ教えてください。よろしくお願いします。

  • エクセル、複数枚のシートを一枚にまとめるには

    エクセルで、一つのファイルに10枚以上ののシートがあったとします。 これを、一枚のシートにまとめたいのですが・・。 マクロは、まったくわかりません。 コピーで持ってくる方法はあるのですが もっと簡単に出来る方法はありますか。 あれば、教えてください、よろしくお願いします。

  • エクセル 1つのシートを日付で複数シートに分けたい

    エクセル2007を使用してます。初心者です。 1行名に列ごとのタイトルが入ってます。 A列~S列まで色々とデータが入っており、M列に日付(20140618のように)が入ってます。 このシートを日付ごとに別シートに分けたいのですが、何か計算式かもしくはマクロでできますか? できれば、R列に入っている数字を日付のあとにつけて自動で保存できると大変助かるのですが・・・。(20140618-2 というような感じ) マクロの扱い方も良く分からないので教えていただけると助かります。

専門家に質問してみよう