2020年3月29日日曜日

エクセルで他のエクセルファイルを汎用的にリンクするには

・エクセルで他のファイルをリンクするとき問題になるのが、リンク先の場所が変更なった場合ですが、そういった場合でも、対処できるように、パスを設定シートのセルに保存しておくようにするといいと思います。
・さらに、汎用性高めるため、ひとつのリンクセルの式をそのままコピペすることができるようにしておくと便利です。

 そこで、次のようなものを作成してみました。まず、設定シートに以下のようなパスをいれておきます。
 設定!B2セルに E:\Mydocuments\[Book3.xlsx]Sheet1


つぎに、これを読み取るセルは次のようになります。
 =INDIRECT("'"&INDIRECT("設定!$B$2")&"'!"&ADDRESS(ROW(),COLUMN()))
 このようにすることで、このセルを他の場所にコピペすることで、広い範囲のリンクを表示させることができます。
 ただし、リンク先のエクセルファイルは開いている状態になっている必要があります。

なお、この式をつくりながらきづいたのですが、INDIRECTとADRESS、ROW,COLUMNは組み合わせて使うと便利な場面がいろいろありそうです。
たとえば
=INDIRECT("Sheet2!"&ADDRESS(ROW(),COLUMN()))
なども、式のコピペが簡単にできますが、単に別シートの位置のデータのリンクを生成するだけです。ROWやCOLUMNは数値なので、2倍して足したり引いたりなどして、リンク先の任意の場所のデータを1行おきや1列おきに参照したりも可能になります。

0 件のコメント:

コメントを投稿