- ベストアンサー
Excel2003で最初のシートからいくつかのシートへ順番で反映させるには?
Excel初心者なのですが、どなたか分かりやすく説明をお願い致します。 シート1のA1セルに名前、B1セルに生年月日、C1セルに性別、D1セルに身長、E1セルに体重などと横に個人データを入力していき、A2、A3と名前の順で100名分のデータを主で管理するとして、シート2にはその個人表として違う書式のものにA1からE1までのデータが反映するものを作り、シート3にはA2からE2、シート4にはA3からE3と同じ名前の順で100名分反映させたいのですがどなたか良い方法を教えて下さい。m(_ _)m
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
初心者といっているワリには、難しいことを聞いていますよ。 シートが別になると関数のセルの複写による、参照番地の変化の機能が使えません。 だからエクセルは本課題には向いてないのです。 シートのコピーの機能を使うことになるのかなと思いいます。 方法は (1)INDIRECT関数利用(回答既出) (2)行番号指定 の(2)を説明する。 例データ Sheet1 の A1:D6 名前 生年月日 性別 身長 a1 b1 c1 d1 a2 b2 c2 d2 a3 b3 c3 d3 a4 b4 c4 d4 a5 b5 c5 d5 ーー Sheet2に B列 C列 姓名 a3 <-第2行 生年月日 b3 性別 c3 身長 d3 の上記の項目見出しと 下記関数式 C2には =INDEX(Sheet1!$A$1:$F$100,$G$1+1,1) C4には =INDEX(Sheet1!$A$1:$F$100,$G$1+1,2) C6には =INDEX(Sheet1!$A$1:$F$100,$G$1+1,3) C8には =INDEX(Sheet1!$A$1:$F$100,$G$1+1,4) を入れる。 実際では、入れるセルはレイアウトを考えて配置する。 G1に3と入れると上記のようになる。 ーー このシートをコピーする。 G1にSheet1の行数に当たる数を入れる。 上例ではG1に、3を入れると3行目のデータが表示されている。 ーー 名前を指定して入れるなら、F1に氏名を入れ G1には=MATCH(F1,Sheet1!$a$1:$a$100,0)と入れると良い。 ==== シートコピーを100枚なども大変で VBAでやるような課題と思うが、無理して関数利用にしている。
その他の回答 (1)
- fujillin
- ベストアンサー率61% (1594/2576)
完全に自動化は出来ませんが、INDIRECT関数を使用すれば少しは楽にできそうです。 例)シート3が(シート1の)2行目を参照するとして 1)シート3のF1に参照する行(この場合は2)を記入しておく 2)シート3のA1~E1に「=INDIRECT("Sheet1!A" & $F$1)」~「=INDIRECT("Sheet1!E" & $F$1)」を入力 (「Sheet1」にはシート1の名前を入れておく。) (これで、シート3のA1~E1にシート1のA2~E2が表示される。) 3)シート3内でのデータ参照は2)でできた1行目を参照する形にしてシート全体を作成する。 4)シート3が完成したら、コピーしてシート4を作成。 5)シート4が参照したい人(行番号)を、シート4のF1に入れる(例:3) (F1に3を入れると、シート4は参照する行がシート1の3行目になる) ・・・・・・・・・・4)5)の繰返し・・・・・・・・・・・ 注)説明上、1行目を「参照する行」の表示場所にしましたが、もちろん他の行でも可能です。 また、この行が表示されていると邪魔でしょうから、セットした後は、非表示行にしてしまえば気にならなくなると思います。 100回のシートのコピーとF1に1~100まで入力するのを自動化するのにはマクロが必要となります。
お礼
ご回答ありがとうございますm(_ _)m 即回答いただきましたが、他の業務でなかなか作業ができずお礼ができませんでした。100回のシートのコピーとF1に1~100まで入力は面倒ですが、だいぶ楽になりました。ありがとうございます。
お礼
ご回答ありがとうございますm(_ _)m 即回答いただきましたが、他の業務でなかなか作業ができずお礼ができませんでした。 No.1回答でも助かりましたが、より分かりやすく説明していただきありがとうございます。 こちらのやり方でうまく業務が効率化されました。 また困ったことがありましたら、よろしく御願いします。