- ベストアンサー
エクセル2007でシート内のデータを自動転記する方法
- Excle2007を使用している場合、シート1のデータをシート2に自動で転記したいと思っています。
- シート1には作業件名ごとに内容と作業者名が書いてある表があります。
- シート2は作業者ごとに従事した作業をまとめた一覧表で、ひとりにつき1ページです。シート1のデータをシート2の該当箇所に転記したいので、VBAの知識がなくても自動化できる方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
質問が長い文章で表現しているが、エクセルの経験が少ないのだろう。実は週に何度も質問が出る、よくあるパターンで >作業者名で抜き出し別シートに出したい、で判る。 エクセル関数は抜き出し問題は、既に回答があるように、式が長く複雑になり、エクセルの関数のよほどの勉強をして無いと、わかりにくいだろう。 フィルタで抜き出し、可視セルで捉えて、コピーして別シートに貼り付ける作業をすれば良いが、関数でやりたいのかな。 ーー 「imogasi方式」というのでやってみる. 作業列を1行余分に使ってしまうが。(下記例ではSheet1のE列) 例データ Sheet1 A-D列 元データ E列は関数の結果 略 略 説明 山田 山田1 運搬 鈴木 鈴木1 据付 田中 田中1 準備 田中 田中2 運搬 山田 山田2 保守 山田 山田3 E2の式は =D2&COUNTIF($D$2:D2,D2) 下方向に式複写 ーーー Sheet2に行ってB1は山田と入れておく C列C2は =INDEX(Sheet1!$A$1:$D$100,MATCH($B$1&ROW()-1,Sheet1!$E$1:$E$100,0),COLUMN()) D列に式を複写 C2:D2を下方向に式複写。 結果 A-D列 山田 略 略 説明 山田 運搬 山田 保守 山田 #N/A #N/A Sheet3でB1に氏名を田中にして同じ位置にSheet2の式を複写すると Sheet3 A-D列 田中 略 略 据付 田中 準備 田中 #N/A #N/A #N/A #N/A #N/Aを見えなくする方法は、IF文で関数式を入れる行-1がSheet1の山田の件数を越えるときは空白にする式にする。 他の例はGoogleで江も「imogasi方式」で照会すること。
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
マクロを使わない方法です。 シート1ではA1セルに日付、B1セルに作業件名、C1セルに内容、D1セルに作業者名とそれぞれの項目名が入力されており、それぞれのデータは下行に入力されているとします。 作業列をE列に設けることにしますが、その前にシート2では作業者ごとにページを変えていくわけですがその作業者について順序を付けてシート2を作成するとしたら例えばシート1のG1セルから下行に1,2,3・・と番号を入力してH1セルから下行には対応する作業者の名前を入力します。 その上でE2セルには次の式を入力して下行にオートフィルドラッグします。 =IF(D2="","",INDEX(G:H,MATCH(D2,H:H,0),1)+0.0001*COUNTIF(D$2:D2,D2)) 次にシート2ですが25行ごとに作業者が変わるようにとのことですので、A11セルには次の式を入力してD11セルまでオートフィルドラッグしたのちに21行目まで下方にオートフィルドラッグします。 =IF(OR(COLUMN(A1)=3,COLUMN(A1)>4),"",IF(COUNTIF(Sheet1!$E:$E,ROUNDUP(ROW()/25,0)+0.0001*(MOD(ROW(),25)-10))=0,"",IF(AND(MOD(ROW(),25)>10,MOD(ROW(),25)<=21),INDEX(Sheet1!$A:$C,MATCH(ROUNDUP(ROW()/25,0)+0.0001*(MOD(ROW(),25)-10),Sheet1!$E:$E,0),IF(COLUMN(A1)=1,1,IF(COLUMN(A1)=2,2,IF(COLUMN(A1)=4,3,0)))),""))) これで作業者1番のデータが表示されます。 次に上の式をコピーしてA36セルに貼り付けし、D36セルまでオートフィルドラッグしたのちに46行目まで下行にオートフィルドラッグします。 次にA61に貼り付けし、同様の操作を行います。 このように入力する位置が変わっても式そのものは変わりませんので、何人の作業者でも同様に対応することができます。最初はセル位置を決めて式を入力しオートフィルドラッグを繰り返しますので面倒ですが、一度作成してしまえば後は変更することもないわけですから有効に使うことができるでしょう。
お礼
KURUMITOさま アドバイスをありがとうございます。 ご教授いただいた式を参考に式を入れてみたのですが、どうもうまくいかなくて・・・ 入力ミスや参照先に間違いがあると思うので、よく考えてみます。 シート2に入れる式はすごいですね。 こんなに難しい長い式は使ったことがないです! ひとつひとつ確かめながら勉強させていただきます。 いただきましたアドバイスを参考にやってみてからお礼申し上げたいと思い 昨日おとといとがんばっておりましたら書き込みが遅くなってしまいました。 お詫び申し上げます。 ありがとうございました!
お礼
imogasiさま アドバイスをありがとうございます。 おっしゃるとおり、あまりエクセルには詳しくありません・・・ 少しでもできるようになりたいと思い、試行錯誤しながらやっております。 質問文が分かりづらかったようで申し訳ありません。 コピーして貼り付けることをはじめに考えたのですが、 結合しているセルがあちこちにあって貼り付けがうまくいかなかったため、 こちらでご助言をいただきに参りました・・・ アドバイスいただきました式を参考に式を入れてみましたら、 ちゃんと表示させることができました。 imogasi方式というのは、imogasiさまが考えられたものなんですね。 思いのほか簡単な式で解決できて驚いております。 検索をかけて、いろいろと参考にさせていただこうと思います。 アドバイスを参考にまずは自分でやってみてからお礼申し上げたいと思い、 ファイルと格闘しておりましたら書き込みが遅くなってしまいました。 お詫び申し上げます。 どうもありがとうございました!