• 締切済み

エクセルのリンクについて

こんにちは。 エクセルについての質問です。 通常、エクセルで他のエクセルからのデータを取得するとき ='[あああ.xls]sheet1'!$A$1 (「あああ.xls」のsheet1のA1セルのデータを取得) というような式を利用しますが、 この「AAA.xls」の部分を【指定したセルと同一名のものを取得】することは可能でしょうか? (すみません、意味がわかりませんよね。) 例えば… 「あああ.xls」というブックがあります。 そこに、セル「B1」に入力した名前と同じタイトルのブックの セル「A1」からデータを引っ張りたい。 「B1」が「いいい.xls」だったら「いいい.xls」のブックの「A1」から、 「B1」が「おおお.xls」だったら「おおお.xls」のブックの「A1」から データを持って来たいのです。 “=B1”というようなやり方ではさすがに無理なようで悩んでいます。 わかりにくい質問で申し訳ありません。 もしお分かりの方がいらっしゃいましたらお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

>指定したセルと同一名のものを取得 この表現は、判りますが、正しくは、 指定したセルの値(内容)と同一名のものを取得 です。 プログラムをやると、この考え(変数という)が常態化しますので、発想は良くあるものです。 ーー エクセルの関数では、=INDIRECT()という便利な関数があって、 「()内の文字列をセル番地として見て、そのセルを参照して」という意味になります。もちろん文字列の内容は、普通に入れる場合のルールは守った形の文字列で無いとなりません。 セルの番地の指定部分は (1)ブック名 (2)シート名 (3)シートのセル番地(狭義) の3つがありますが、本質問は(1)についてです。 それぞれうまくいくか実験をしてみてください。 本件以外であらゆる場合で、関数の中で、=INDIRECT(番地を表す文字列)が有効かどうか、疑問を持ってます。 ただ本件は大丈夫です。 ="["&B1&".xls]"&B2&"!A1" セルはA1で決まっている場合です。 などセルに表示してみて、人間がセルに直接入力する時と、1字1句同じ形か確認して、=INDIRECT(・・・)を外側にかぶせ(ネスト)ましょう。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.2

B1 に"あああ"として =INDIRECT("["&B1&".xls]Sheet1!$A$1") で、どうでしょう B1 に"あああ.xls"なら =INDIRECT("["&B1&"]Sheet1!$A$1") です

  • cagoo
  • ベストアンサー率50% (1/2)
回答No.1

concatinateとindirectを使えば解決しますよ。 たぶん、こんな感じ。 =indirect(concatinate("'[",B1,"]sheet1'!A1"));