
Excel の質問: シート A にシート B にリンクされた数式があります。シート A のセルの内容を変更して、ワークシート名を「検索して置換」せずに、シート B からシート C またはシート D へのリンクを変更したいと思います。何かアイデアはありますか?
答え1
これは、セルの内容を使用してアドレスを作成する間接関数を使用して行うことができます。数式が他のシートの同じセルを指していると仮定すると、たとえば、Sheet1 のセル B1 が Sheet2 と Sheet3 のセル B1 を参照し、参照するシートが Sheet1 の A1 にある場合、Sheet1 の B1 に次のように入力できます。
=INDIRECT("'"&A$1&"'!"&ADDRESS(ROW(),COLUMN()))
その後、コピーして他のセルに貼り付け、相対参照を取得できます。
Indirect は揮発性関数であることに注意してください。つまり、常に再計算されるため、ワークブックに多数存在すると、処理速度が大幅に低下します。
答え2
INDIRECT関数を使うことができます。
通常、セルは次のように参照します。
=Sheet1!A1
INDIRECT 関数はテキストを受け取り、それをセル参照に変換します。
=INDIRECT(C1&"!A1")
ここで、C1 にはワークシートの名前が含まれます。