この記事ではエクセルで個人の正答数(〇の数)と正答率を計算し、横方向にオートフィルでコピーする方法について解説していきます。
ポイントは、以下の通りです。
・COUNTIF関数を使って〇の数と総数を求める
・正答数と総数から正答率を計算する
・正答率をパーセント表示に変更する
・数式を横方向にオートフィルでコピーする
・マクロを使って一連の処理を自動化する
エクセル操作は1つ1つ追っていけば必ずうまくできるため、ぜひ本記事を参考にスキルアップにつなげてくださいませ♪
エクセルで正答数(丸の数)と総数(丸とバツの総数)のカウント方法【COUNTIF関数、COUNTA関数】
それでは以下のサンプルを用いて個人の正答数と総数のカウント方法を確認していきます。
B12セルに以下の数式を入力してAさんの正答数を求めます。
=COUNTIF(B2:B11,”〇”)
B13セルに以下の数式を入力してAさんの総数を求めます。
=COUNTA(B2:B11)
これらの数式を横方向にオートフィルでコピーすることで、BさんとCさんの正答数と総数も一気に求めることができます。
エクセルで正答率を出す方法【小数のまま】
続いては正答率の計算方法を確認していきます。
B14セルに以下の数式を入力しましょう。
=B12/B13
B12セルの正答数をB13セルの総数で割ることで、Aさんの正答率を小数で求めることができます。
この数式も横方向にオートフィルでコピーしましょう。
小数で表示された正答率をパーセントに直す方法
小数で表示された正答率をパーセントに変更するには、以下の手順を実行します。
B14セルからD14セルまでを選択します。
Excelの「ホーム」タブにある「パーセントスタイル」ボタンをクリックします。
これだけで各人の正答率が一括でパーセント表示に変換されます。
小数で表示された正答率をマクロで自動化する方法
最後は一連の処理をマクロで自動化する方法を見ていきましょう。
以下のようなマクロを記述します。
Sub CalcScores()
Dim lastRow As Long
Dim lastCol As Long
lastRow = Cells(Rows.Count, 2).End(xlUp).Row
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
For c = 2 To lastCol
Cells(lastRow + 1, c).Formula = "=COUNTIF(" & Cells(2, c).Address & ":" & Cells(lastRow, c).Address & ",""〇"")"
Cells(lastRow + 2, c).Formula = "=COUNTA(" & Cells(2, c).Address & ":" & Cells(lastRow, c).Address & ")"
Cells(lastRow + 3, c).Formula = "=" & Cells(lastRow + 1, c).Address & "/" & Cells(lastRow + 2, c).Address
Cells(lastRow + 3, c).NumberFormat = "0%"
Next c
End Sub
このマクロでは、以下のような処理を行っています。
1. lastRow変数で、データの最終行を取得
2. lastCol変数で、データの最終列を取得
3. 2列目から最終列まで繰り返し処理
– 各列の最終行の下のセルに正答数の数式を入力
– その下のセルに総数の数式を入力
– さらにその下のセルに正答率の数式を入力し、表示形式をパーセントに変更
マクロを実行すれば、一発で全員分の正答数、総数、正答率(パーセント)を求めることができます。
人数が増減しても、自動的に最終列までの処理が行われるので便利ですね。
まとめ エクセルで個人の正答数と正答率を求める方法
以上、エクセルで個人の正答数と正答率を求め、横方向にオートフィルでコピーする方法をご紹介しました。
テストの採点やアンケートの集計など、様々な場面で活用できる技です。
ぜひマスターして、エクセル作業の効率アップにつなげてください。