- 締切済み
エクセル関数INDIRECTについて
エクセル関数 セルの参照についての質問です。 ひとつのBookの中に、AとBのシートがあります。 Aにデーターを入力し、Bに必要な部分だけセルの参照(INDIRECT)関数を使ってデーターを反映させていたのですが、Bのシートだけを別のBookとして保存した場合、INDIRECTの関数を使った部分がエラーの表示になってしまいます。(よく考えればAを参照しているので当たり前なのですが。。。) Bのシートを別のBookに保存しても参照しているデーターが消えない方法(関数)はあるのでしょうか? ご存知の方がいらっしゃいましたらご教授下さい。 (説明が下手ですみません)
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- MackyNo1
- ベストアンサー率53% (1521/2850)
>INDIRECT("年齢")という単純な関数を入れてみました。 >参照元のシートが同じブックに入っていた時点ではうまくいった!と思っていたの >ですが、別のブックにしてみると全てエラーになってしまい悩んでいました。 セル範囲に「年齢」という名前を呈したのでしょうか? その場合「NDIRECT("年齢")」という数式には意味がないように思います。 すなわち「年齢」だけでそのセルを参照することができます。 逆にわざわざINDIRECT関数でセル範囲を参照すると、他ブック(開いていない)のセルを参照する場合はエラー表示されます。 今回の場合は、INDIRECT関数を使用せずにそのまま他ブックのセル番地を参照する数式にすれば(数式を入力するときは、=を入力してセル範囲を選択)、そのブックを開いていなくてもエラー表示が出ずに、データの更新に応じた値を返すことができます。
- imogasi
- ベストアンサー率27% (4737/17069)
元のシート(仮にAとする)データと関係の無いセル(例でI1セルとします)に、今は無駄な事ですが、自分のブックのフルパスの文字列を入れて置きます。 自分のブックがあたかも他ブックのような式にして、INDIRECT関数の()内にいれます。 ーー 次にAのシートだけを別のBookとして保存した場合(そのシートをBとして)にX1セルの文字列を1箇所だけ(これがメリット)正しく編集します。 其れで正しい値が出るか見てください。 参考 http://www.excel-jiten.net/formula/ref_other_books.html の最後 ーー ただし 元シートもそれに備えたし式にして置く必要があるとか、 Bシートのデータの全セルが式設定になり、望ましいことでない。 Bシートで別ブックAシートの素データだけ参照するとか(式は生かす)、 Aシートで式を消して値化してしまって、コピー貼付けするとか考えたほうがよかろう。出来るからといって、複雑化するのは、才におぼれる策だ。 ーー 同じフォルダ内の例として、 [01化B.xls]ブックのSheet1で I1に[01化B.xls]Sheet1! A2:A4 2 式 =INDIRECT($I$1&"A"&ROW()) 4 8 これをSheet4などに 式 =INDIRECT($I$1&"A"&ROW()) などと式複写で作っておく。 Sheet4のコピー先のBook1に行って I1には[01化B.xls]Sheet1! が入っている A2に =INDIRECT($I$1&"A"&ROW()-1) 2 以下同じく 4 8 となっているはず。
- MackyNo1
- ベストアンサー率53% (1521/2850)
どのようなINDIRECT関数の数式を使われたのでしょうか? 実際に使用されている数式によって、INDIRECT関数でなくても、単純なセル参照で対応できる場合がありますので、使用されている関数をそのままコピー貼り付けするなどして、具体的状況を説明されたほうが的確な回答が得られる思います。
お礼
INDIRECT("年齢")という単純な関数を入れてみました。 参照元のシートが同じブックに入っていた時点ではうまくいった!と思っていたのですが、別のブックにしてみると全てエラーになってしまい悩んでいました。
INDIRECT関数は、外部Bookを参照する場合、そのBookを開いておく必要があります。 つい最近似たような質問があり、そちらの方はマクロで解決しました。参考までにURLを載せておきます。 http://soudan1.biglobe.ne.jp/qa5457010.html
お礼
親切なご回答ありがとうございました。 上記の方法で試してみたいと思います。 関数を使い始めたばかりで分からない事だらけですが、日々勉強していきたいと思います。