私は、ヘッダ、数字の束からなるExcelの列を作成し、それからそれらの数字の合計を下部に表示したいと思います。合計が合計を超える新しい数字の挿入に適応するようにします。このようなもの:
Numbers
1
2
5
10
18 Total
後でリストの真ん中に10個の新しい番号を挿入する場合は、合計に自動的にそれらを含めるようにします。
私はSUM()
関数が列全体を合計することができることを知っています、しかしもし合計がその列にもあるならば、それは循環参照について不平を言います。合計を超える数を合計するにはどうすればよいですか。
関数ROW()
とCOLUMN()
は現在のセルの行と列を与えます。 ADDRESS()
関数でそれらを使用して、現在の列の先頭から合計より上の行までの範囲を表す文字列を作成します。その後、INDIRECT()
関数を使用して、その文字列を実際の範囲に変換し、SUM()
関数に渡します。セル全体の式は次のようになります。
=SUM(INDIRECT(ADDRESS(1,COLUMN())&":"&ADDRESS(ROW()-1,COLUMN())))
スプレッドシートの任意のセルに配置すると、そのセルの上の列にあるすべての数値の合計が算出されます。
実際には、あなたは普通の=SUM()
であなたが望むことをすることができます
Excelシートに次のデザインがあるとします。
\| A | B |
-+-----+-----+
1| 1 | |
2| 2 | |
3| 3 | |
4| 4 | |
5| 5 | |
6| | |
7| 15 |Total|
A7
が=SUM(A1:A5)
であると仮定すると、Excelが=SUM
の範囲をそれに応じて拡大するので、自由に行を追加できます。
今、行2、3、および4を選択し、行を挿入するとします。結果は次のようになります。
\| A | B |
--+-----+-----+
1| 1 | |
2| | |
3| | |
4| | |
5| 2 | |
6| 3 | |
7| 4 | |
8| 5 | |
9| | |
10| 15 |Total|
A10
は=SUM(A1:A8)
と同じです。そのように、あなたは今、自由に新しい番号を挿入することができます。
この答えはLibra Officeに固有のものですが、Excelでも同様に機能するはずです。
基本的に、行/列を固定するように明示的に言及したい場合は、その行/列と一緒に$を言及する必要があります。
*他のセルに数式をコピーすると、Libra Officeが数式の値をどのように変更すべきかを自動的に判断するような作り付けのアルゴもあります。
それで、すべての行を追加する必要があるとしましょうG1:GN =>ここでNは現在の行番号です。このためには、最初の値の行を固定し、他の値をにしておきます。したがって、式は次のようになります。
= SUM(G $ 1:G1) - > 1行目で、数式を他のセルにコピーアンドペーストできます。
Libra Officeは自動的にG1を最初の値として保持し、すべてのセルについて2番目の値をG2、G3などに動的に変更します。
わかりました、Indirect()は揮発性があります。シートが大きくなるにつれて遅くなります。それがあなたに合っていれば、あなたはもっと使うべきです
=Sum($A1:A1)
この式を下にドラッグすると、常にA1から現在(または前のセルなど)のセルまでの範囲になります。揮発性がなく、非常に高速で、はるかに簡単です。