0

これは私が今まで使ったことのない奇妙な機能なので、例を使わずに質問する方法がわかりません。

基本的に、この .xls ファイルにはデータシートを表す文字列の列があります。各行には、その列で指定されたデータシートに対応するデータがあります。私の説明が不十分な場合は、ここに例を示します。

Worksheet 1 : Worksheet 1 Value 1 : Worksheet 1 Value 2 : .......
Worksheet 2 : Worksheet 2 Value 1 : Worksheet 2 Value 2 : .......
etc...

現時点では、スプレッドシートでは、各列のワークシート参照を手動で更新してデータを入力する必要があります。つまり、すべてのセルについて、次の式でワークシート名を手動で入力する必要があります。

='Worksheet 1'!B111

これは機能しますが、多数のワークシートがあるため、明らかに最適ではありません。私がやりたいことは、セル 1 (ワークシート名) に入力し、他のすべてのセルに参照としてワークシート名を使用させることができるようにすることです。

Column A      : Column B : Column C : ...
"Worksheet 1" : =A1!B111 : =A1!B34  : ...
"Worksheet 2" : =A2!B111 : =A2!B34  : ...

最初の質問: これは可能ですか?

2 番目の質問: どうやって?

これがすでに回答されている場合は申し訳ありませんが、そもそも質問の仕方がほとんどわかりませんでした。

4

1 に答える 1

1

INDIRECT() 関数を使用できます。セルA1のテキストWorksheet 1で使用できます

=indirect("'"&$A1&"'!B111")

シート名にはスペースを含めることができるため、インダイレクトのテキストを一重引用符で開始し、セルにシート名を追加してから、終了の一重引用符、感嘆符、最後にセル参照を追加する必要があります。

列 A のすべてのセルが B111 を参照している場合は、数式をコピーして、列 A のシート名を変更します。数式をコピーして、コピーする前に B111 のセル参照を任意の値に調整します。

ワークシートにこれらの値を事前入力する場合は、マクロ レコーダーを起動して新しいシートを作成し、既存のシートに移動してすべてをコピーして新しいシートに貼り付け、マクロ レコーダーを停止します。これにより、必要なコードの開始点が得られます。

于 2013-05-19T02:07:28.123 に答える