前回は安打の総数をCOUNTIFSでカウントする方法を学びました。今回は二塁打・三塁打・本塁打を種類別に集計する方法を解説します。
長打を種類別に記録することで、塁打数の計算(単打×1+二塁打×2+三塁打×3+本塁打×4)が正確にできるようになります。OPSの計算に必要な長打率の土台となる大事なデータです。
長打系記号のおさらい
第18回で設計した長打系の記号を確認しておきましょう。
| 安打の種類 | 記号一覧 | 含むキーワード |
|---|---|---|
| 単打 | 左安・中安・右安・三安・一安 | 安 |
| 二塁打 | 左2・中2・右2 | 2 |
| 三塁打 | 左3・中3・右3 | 3 |
| 本塁打 | 左本・中本・右本 | 本 |
「安」「2」「3」「本」はそれぞれ異なるキーワードで、1つの記号が複数のキーワードを同時に含まない設計になっています。例えば「中2」は「2」を含みますが「安」も「3」も「本」も含みません。この設計のおかげで重複カウントの心配がありません。
二塁打のカウント関数
二塁打は「*2*」を含む記号をカウントします。選手名の条件を加えてCOUNTIFSで書きます。
=COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!G:G,"*2*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!H:H,"*2*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!I:I,"*2*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!J:J,"*2*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!K:K,"*2*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!L:L,"*2*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!M:M,"*2*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!N:N,"*2*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!O:O,"*2*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!P:P,"*2*")
前回の安打関数と全く同じ構造で、条件の「*安*」を「*2*」に変えるだけです。
三塁打・本塁打のカウント関数
三塁打・本塁打も同じ構造で、条件のキーワードだけ変えます。
条件を " *2*"→"*3*" に変えるだけ
条件を "*2*"→"*本*" に変えるだけ
年間(野手)シートの列設計
長打を種類別に集計するために、年間シートにはこのような列を用意します。
| 列 | 項目名 | 関数のキーワード |
|---|---|---|
| A列 | 選手名 | 手入力 |
| B列 | 単打数 | "*安*"の合計 |
| C列 | 二塁打数 | "*2*"の合計 |
| D列 | 三塁打数 | "*3*"の合計 |
| E列 | 本塁打数 | "*本*"の合計 |
| F列 | 安打数(合計) | =B2+C2+D2+E2 |
| G列 | 塁打数 | =B2*1+C2*2+D2*3+E2*4 |
「安打数の合計」だけを1つのセルに詰め込むこともできますが、単打・二塁打・三塁打・本塁打を別々の列で管理することで、塁打数の計算が非常にシンプルになります。また「二塁打は何本打ったか」という詳細な記録としても活用できます。
塁打数の計算
塁打数は「単打×1+二塁打×2+三塁打×3+本塁打×4」で計算します。各種安打を別々の列に持つことで、この計算が1行で書けます。
=B2*1 + C2*2 + D2*3 + E2*4
例:単打2本・二塁打1本・三塁打0本・本塁打1本の場合
= 2×1 + 1×2 + 0×3 + 1×4 = 8塁打
重複カウントが起きないことを確認する
「中2」は「2」を含みますが「安」「3」「本」は含みません。念のため確認しておきましょう。
| 記号 | *安* | *2* | *3* | *本* |
|---|---|---|---|---|
| 三安 | ✅ | ❌ | ❌ | ❌ |
| 中2 | ❌ | ✅ | ❌ | ❌ |
| 右3 | ❌ | ❌ | ✅ | ❌ |
| 左本 | ❌ | ❌ | ❌ | ✅ |
| 遊ゴ | ❌ | ❌ | ❌ | ❌ |
| 四球 | ❌ | ❌ | ❌ | ❌ |
各記号がいずれか1つのキーワードにしかマッチしないことが確認できます。これが第17回でスコアブック記号の設計にこだわった理由です。
- 二塁打:
"*2*"、三塁打:"*3*"、本塁打:"*本*"でCOUNTIFS - 安打関数と全く同じ構造でキーワードを変えるだけ
- 単打・二塁打・三塁打・本塁打を別々の列で管理する
- 塁打数は
=単打×1+二塁打×2+三塁打×3+本塁打×4で計算 - 各キーワードが重複しない記号設計により重複カウントは発生しない
次回予告
次回は「『打席数』と『打数』の違いを理解する」。打率の計算に使う「打数」と規定打席の判定に使う「打席数」がどう違うのか、野球のルールから丁寧に解説して関数に落とし込みます。
▶︎ 次回:【第38回】「打席数」と「打数」の違いを理解する


コメント