web-dev-qa-db-ja.com

Excelテーブルの構造化参照を使用して現在の合計を作成するにはどうすればよいですか?

Excelのテーブル構造化参照を使用して現在の合計(現在の行以上の合計)を作成する方法を探しています。

私は古い行/列ベースの方法を使用してそれを行う方法を知っています:
=SUM($A$2:$A2)

そして、構造化参照を使用して列全体を合計する方法を知っています。
=SUM([WTaskUnits])

[#ThisRow]を使用して現在のセルを取得する方法は知っていますが、テーブルの最初の行を取得してSUMで使用する方法がわかりません。

18
studgeek

実際、私はINDEXを使用してそれを行う1つの方法を理解しただけですが、より構造化された参照方法があるはずだと感じています。それでも、ここでこれを実行しようとしている他の人にとっては、私が思いついたものです:
=SUM(INDEX([WTaskUnits],1):[[#This Row],[WTaskUnits]])

INDEXを使用して列の最初のセル(行/列の例では$ A $ 2に相当)を取得し、通常は[#This Row]を使用して現在の行のセルを取得します(行/列の例ではA2に相当) 。

32
studgeek
=SUM(OFFSET([WTaskUnits],0,0,ROW()-ROW([[#Headers],[Running Total]])))

このテーブルには、[WTaskUnits]と[RunningTotal]の2つの列があります。上記の式は、要求に応じてセルの範囲を合計します。

OFFSET関数の最初の引数は、合計の開始点を定義します。第4期、

ROW()-ROW([[#Headers],[Running Total]]

テーブル内の現在の行の番号の便利なイディオムです。

2
James Bayley

これは古いスレッドだと思いますが、ついに私が提供したい解決策があります。

=IF(ISNUMBER(OFFSET([@Balance],-1,0)),OFFSET([@Balance],-1,0)+[@Amount],[@Amount])

最初のデータ行のインスタンスでは、オフセットは数値ではないヘッダーを指しているため、結果はAmount列のみになります。

残りの行は、Balanceの前のOFFSETと現在の行Amountを示します。

2
Michigan Al

= SUM(...)の代わりに= SUBTOTAL(109、...)を使用すると、数式はテーブルのフィルターを尊重することに注意してください。

2
sstiebinger

次の式を使用します。

   =SUM( INDEX([Values],1) : [@Values] )

INDEXを使用して[値]列の最初のセルを返し、現在の行への構造化参照を使用して、合計する範囲の2番目のセルを返します。

ソース

1
Darush

より構造化されているとはどういう意味かわかりませんが、それを行う方法は問題ありません。テーブルヘッダーの下のセルから範囲を開始することもできます。

OFFSET([[#Headers],[WTaskUnits]],1,0,1,1):

しかし、私はそれをより構造化された、単に異なるとは呼びません。列の行の部分的な範囲のテーブル参照がないので、私の提案はあなたが持っているものに固執することです。

1
Sleette

Excelのピボットを使用して現在の合計を作成しました。

  • 合計値->合計...
  • 値を->現在の合計として表示

私の2セント、5年遅れ(そして多分ポイントを逃している)。

0
AndréB