| 
			覚えよう!  
			●行ずつ合計する 
				
				=SUM(OFFSET(基準セル,ROW(a1)*●-●,0,●,1)   
				3行ずつ合計する →  
				SUM(OFFSET(基準,row(a1)*3-3,0,3,1)) 
			 
				
				F列に各チーム(3行ずつ)の合計を出してみましょう。基点を3ずつ移動して合計します。3行ずつ基点を移動するには、0,3,6…のように3の倍数になるようにするため、3をかけます。順に3×0、3×1、3×2…としたいので、そこはROW関数を使ってa1,a2,a3を指定します(a列の内容は何でもよい) 
				 
				  
				= SUM(OFFSET(参照,ROW(a1)*3-3,列,高さ,幅) 
					
					これで行の移動が常に3行ずつ移動します。 
					row(a1)*3-3  → 0 
					row(a2)*3-3  → 3 
					row(a3)*3-3  → 6 
					
					全てこの方法で出せます。4行ずつなら0,4,8,…となるのでrow(a1)*4-4… 
				 ◆ 
				解説 ◆  
					
						
						
						3の倍数(3×0, 3×1,3×2,3×3…)→
						ROW関数を使います(オートフィルで行番号増える=1ずつ増える)
						
						行番号を使うのでa1,a2…を使います(a列の内容は無関係) 
 
			■ 5行分ずつ合計したい(各範囲末尾に合計) 
				
				MOD関数はある数値で割った余りがでます。ぴったり数値で割ると余り0なのでこれを条件にします。 
				末尾に合計を出すのでOFFSET関数で−セルを指定します(↑方向が合計範囲) 
				  
				●行分ずつ合計を出す(※範囲末尾に合計) 
				
				=IF(MOD(ROW(A1),●)=0,SUM(OFFSET(数値セル,0,0,-●,1)),"") 
				  
				B1に 
				IF(MOD(ROW(A1),5)=0,SUM(OFFSET(B1,0,0,-5,1)),"") と入力しオートフィル 
				   
				 ◆ 
				解説 ◆  
					
					数字は倍数で割れば必ず割り切れる(つまり除数0になる)ので、これを条件に5の倍数の行なら、そこからマイナス5行分の範囲を合計します。   
					
					IF(MOD(ROW(A1),5)=0,SUM(OFFSET(B1,0,0,-5,1)),"") 
					 
					もし行番号を5で割った除数が0なら(5,10,15,20…の行番号が合致)、その場所からマイナス5行分の範囲を合計する 
					  
				 ◆ 
				補足 ◆  
					
					下図のように、○行分が同じ名称(1年、2年、3年)であればSUMPRODUCT関数やSUM(IF…)の配列数式が使えます。 
					 
					D2に IF(COUNTIF($A$2:A2,A2)=1,SUMPRODUCT((A2=$A$2:$A$10)*1,($B$2:$B$10)),"") 
					または 
					D2に {=IF(COUNTIF($A$2:A2,A2)=1,SUM(IF(A2=$A$2:$A$10,$B$2:$B$10)),"")}   
					※青字のIF(COUNTIF($A$2:A2,A2)=1 
					は、各学年の最初のセルに合計が表示されるように追加しています。 |