- 締切済み
エクセルの複数のシートを新しいシートにまとめる方法
お分かりになる方教えてください。 エクセルの複数のシートを新しいシートにまとめたいのですが、各シートのフォーマットは同じではありません。 シート1の列には、IDや組織名 シート2の列には、氏名やふりがな シート3の列には、住所などが書かれています。 列はいかしたままにしたく、まとめた後は ID・組織名・氏名・ふりがな・住所と並べるようにできればと思います。 また、フォームからボタンを押せば、一度にまとめられるように作成したいのですが、何か良い知恵がありましたら教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- mar00
- ベストアンサー率36% (158/430)
新しいシートに A1 =Sheet1!IDのセル番地 B1 =Sheet1!組織名のセル番地 C1 =Sheet2!氏名のセル番地 D1 =Sheet2!ふりがなのセル番地 E1 =Sheet3!住所のセル番地 としてオートフィルドラッグでいいんではないでしょうか。 フォームからボタンを押せば、一度にまとめられるように作成したい というのはマクロでやりたいという事でしょうか。 データの量が多く、シートも他にたくさんあるというなら話は別ですが、 この程度の事ならマクロは必要ないと思いますよ。 違っていたらすいません。
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート1からシート3までは1行目には列の項目名が氏名、ID、住所などがあり、2行目から下方にデータがあるとします。また、A列目にはシート1からシート3まで同じ項目名のデータがあるとします。例えば氏名またはIDなど。 シート4にまとめのデータを表示させるとしてA列にはシート1のA列のデータをコピーし貼り付けます。 次にB1から右の列にはシート1からシート3までにある項目名で並べたい順序を考えてシートに入力されているのと同じ項目名をコピーして貼り付けるか入力をします。 その上でB2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF($A2="","",IF(COUNTIF(Sheet1!$1:$1,B$1)=0,"",VLOOKUP($A2,Sheet1!$A:$N,MATCH(B$1,Sheet1!$1:$1,0),FALSE))&IF(COUNTIF(Sheet2!$1:$1,B$1)=0,"",VLOOKUP($A2,Sheet2!$A:$N,MATCH(B$1,Sheet2!$1:$1,0),FALSE))&IF(COUNTIF(Sheet3!$1:$1,B$1)=0,"",VLOOKUP($A2,Sheet3!$A:$N,MATCH(B$1,Sheet3!$1:$1,0),FALSE))) これでデータが整理されますね。なお、シート4のA列に名前などのデータがあってもその名前などが他のシートにない場合にはセルにエラーが表示されます。 ご参考になりましたら幸いです。
お礼
ご回答ありがとうございます。 大変参考になりました。 データ数が少ない場合にこちらを活用させていただければと思います。
- tohga
- ベストアンサー率67% (51/76)
私も詳しくないので「私だったら」という方法を書きます。 シート数が少ないときは、面倒でもコピペ。 シート数が多いときは関数を使います。「=sheet名!セル番地」として、あとはオートフィルでしょうか。 工夫しだいで、もっと楽になるかもしれません。 「フォームからボタンを押せば一度にまとめられる」とのことですが、どのようにまとめたいのかいまいちよく分かりません。 例えば住所が「神奈川」の人だけ抜き出したいならば、住所の入力方法を工夫してオートフィルタでできると思います。 あとはvlookupなども使えるかもしれません。 それ以上に洗練されたフォームを希望ならば、ちょっと私の手には負えません。 どのくらい回答になっているか分かりませんが・・・
お礼
ご回答ありがとうございます。 vlookupなども考えましたが、フォームを使用したものがいいな、と思っておりました。 ありがとうございました。
お礼
ご回答ありがとうございます。 シート数やデータの量が多かったので マクロを使い、ボタンを押したらできるようにできればと思っておりました。