前回はチーム打率・本塁打・盗塁の集計式を作りました。今回はいよいよチーム防御率を計算して、チームシートのL列を完成させましょう。
防御率そのものの式は、第61回で学んだ「自責点 × 9 ÷ 投球回」と変わりません。チーム版で気をつけたいのは、複数投手の投球回をどうやって正しく合算するかという点です。1.1・1.2という小数表記は野球独特のクセ者で、そのままSUMで足すとズレが生じてしまいます。ここで活躍するのが、第59回で解説したSUMPRODUCTです。
なぜSUMで投球回を合算できないのか
まずは問題の正体を確認しましょう。例えば、YAMADAさんが1.1(1回1/3)と4.0の投球回で2試合に登板したとします。
| 試合 | 投球回(記録) | 実際の意味 |
|---|---|---|
| 1/25 | 1.1 | 1回と1/3(= 1.333…回) |
| 2/15 | 4.0 | 4回ちょうど(= 4.000回) |
❌ =SUM(1.1, 4.0) → 5.1(数値としての足し算)
✅ 正しい合計 → 1と1/3 + 4 = 5と1/3(表示:5.1回)
この例ではたまたま結果が一致して見えますが、「1.2 + 1.2」を合算したときにズレがはっきり表れます。SUMは2.4を返しますが、正しくは2と2/3 + 2と2/3 = 5と1/3(5.1回)です。小数の「.1」「.2」は実際には「1/3」「2/3」を表しているため、ふつうの足し算ではつじつまが合わなくなるのです。
正しい合算方法:SUMPRODUCTで変換してから足す
ここで、第59回で解説した投球回の合算式をおさらいしておきましょう。
=SUMPRODUCT(INT(投球回列) + MOD(INT(投球回列*10), 10)/3)
| パーツ | 役割 |
|---|---|
INT(投球回列) |
整数部分(完全なイニング数)を取り出す。1.1 → 1 |
MOD(INT(投球回列*10), 10) |
小数部分(アウト数 0・1・2)を取り出す。1.1 → 1 |
/3 |
アウト数を3分の1イニングに変換。1 → 1/3 |
SUMPRODUCT(…) |
変換後の実数を全行分合計する |
この式を使えば、どの投手のどの試合の投球回も正確に実数(1/3単位)に変換してから合算できます。
チーム防御率の完成式
年間(投手)シートのI列=投球回、K列=自責点として、チームシートのL2セルに入れる式は次のとおりです。
=IFERROR(
SUM('年間(投手)'!K2:K20) * 9 /
SUMPRODUCT(INT('年間(投手)'!I2:I20) + MOD(INT('年間(投手)'!I2:I20*10),10)/3),
0)
式を分解して読んでみます。
SUM('年間(投手)'!K2:K20):全投手の自責点合計* 9:9イニング換算するための掛け算(防御率の定義)SUMPRODUCT(INT(…) + MOD(…)/3):全投手の投球回を正しく実数に変換して合算IFERROR(…, 0):投球回が0のとき(シーズン開始前)のエラーを0に変換
個人防御率(第61回)との違いは、分子が「1人の自責点」から「SUMで全員の自責点合計」に、分母が「1人の投球回」から「SUMPRODUCTで全員の投球回合計」になっただけ。構造そのものは同じです。
サンプルデータで計算結果を確認する
例えば、あるチームの投手陣が次のような成績を残したシーズンがあったとします。全登板分を並べて、実際に式を動かしてみましょう。
| 試合日 | 投手 | 投球回 | 失点 | 自責点 |
|---|---|---|---|---|
| 1/25 | YAMADA | 1.1 | 4 | 4 |
| 2/1 | SUZUKI | 7.0 | 0 | 0 |
| 2/15 | YAMADA | 4.0 | 6 | 3 |
| 3/1 | OKADA | 2.0 | 0 | 0 |
| 3/8 | YAMAMOTO | 3.0 | 0 | 0 |
| 3/15 | SUZUKI | 4.0 | 1 | 1 |
| 3/29 | YAMAMOTO | 4.0 | 2 | 1 |
| 4/26 | YAMASAKI | 2.0 | 0 | 0 |
| チーム合計 | 27.1回 | 13 | 9 | |
この例では、合計投球回は27と1/3回(表示:27.1回)、自責点は9。この2つの数字を使ってチーム防御率を計算してみましょう。
| チーム総自責点 | 9 |
| チーム総投球回(実数) | 27と1/3 = 27.333… |
| チーム防御率の計算 | 9 × 9 ÷ 27.333… = 81 ÷ 27.333… = 2.96 |
チーム防御率は2.96。10試合で自責点9に抑えられれば、なかなかの好成績と言えます。SUZUKIさんの11回1自責点(ERA 0.82)とYAMAMOTOさんの7回1自責点(ERA 1.29)が、このチーム防御率を大きく支えています。
個人別の防御率も並べて確認する
チーム防御率と合わせて、年間(投手)シート上の個人成績も見ておきましょう。
| 投手 | 投球回 | 失点 | 自責点 | 防御率 |
|---|---|---|---|---|
| SUZUKI | 11回 | 1 | 1 | 0.82 |
| YAMAMOTO | 7回 | 2 | 1 | 1.29 |
| OKADA | 2回 | 0 | 0 | 0.00 |
| YAMASAKI | 2回 | 0 | 0 | 0.00 |
| YAMADA | 5.1回 | 10 | 7 | 11.81 |
| チーム合計 | 27.1回 | 13 | 9 | 2.96 |
YAMADAさんは2試合で計5.1回を投げて自責点7(ERA 11.81)と苦しい内容になっていますが、残る4投手が自責点を最小限に抑えたおかげで、チーム防御率は2.96にまとまっています。失点13に対して自責点が9にとどまっているのは、エラーがらみの失点が4つ含まれていたためです。
「投球回」の列はフォームと年間で違う点に注意
チーム防御率の計算には、年間(投手)シートの個人集計値を使うのが正しいやり方です。
フォーム(投手)シートから直接計算することも理論上は可能です。ただしフォームは「試合ごとの生データ」なので、同じ投手の記録が複数行に分かれてしまいます。その点、年間(投手)シートはすでに選手ごとに投球回・自責点を合算済みなので、こちらを参照したほうが式がシンプルになり、管理もぐっと楽になります。
ただし年間(投手)シートの投球回列も1.1・1.2表記(個人の投球回合計)で格納されているため、SUMPRODUCTによる変換は必ず必要です。
チームシートの進捗確認
今回でL列(防御率)が完成しました。残るはB〜H列(試合数・勝敗・勝率・得点・失点)のみです。
| 列 | 項目 | 状態 | 値 |
|---|---|---|---|
| A | 年度 | ✅ 完成 | 2026 |
| B〜H | 試合数・勝ち・負け・引分・勝率・得点・失点 | 🔜 第78〜79回 | — |
| I | 打率 | ✅ 完成 | .313 |
| J | 本塁打 | ✅ 完成 | 3 |
| K | 盗塁 | ✅ 完成 | 25 |
| L | 防御率 | ✅ 完成 | 2.96 |
- 投球回は1.1・1.2という小数表記で、そのままSUMで合算すると誤差が出る——「.1」は1/3、「.2」は2/3を意味するため
- 正しい合算には第59回のSUMPRODUCT式を使う:
SUMPRODUCT(INT(投球回) + MOD(INT(投球回×10),10)/3) - チーム防御率の式は
=IFERROR(SUM(自責点列) * 9 / SUMPRODUCT(…投球回変換…), 0) - 集計元は年間(投手)シート——フォームではなく個人集計済みのシートを使うと式がシンプルになる
- サンプルのシーズンではチーム防御率は2.96(自責点9・投球回27.1回)
- 残りはB〜H列(試合数・勝敗・勝率・得点・失点)のみ——次回で一気に完成させる
次回予告
次回のテーマは「勝率・得点・失点・引分の年度別集計」。フォーム(チーム成績)シートに蓄積された試合ごとのデータからCOUNTIFで勝ち・負け・引分を数え、SUMで得点・失点を合算していきます。例えば6勝2負2分・得点60・失点23というシーズンを題材に、チームシートのB〜H列を自動集計する式を一気に完成させましょう。
▶︎ 次回:【第78回】勝率・得点・失点・引分の年度別集計



コメント