Googleスプレッドシートで累計を求める場合、「=B3+C2」とか「=SUM(B$3:B3)」といった式を下方にコピーして連ねるのが常套手段です。
しかし実は1つのセルへの入力だけで各行に累計を表示することができます。
しかし実は1つのセルへの入力だけで各行に累計を表示することができます。
- SUMIF関数とARRAYFORMULA関数を組み合わせて累計を求めることができます。
手順
集計対象となるデータがB3:B12に記録されています。
そこでC3セルに次のように入力します。
=ARRAYFORMULA(SUMIF(ROW(B3:B10),"<="&ROW(B3:B10),B3:B10))
SUMIF関数を使い、データの行番号(ROW関数)を条件として集計を行います。第2引数(条件式)にもROW関数を用い、ARRAYFORMULA関数を併用することで複数の条件を一度に与え、複数の結果を得ています。
次の式を一度に実行していると考えればわかりやすいかと思います。
=SUMIF(ROW(B3:B10),"<="&ROW(B3),B3:B10) =SUMIF(ROW(B3:B10),"<="&ROW(B4),B3:B10) ・・・ =SUMIF(ROW(B3:B10),"<="&ROW(B10),B3:B10)
結果はこうなります。
なお、SUM関数とOFFSET関数を用いる方法も考えられそうですがARRAYFORMULA関数と併用できないためうまくいきません。
ちなみに、データの列と三角行列との行列積で累計を求めるという方法もあります。
やや複雑ですので詳しくは省略しますが、三角行列の生成については次の記事をご覧ください。