私がやりたいことは、データベースを使用することでより良く達成できるかもしれませんが、データベースに関する経験は非常に限られており、情報を変更する必要はほとんどありません。
私が持っているのは、各行に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などのプログラミング言語を避けたいと言いたいです。
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に取得します。
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