参照するセルが変更された場合でも、セルの数式をロックします


9

これはD1にあります。

=sum(D3:D)

D1を常に列Dの残りの合計にしたい(D2はヘッダー)

時々、行を移動します。たとえば、8から3に移動すると、D1がsum(d4:d)に変わります。

D1を列の合計として保持します。

回答:


20

簡潔な答え

使用する =SUM(INDIRECT("D2:D"))

説明

Googleスプレッドシートは、行または列が挿入されたときにA1表記の参照を更新するため、参照が変更されないようにする必要がある場合は、文字列とINDIRECT()関数を使用して参照に変換する必要があります。

参考文献


だから、それはeval()のようなものですか?(php)
Doug Cassidy

@DougCassidy:そうは思いません。INDIRECTはセル/範囲の参照のみを返し、コードは実行しません。
ルベン・

2

INDIRECTを使用すると、新しい行または列を挿入したときに問題が発生し、すべてがシフトしました。そこで、OFFSETが使用されます。

使用する =sum(OFFSET(D2:D,1,0))

これにより、セルを挿入するとき、およびセルをコピーして貼り付けるときに、数式が正しく更新されます。


1

より簡単な方法:=sum(D$3:D)。$は開始行をロックします。


2
いいえ、これはOPが望むことを行いません。上に行を挿入すると、数式はに変更され=sum(D$4:D)ます。彼は、新しい行が追加/削除/移動された場合でも、3行目から開始したいと考えています。

あなたが正しいです。$は数式をコピーするときに値をロックするだけのようです
ダニエル

0

コンテンツを解釈する特定の機能には非常に時間がかかることを強く意識しています。間接は私が避けているものの1つです。

別のアプローチは、行範囲の最初と最後にバッファ行を置くことです。高さを小さくして、色で塗りつぶしたり、行を非表示にしたりできます。

したがって、行1はヘッダーです行2は現在行2にあるものです。行3はバッファー行です。D1 = sum(D $ 3:D)

これで、必要に応じて再配置できます。

フリーズしたヘッダーセクションに行3を含めると、スプレッドシートを並べ替えることもできます。固定された行には影響しません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.