合計・平均を求めるコード No.2
行列の挿入・削除をしても計算可能

[標準モジュール module1] -----
'行列の挿入・削除をしても計算可能
Public Lc, Lr As Integer
Sub 縦計横計()
Lr = Range("B2").End(xlDown).Row '最終行
Lc = Range("C1").End(xlToRight).Column '最終列
For i = 1 To Lc - 2 '二列分を引算
Cells(Lr + 2, i + 2).FormulaR1C1 = _
"=SUM(R2C:R[-2]C)" '縦計
Next i
For j = 1 To Lr - 1 '一行分を引算
Cells(j + 1, Lc + 2).FormulaR1C1 = _
"=SUM(RC3:RC[-2])" '横計
Next j
For k = 1 To Lc - 2
Cells(Lr + 3, k + 2).FormulaR1C1 = _
"=ROUND(AVERAGE(R2C:R[-3]C), 1)" '縦平均
Next k
For p = 1 To Lr - 1
Cells(p + 1, Lc + 3).FormulaR1C1 = _
"=RANK(RC[-1], R2C[-1]:R" & Lr & "C[-1])" '順位
'この Lr に数値が入り 『" & Lr & "』 で最終行を意味する
Next p
Range("A1").Activate
End Sub
[標準モジュール module2] -----
Sub 結果消去()
Range(Cells(Lr + 2, 3), Cells(Lr + 3, Lc)).ClearContents
Range(Cells(2, Lc + 2), Cells(Lr, Lc + 3)).ClearContents
End Sub
《補足》
行列の挿入・削除をしても計算可能で、なおかつ 途中に空白セル・
空白行・空白列があっても計算可能なモジュールについては、次 を
参照のこと。
next back top