単純でも大量処理の場合はVBAで対処した方が賢明です。
データの全体です。
データはA1:L31まで入力されていて
C2:L31までの30名の10科目のテスト結果です。
作成するデータは・・・
M列に合計点
N列に平均点
O列に合否
85点以上はA合格、75点以上はB合格、65点以上はB合格。それ以外は不合格。
を入力する簡単な計算です。サンプルは30名分ですが、もし1000名文分と言った場合はフィルよりも今回のVBAを¥のセル指定を変更して活用すれば一気に処理出来ます。
Sub 計算式を入力し右揃え()
Dim ws As Worksheet
Dim i As Integer
' アクティブシートを設定(または特定のシートを指定)
Set ws = ActiveSheet
' 2行目から31行目まで繰り返し処理
For i = 2 To 31
' M列(合計)
ws.Cells(i, 13).Formula = _
"=SUM(C" & i & ":L" & i & ")"
ws.Cells(i, 13).HorizontalAlignment = xlRight ' 右揃え
' N列(平均)
ws.Cells(i, 14).Formula = _
"=AVERAGE(C" & i & ":L" & i & ")"
ws.Cells(i, 14).HorizontalAlignment = xlRight ' 右揃え
' O列(評価)
ws.Cells(i, 15).Formula = "=IF(N" & i _
& ">=85,""A合格"",IF(N" & i & ">=75,""B合格"",IF(N" & i _
& ">=65,""C合格"",""不合格"")))"
ws.Cells(i, 15).HorizontalAlignment = xlRight ' 右揃え
Next i
' メッセージ表示(オプション)
MsgBox "数式を31行目まで入力し、右揃えにしました!", _
vbInformation
End Sub
というコトで上は処理結果です。