ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Excel(エクセル)活用コミュの1列からなるデータを参照して複数の列に表示させたい場合

  • mixiチェック
  • このエントリーをはてなブックマークに追加
初めまして。

会社で顧客コード(アルファベッド1文字+9桁の数字)を管理する上で、現在の方法では大変な手間がかかり悩んでおります。
どうにかしてGWまでには解決したく一週間取り組みましたが、私の知識不足のため結局は良い方法が見つかりませんでした。

そこで、知恵をお借りしたく質問させて頂きます。

Sheet1のA5からA1000までの顧客コードが入力されたデータを、ブック内、別の複数のシート(件数に応じてシートは増やしています)の15行目から25件ずつ、それぞれB列、D列、F列、G列にデータの通りに反映させたいのです。

行の追加や削除、コピペを実行しても編集後のデータの通り表示させる方法はないでしょうか?

ちなみに、Excel2003を使用しております。

言葉足らずでしたら申し訳ございません。
どなたか詳しい方がいらっしゃいましたら、よろしくお願いいたします。

コメント(18)

>行の追加や削除、コピペを実行しても編集後のデータの通り表示させる方法はないでしょうか?

コレの意味が判りません。
これらの事をやって、データ通りに表示に出来なかった経緯があると思うのですが、具体的にどうなってしまって困っているのでしょうか?
そして、それをどの様にしたいのでしょうか?

単純に顧客コードでコピペ先を割り振るという考えで良いのでしょうか?

また元データのB〜Gには直接データが書き込まれているのでしょうか? それとも関数や条件付書式などがあったりしませんか?
 
早速のご回答ありがとうございます。

現在は関数は使わず、手動で入力用のSheet1から25件ずつコピーして別シートの表内の4列に割り振っています。

ただ、別シートの表にコピーした後に顧客コードを削除しなければならない事が多く、そのたびにコピペで25件ずつ4列にデータを詰めていく作業がとても大変なのです。。

例えば、セル参照では入力用のSheet1上でセルごと削除した場合、#REF!のエラーになってしまうため何か良い方法がないかと思い質問させて頂きました。

顧客コードがデータ通りに4列に割り振る事ができれば問題はないです。

説明が不慣れで申し訳ないです。

また、元データには関数や書式などは書きこまれておりません。

よろしくお願い致します。
INDEX関数やINDIRECT関数などを利用すれば
Sheetの枚数、列番号、行数を元に
参照してくることは可能だと思います
セル番地を直接指定する訳ではないので
セルの削除や追加をしても問題ないはずです
ご回答有難うございます!

INDEX関数については、ネットを参考に試しましたがデータの削除を行うと次の列に重複するデータが入ってきてしまい、断念してしまいました。

ちなみにそのとき、B15には
=INDEX(Sheet1!$A$5:$A$1000,ROW(B1),1)

次のD15には
=INDEX(Sheet1!$A$30:$A$1000,ROW(D1),1)

と入れていました。

そして試しにSheet1の入力データからA5を行ごと削除すると、D15に入力したはずの値は、
=INDEX(Sheet1!$A$29:$A$1000,ROW(D1),1)

と自動的に変更されていたため、重複データが発生するなどで結局どうすればいいか分かりませんでした。。

大変初歩的な質問ではあるかと思いますが、引き続きご教示いただければと思います。
>ちなみにそのとき、B5には
最初の説明だと15行目からということでしたが
B15セルではなくB5セルですか?

とりあえず、最初の説明通り15行目から25件ずつということで進めます

例えばですが、どこか(例えばA1セル)にSheet番号を振っておいて
それと列番号、行番号を元に参照する行を求める
A1セルに 1 と入力しておいて
B15セルに =INDEX(Sheet1!$A:$A,ROW()-10+((($A$1-1)*4+COLUMN()-ROUNDUP((COLUMN()-1)/2,0)-1)*25),1)
B15セルをB15:B39までコピー
B15:B39をコピーし、D15セル、F15セル、G15セルに貼り付け

同様に次のSheetのA1セルに 2 を入力し
B列、D列、F列、G列の15行目にも先程のB15:B39を貼り付け

というようにしてはどうでしょう
素朴に感じたことを書きます。

Sheet1にある内容を別シートにコピーする方法について、いろいろお話が進んでいるようですが、なぜ、コピーして副本を持つようなことをしなければならないのでしょう?

もしかして、副本を持たなくても済むようなデータ処理の進め方があったりして。

現場を見ていないので、この場合に当てはまるかどうかは分かりませんが、解決に向けての選択肢の一つにはなりうると思いますが、いかがでしょう?


顧客コードとは、言わばマスタですよね。ひとつの仕組みの中でマスタの副本をいくつも持つのは、どこか不自然さを感じてしまいます。エクセルファイルの構造から見たら、いくら別のシートでも、所詮はひとつのブックの中のこと。ひとつのブック内にはマスタはひとつだけ持てばよいと思うのですが。
別シートからの参照なのか。
B15=INDEX(Sheet1!$A:$A,ROW()-10)
D15=INDEX(Sheet1!$A:$A,ROW()+14)
F15=INDEX(Sheet1!$A:$A,ROW()+39)
G15=INDEX(Sheet1!$A:$A,ROW()+64)
それぞれ下にフィル
で十分ですね。難しく考える必要はない。
コピーと書いているけど、本来は参照であって、
それができないため、毎回コピーしていたのが実状かと。
また、25件づつ何かの処理をしたいという要望を理解してあげないと。
> マリ男さん

大変詳しく説明してくださってありがとうございますexclamationexclamation
本日実際に試してみたところうまくいきました。

こんなにも作業が楽になるとは思わず感激しています。

無事解決いたしました。

本当にありがとうございました。
>17
上手くいったのであれば、良かったです

ログインすると、残り8件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

Excel(エクセル)活用 更新情報

Excel(エクセル)活用のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。