- ベストアンサー
calcで顧客シートを作成する際の参照セルを自動的にずらす方法について
- openoffice.calcで顧客シートを作成している際に、参照セルを自動的にずらす方法はありますか?
- 顧客情報をまとめたsheet1から、sheet2に個人データ票を作成する際に、参照セルをsheet1の2行目からずらす方法が知りたいです。
- 項目はずらさずに、個人データ票の参照セルだけをsheet1の3行目に自動的にずらす方法が知りたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
質問文を2、3度読むが、良く頭に入らない。もっと すっきり内容を表現できると思う。下記に見本を書いてみるので勉強してください。また簡単な実例を挙げて説明せよと言いたい。 それにCALCと書くと回答者は減るだろう。私もエクセルとこの程度のところは同じとして、回答する。 ーー <改良説明文> Sheet1 元シート 一覧表形式。顧客情報と難しく言わずとも、下記で判る A2:C5 氏名 住所 年令 やまだ 江戸川区 34 佐藤 三鷹市 54 田中 横浜市 28 以下略 ーー 第1人目山田について Sheet2 Sheet1の1人分(1行分)のデータで 1人1シート単票形式 (B2セル) =Sheet1!A2 (B4セル) =Sheet1!B3 (D6セル「) =Sheet1!C3 見た目は 山田 江戸川区 34 ーーー このSheet2をコピーして、第2人目佐藤の分を作りたい。 しかしそのままコピーしても山田の分のままで佐藤にならない。 ーーー 表計算ソフトでは、別シートに貼り付けても参照セルをずらしてくれるような仕組みはない。 (づれるのだが貼り付け先の先頭セルと元のセルの差を参照セルに加えるだけ。) だからシートを増やすことには慎重で在るべきなんだ。どういつシートの式複写を類推してはいけない。 別の仕組みを利用しないとダメ。これは初心者の問題でなく、上級の問題。 ーー まず行を示す番号を各シートで同じセル番地(位置)に入れることを目指す。 しかしVBAを使わないと、式複写による簡単な方法はない。 質問者には無理だろうから、手作業で各シートに連続番号をふる。 ーーー ポイントは、NDIRECT関数を使うこと。 ーー Sheet3(第2人目のシート) B1に2 B2の=INDIRECT("Sheet1!A"&B1+2) +2しているのは、Sheet1は1人目が3行目から始まるからだ C4に=INDIRECT("Sheet1!B"&B1+2) C6に=INDIRECT("Sheet1!C"&B1+2) 結果見た目は 2 佐藤 三鷹市 54 ーーー Sheet4はSheet3をコピーする。 B1が3だと 結果見た目は 田中 横浜市 28 のようになる。Sheet1の第6行目以下の人分も同じことを繰り返す。 説明の都合上、Sheet2は上記のような式になってはないが、本当はSheet2から上記の式で処理する。 ==== たの問題点 別シートにする意図は何か。 内容を見るだけなら、検索閲覧用の1人分のシートを用意して、名前などを指定し、内容を表示する、で済む。 全員の全データを見渡したいときは、表形式のSheet1が在る。 あとは印刷なんだが、印刷も、決ったシート1枚の中身を入れ替えて印刷、シート1枚の中身を入れ替えて印刷、を繰り返すのがよい。システムの経験が無いと、「1人分ずつ別シートにして100枚のシートを作る」などという質問者もいたが、面倒になるだけ。
お礼
様々ご指摘ごもっとも、いたらない質問に丁寧な回答をまずは感謝いたします。 初心者なのはご認識の通りで、昨日質問後もあれこれいじっていました。 変えたくない項目名(シート1の1行目)だけ絶対参照にして、ほかを複合参照にすればオートフィルでずらすことが出来るかと試したのですが、なかなか思うようにはいかず。 ご指導いただいたINDIRECT関数、ありがとうございます。さっそく試してみます。 なるほどこういうものがあったのか、と感心してしまいました。やはり一度はちゃんとマニュアルを買って勉強するほうがよさそうです。 別シートにしたかったのは、シート1の項目(列)が非常に多く見辛いのと、常に変動の可能性があるデータが多いため、そのたびに印刷するというわけにもいかず、うまく顧客管理が出来ないと感じていたので、顧客の要点をまとめたシート(データ変動にも自動対応するようなもの)が欲しかったというのが理由です。 いままで別の管理ソフトを使っていたのですが、作動が不安定で使い勝手もそれほど良くないため、完全に初心者でありながらエクセル(calc)で管理というのに挑戦してみたという顛末です。 しかし確かにご指摘の通り、100枚のシートを作ることを目指すより、1シートで済むよう工夫したほうがいいですね。 ご回答ありがとうございました。とても勉強になりました。