例えば。 A10〜A20をAgeと名付けましたが、A14と同じAge [5]を取得するにはどうすればよいですか。
「= A14」と書くことはできますが、「= Age $ 5」などを書くのが好きでした。
ExcelのIndex
関数を使用できます。
=INDEX(Age, 5)
「数式を同じ列の複数のセルに「ドラッグダウン」/適用できるように、相対選択でこの作業を行う方法があるかどうか知っていますか?」
このような選択を相対的にするには、INDEX式の行番号にROW式を使用し、INDEX式の列番号にCOLUMN式を使用します。これを明確にするための例を次に示します。
=INDEX(named_range,ROW(A1),COLUMN(A1))
名前付き範囲がA1で始まると仮定すると、この式は単に参照されたセルの行番号と列番号でその範囲にインデックスを付け、その参照はセルを下または横にドラッグすると変更されるため、配列全体を作成することができます簡単に細胞。
これを行うには、いくつかの方法があります。
1)名前付き範囲を使用したExcelテーブルの模倣
この例では、範囲に_A10:A20
_という名前を「年齢」と付けています。その範囲のセルをどのように参照したいかに応じて、(@ Alex Pが書いたように)=INDEX(Age, 5)
を使用するか、または同じ行にある「Age」の範囲のセルを参照するかあなたの式、ただ使用する:
_=INDEX(Age, ROW()-ROW(Age)+1)
_
これは、Excelテーブルに組み込まれた相対参照機能を模倣しますが、テーブルを使用したくない場合の代替手段です。
名前付き範囲が列全体の場合、式は次のように簡略化されます。
_=INDEX(Age, ROW())
_
2)Excelテーブルを使用
または、これをExcelテーブルとして設定し、Age列のヘッダータイトルとして「Age」と入力した場合、Age列の右側の列の式は次のような式を使用できます。
_=[@[Age]]
_
すべての行が同じで、通常は同じ行の他のセルを参照するシートでこのようなものを使用しますが、数式が複雑になると、他の列への参照が読みにくくなります。他の回答にあるトリックを試してみました。たとえば、「Sales」という名前の列AでINDEX(Sales;row())
として参照できますが、自分の好みには少し長すぎることがわかりました。
しかし、この特定のケースでは、Sales
を単独で使用しても同様に機能することがわかりました-Excel(2010年)は対応する行を自動的に取得するだけです。
他の範囲でも機能するようです。たとえば、A2:A11
に値があり、Sales
と名付けた場合、=Sales*0.21
でB2:11
を使用でき、同じ行の値を使用して、10異なる結果。
---編集:
また、 このページ :の素敵なトリックも見つけました。名前付き範囲は相対的な場合もあります。元の質問に戻って、値「Age」が列Aにあり、同じ行の数式でその値を使用していると仮定すると、Ageを$ A $ 2ではなく$ A2として定義できます。たとえば、B5またはC5では、実際には$ A5を参照します。 (名前マネージャーは、現在選択されているセルに関連する参照を常に表示します)
B10からB20が名前付き範囲のAgeになるように、左側に列を追加します。 A10 = 1、A11 = 2、... A20 = 11となるようにA10をA20に設定し、A10からA20の範囲にAgeIndexなどの名前を付けます。 5番目の要素は、配列式 "= sum(Age *(1 *(AgeIndex = 5))"を使用して見つけることができます。配列式であるため、shift + ctrl + returnを押して動作させる必要があります。ただ戻るだけではありません。