〇行ごとの計算は多々あります。パターンをいくつかご紹介します。
■ 3行ごとの数を合計したい
N行ごとに表示する場合は、N÷Nで余剰が0なら…の条件を使います。3行ごとなら3の倍数を3で割ると除数が必ず0になり
ます。(3÷3、6÷3、9÷3…は割り切れるので余り0)なので余剰が0なら〜の式を作成します。
数式(1) |
結果(1) |
数式(2) |
意味 |
結果(2) |
=row(a3)/3 |
1 |
=mod(row(a3),3) |
3÷3の余剰 |
0 |
=row(a4)/3 |
1.33… |
=mod(row(a4),3) |
4÷3の余剰 |
1 |
=row(a5)/3 |
1.66… |
=mod(row(a5),3) |
5÷3の余剰 |
2 |
=row(a6)/3 |
2 |
=mod(row(a6),3) |
6÷3の余剰 |
0 |
オートフィルでは0,1,2…を繰りかえす。今回は人数は上(1,4,7…行目)なのでMOD(行番号,3)が1の数を合計。
↓B列の人数のみを合計しましょう。
【解説】3行ごとなので、MOD関数で3を除数にすれば3の倍数は必ず0で、1,2,0…を繰り返す
。今回人数は3行のうち1番目の行(1,4,7…行目)なので必ず1になる。
{=SUM(IF(MOD(ROW(B:B),3)=1,B:B))}
※例えば3行ごと末行(3,6,9…)の数を合計するなら{=SUM(IF(MOD(ROW(B:B),3)=0,B:B))}
となります。
■ 3行分ずつ合計したい
【解説】基点を3行ずつ移動し3行分ずつ
の範囲を合計します。OFFSET関数でROW(A1)*3-3としてオートフィルすれば
1×3-3=0,2×3-3=3,3×3-3=6…と3の倍数で
基点を動かせます。
=SUM(OFFSET(基準セル,ROW(a1)*●-●,0,●,1)
3行ずつ合計する →
SUM(OFFSET(基準,row(a1)*3-3,0,3,1))
■ 3行分ずつ合計したい(合計が末尾)
3の倍数ごとに上セル3つを合計する。3の倍数かどうかは3で割って除数が0かどうかで判別できる。MOD(ROW(a3),3)=0
=IF(MOD(ROW(A3),3)=0,SUM(OFFSET(A3,0,0,-3,1)),"")
合計の最初のセル(B3)にRow(a3)÷3の除数が0なら、そのセルを起点として-3分を合計する
行番号を指定(a3)するので、データがどこから始まっても式は同じ(Offsetの基点が異なるだけ)
■
3行ごとに連番を入れたい
3行ごとに連番なので、1,4,7,10行目に1,2,3,4…と入力したい場合です。3で割
ると数値は倍数ごとに連番になるので、3÷3=1
, 6÷3=2 , 9÷3=3
… これを利用します。倍数以外は小数点になるので【小数点なら空白】と
いう条件を作ります。整数は必ず1で割り切れます(=除数が0)が、小数は1で割ると余りがでるので(IF(MOD(○,1)=0,整数,小数点)とします。
IF(MOD(ROW(A3)/3,1)=0,ROW(A3)/3,"")
★小数点かどうかを判別…MOD(数値,1)=0なら整数
■ 3行ずつ連番を入れたい
3行ずつ3行単位で連番を振るなら、3の倍数が連番になるように3で割ります。(3÷3=1,6÷3=2,9÷3=3…)その他は小数点となるので、INTで整数にすればOK
=INT(ROW(A3)/3)
でオートフィル (セルの場所はどこでもOK)
|