web-dev-qa-db-ja.com

セルの文字列値を使用して同じ名前のワークシートにアクセスする

ワークシートは2つあります:SummarySERVER-ONE

概要ワークシートのセルA5に、値SERVER-ONEを追加しました。

その隣のセルB5では、A5の値を使用して、G7の値を同じ名前のワークシート(SERVER-ONE)に表示する数式が必要です。

私は手動で使用できます:

='SERVER-ONE'!G7

ただし、これを動的にしたいので、簡単にワークシートを追加できます。

私は喜びなく明白なことを試みました:

='A5'!G7

助言がありますか?

45
KingBob

INDIRECT()を使用できます。

これは基本的に文字列を受け取り、参照として扱います。あなたの場合、次のものを使用します:

=INDIRECT("'"&A5&"'!G7")

二重引用符は、中にあるものが文字列であることを示すためのものであり、ここではA5のみが参照です。

88
Jerry

INDIRECT関数が必要です:

=INDIRECT("'"&A5&"'!G7")
12
JosieP

あなたの質問を解決したかどうかはわかりませんが、これはドラッグ時に行番号を増やすのに役立ちました。

= INDIRECT("'"&$A$5&"'!$G"&7+B1)

B1は0から始まるインデックス番号を指します。

そのため、インデックスセルと間接式を含むセルの両方をコピーアンドドラッグすると、間接値が増加します。おそらくIndex関数を使用して、よりエレガントなカウンターを作成することもできます。

お役に立てれば。

5
Adrian

INDIRECTを使用したソリューションを次に示します。数式をドラッグすると、それに応じてターゲットシートから異なるセルが選択されます。 R1C1表記を使用し、列AからZでのみ機能することに限定されません。

=INDIRECT("'"&$A$5&"'!R"&ROW()&"C"&COLUMN(),FALSE)

このバージョンは、数式が配置されているセルに対応するターゲットセルから値を取得します。たとえば、式を 'Summary'!B5に配置すると、元の質問で指定された 'SERVER-ONE'!G7ではなく、 'SERVER-ONE'!B5から値を取得します。ただし、行と列にオフセットを簡単に追加して、どのような場合でも目的のマッピングを実現できます。

4
John Barber

ROW()関数を使用して、この式を垂直方向にドラッグできます。 Dの前に$がないため、水平方向にドラッグすることもできます。

= INDIRECT("'"&D$2&"'!$B"&ROW())

私のレイアウトには、列ヘッダーとしてシート名(B2C2D2など)があり、各シートの列Bから複数の行の値をマップします。

3
LJW

INDIRECTは、使用する機能です。そのようです:

=INDIRECT("'"&A5&"'!G7")

INDIRECTを使用すると、式をテキスト文字列として作成できます。

2
Dave Sexton

@ user3010492がテストしたと思いますが、固定セルA5-> $ A $ 5およびG7の固定要素-> $ G7でこれを使用しました

=INDIRECT("'"&$A$5&"'!$G7")

また、かっこで囲むと、他の式でうまくネストされます。

1
Kriskros

これはZ列に対してのみ機能しますが、これを水平および垂直にドラッグできます。

=INDIRECT("'"&$D$2&"'!"&CHAR((COLUMN()+64))&ROW())
0
AxelC