web-dev-qa-db-ja.com

セル内の数値を使用してセル参照を生成する

私がやりたいことは、データベースを使用することでより良く達成できるかもしれませんが、データベースに関する経験は非常に限られており、情報を変更する必要はほとんどありません。

私が持っているのは、各行に8セルの関連データがあるシートです。

別のシートでやりたいことは、1つのセルに数値を入力し、下のセルのグループがその数値を使用して他のシートのデータを参照することです。

たとえば、Sheet1では次のようになります(図1)。

     |  A  |  B  |  C  |  D  |  E  |  F  |  G  |  H
-----+-----+-----+-----+-----+-----+-----+-----+-----
 101 | Dep | 700 | Sta | 100 | Sta | 300 | Dep | 900

シート2で行番号を1セルに入力することで達成したいのは、たとえば以下の8セルのデータをコピーすることです(図2)。

     |  A  |  B  |  C  |  D  |
-----+-----+-----+-----+-----+
  1  | "Row Number"          |
-----+-----+-----+-----+-----+
  2  | =A# | =B# | =D# | =C# |
-----+-----+-----+-----+-----+
  3  | =E# | =F# | =H# | =G# |
-----+-----+-----+-----+-----+

そして、はい、上記の式は他のシートを参照していないことを知っています-これはスペースを節約するためでした。

上記の例の行を使用する場合、これは次のようになります(図3)。

     |  A  |  B  |  C  |  D  |
-----+-----+-----+-----+-----+
  1  | 101                   |
-----+-----+-----+-----+-----+
  2  | Dep | 700 | 100 | Sta |
-----+-----+-----+-----+-----+
  3  | Sta | 300 | 900 | Dep |
-----+-----+-----+-----+-----+

したがって、上記の例(図3)では、A1の数値をセル参照の一部として自動的に使用して他方からのデータを印刷するには、セルA2-D2およびA3-D3に数式として入力する必要がありますシート。

それは理にかなっていますか? 1行目のシートには300行以上、2行目のシートには70行x 7ブロックの列があるので、そう願っています。

最後に、可能な限りVBAなどのプログラミング言語を避けたいと言いたいです。

15
Escribblings

INDIRECT()関数を確認してください。

2番目のシートの例のセルA2には、次のように入力します。

=INDIRECT("Sheet1!"&"A"&$A$1)

次の例に従って、グリッドで必要に応じて「&」A部分をSheet1の参照列B、C、Dなどに変更して、この式を他のターゲットセルに適用するように展開します。

=INDIRECT("Sheet1!"&"B"&$A$1)
=INDIRECT("Sheet1!"&"C"&$A$1)
=INDIRECT("Sheet1!"&"D"&$A$1)

これらの数式は、セルA1で選択した「行番号」を参照し、関連するデータをSheet1からSheet2に取得します。

20
Derrik

INDIRECT関数を使用してこれを行うことができます

Returns the reference specified by a text string. 
References are immediately evaluated to display their contents. 
Use INDIRECT when you want to change the reference to a cell within a 
formula without changing the formula itself.

http://office.Microsoft.com/en-gb/Excel-help/indirect-HP005209139.aspx

2
Sam