INDIRECTの関数を使って,他のエクセルファイル(以下Bファイル)を参照すると,
Bファイルを開いているときは正しく数値を表示しますが,
Bファイルを閉じるとエラー表示になります。

回避する方法は無いでしょうか?

(元ファイルと,Bファイルの両方から参照先に関する情報を得ているので,INDIRECT関数は,必須かと思っています)

参考までに3種類試したソースを示します。
できれば3は避けたいと考えています。
ご意見よろしくお願いします。


1:=INDIRECT("'[★★★Bファイル.xlsx]"&$A27&"'!o$7")
エラー表示になります。

2:=INDIRECT("'"&MID(CELL("filename",$A$1),1,FIND("[",CELL("filename",$A$1))-1)&"[★★★Bファイル.xlsx]"&$A26&"'!o$7")
エラー表示になります。(パスまで含めて参照)

3:='C:\Users\test\[★★★Bファイル.xlsx]213旅費'!O$7
正常(常に数値を表示します)

A 回答 (2件)

>回避する方法は無いでしょうか?


 ⇒ヘルプにも記載している通り、INDIRECT関数を利用での他ブック参照は
  参照先ブックが閉じられている限り、不可能です、
  唯一、3番の方法が可能になっています。

>元ファイルと,Bファイルの両方から参照先に関する情報を得ている・・
 ⇒ご質問者の問題点が不明、この辺りについてもう少し具体例などを補足しては
  如何でしょうか。    
    • good
    • 1

この回答へのお礼

回答ありがとうございます。
INDIRECT関数を使っている限り無理ということがわかっただけでも,めっけもんです。

コピペで簡単に作成するために,
元ファイルの中に,Bファイルのシート名称を用意してあるということです。
(甚だ簡単な説明ですが・・・)

3の方法で実施します。

またよろしくお願いします

お礼日時:2011/12/14 11:09

>回避する方法は無いでしょうか?


INDIRECT関数を使っている限り、回避できません。

外部データの取り込み機能で一時的にデータをすべて持ってくれば、同一ブック内になるので参照できます。
(閉じるときに取り込んだデータを破棄できます)
手間が状況に左右されるので、マクロで3のようにしてしまう方が簡単かもしれません。
    • good
    • 0

この回答へのお礼

回答ありがとうございます。
INDIRECT関数を使っている限り無理ということがわかっただけでも,めっけもんです。
3の方法で実施します。

またよろしくお願いします。

お礼日時:2011/12/14 11:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

注目の記事

ご飯・パンをおいしく味わう冷凍&解凍方法を教えて!

毎日食べるご飯やパン。食材の中で最も消費量が多いため、一度にまとめて炊いたり、まとめ買いをして冷凍保存しているという人は多いのではないだろうか。 「教えて!goo」の「冷凍ご飯、2ヵ月位は大丈夫ですか?」...

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ