Excelで(セルのコンテンツを介して)名前付きテーブル列を動的に参照する


12

Excel 2007でExcelテーブル列を動的に参照するにはどうすればよいですか?名前付きテーブルの名前付き列を参照したいのですが、参照される列はセルの値によって異なります。

Excelにテーブルがあります(Table1と呼びましょう)。その列の1つとその列COUNTの番号を参照します。A1次の結果を達成できるように、別のセル()の値から参照列を動的に識別したいと思います。を変更するA1と、Table1 [ DynamicallyReferencedColumnName ]を数える式が新しい参照に更新されます。

例:

  • 場合A1= names    次いで式が等しくなりますCOUNT(Table1[names])
  • 場合A1= lastname次いで式が等しくなりますCOUNT(Table1[lastname])

を使用してみました=COUNT(Table1[INDIRECT("$A$1")])が、Excelで数式にエラーが含まれています。

これどうやってするの?


PS私は関連があるかもしれないこのMSDNドキュメントを見つけました: Excel再計算


どのバージョンのExcelを使用していますか?
CharlieRB 2012

現在Excel 2007を使用
rcphq

この質問は、「構造化された参照の動的コンポーネントをExcelで参照する」と言い換えることもできると思います。
jiggunjer 2016年

回答:


13

あなたはほぼそれを持ってINDIRECT()いますが、あなたの論理は少しずれていました。代わりにこれを試してください:

=COUNT(INDIRECT("Table1["&A1&"]"))

覚えておくべき重要な点INDIRECT()は、最初の引数にはテキスト(つまり文字列)のみをとることです。したがって、テーブル参照のすべての部分をテキストとして関数に渡す必要があります。


確かにうまくいきました。テーブル全体を参照する必要がありました。これはうまくいった!ありがとう!
rcphq 2012

15

INDIRECTメソッドの使用は機能しますが、揮発性の関数であり、スプレッドシートに大きな計算上の影響を与える可能性があるため、可能な限り回避することをお勧めします。

あなたが望むものを達成する不揮発性の代替手段はINDEX / MATCHを使用することです

COUNT(INDEX(Table1, 0, MATCH($A$1, Table1[#Headers], 0)))

-ティム


優れた、私は実際に後でこの方法に出会い、それ以来それを使用しています。偶然にも、1ダース以上のシートで間接的に使用していた古いスプレッドシートの大幅な速度低下に気づき始めました。ありがとう!
rcphq 2014

2

最初のステップは、参照する列の名前を含むテキストセルを設定します(たとえば$ A $ 1)。$ A $ 1にはたとえば「Column2」が含まれます。

次に、$ A $ 1が参照する列の数を見つけるには、= Count(indirect( "Table1 ["&$ a $ 1& "]"))になります。

この間接的な方法は、テーブル参照のすべての部分を構築するために使用でき、たとえば、異なるテーブルからルックアップするように配置することもできます

ヒント。$ a $ 1セルが単一のテーブルのヘッダーを指すドロップダウンリストとして検証される場合、ヘッダータイトルの変更のテーブル内の列数の変更がピックアップされます。


1
(1)最初のステップ:などのセルに目的の列の名前を入力しますA1。  OPはすでにこれを行っており、質問の中でそう言っています。  (2)2番目のステップは、Excellllの回答の正確なコピーです。(4)A1有効な列名のドロップダウンとして構成することは良い考えのように見えますが、答えの最後の段落の残りの部分は理解できません。
スコット

1

Excelの構造化参照に関する非常に優れた記事を次に示します。これは、Excel 2010とExcel 2007で動作が少し異なるように見えます。

Excelテーブルでの構造化参照の使用

基本的には、テーブルを参照してから、テーブル内の列を参照します。

汎用Excelテーブル

この例では、次のように表1列1を参照できます。

=COUNT(Table1[Column1])

テーブルのヘッダー列に名前を付けることができます。Column1の名前をSalesに変更すると、式は次のようになります。

=COUNT(Table1[Sales])

うん、私のテーブルが適切に別の列で命名された、私が欲しいのは、私は、セルの値に応じて、何をしたい列このような何かExcelを伝えるための方法であり、=COUNT(Table1[A1])A1は、私がColumnNameにを入れたいセルである
rcphq
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.