Excelのテーブル構造化参照を使用して現在の合計(現在の行以上の合計)を作成する方法を探しています。
私は古い行/列ベースの方法を使用してそれを行う方法を知っています:=SUM($A$2:$A2)
そして、構造化参照を使用して列全体を合計する方法を知っています。=SUM([WTaskUnits])
[#ThisRow]
を使用して現在のセルを取得する方法は知っていますが、テーブルの最初の行を取得してSUM
で使用する方法がわかりません。
実際、私はINDEXを使用してそれを行う1つの方法を理解しただけですが、より構造化された参照方法があるはずだと感じています。それでも、ここでこれを実行しようとしている他の人にとっては、私が思いついたものです:=SUM(INDEX([WTaskUnits],1):[[#This Row],[WTaskUnits]])
INDEXを使用して列の最初のセル(行/列の例では$ A $ 2に相当)を取得し、通常は[#This Row]を使用して現在の行のセルを取得します(行/列の例ではA2に相当) 。
=SUM(OFFSET([WTaskUnits],0,0,ROW()-ROW([[#Headers],[Running Total]])))
このテーブルには、[WTaskUnits]と[RunningTotal]の2つの列があります。上記の式は、要求に応じてセルの範囲を合計します。
OFFSET関数の最初の引数は、合計の開始点を定義します。第4期、
ROW()-ROW([[#Headers],[Running Total]]
テーブル内の現在の行の番号の便利なイディオムです。
これは古いスレッドだと思いますが、ついに私が提供したい解決策があります。
=IF(ISNUMBER(OFFSET([@Balance],-1,0)),OFFSET([@Balance],-1,0)+[@Amount],[@Amount])
最初のデータ行のインスタンスでは、オフセットは数値ではないヘッダーを指しているため、結果はAmount
列のみになります。
残りの行は、Balance
の前のOFFSET
と現在の行Amount
を示します。
= SUM(...)の代わりに= SUBTOTAL(109、...)を使用すると、数式はテーブルのフィルターを尊重することに注意してください。
次の式を使用します。
=SUM( INDEX([Values],1) : [@Values] )
INDEXを使用して[値]列の最初のセルを返し、現在の行への構造化参照を使用して、合計する範囲の2番目のセルを返します。
より構造化されているとはどういう意味かわかりませんが、それを行う方法は問題ありません。テーブルヘッダーの下のセルから範囲を開始することもできます。
OFFSET([[#Headers],[WTaskUnits]],1,0,1,1):
しかし、私はそれをより構造化された、単に異なるとは呼びません。列の行の部分的な範囲のテーブル参照がないので、私の提案はあなたが持っているものに固執することです。
Excelのピボットを使用して現在の合計を作成しました。
私の2セント、5年遅れ(そして多分ポイントを逃している)。