前回は選手名の表記ゆれを防ぐ方法を解説しました。今回のテーマは、成績管理表を運用していると必ず一度はぶつかる「あれ、この打率の数字おかしくない?」という違和感です。原因の切り分け方をチェックリスト形式で整理していきます。
打率の計算式そのものは「安打÷打数」というシンプルなものです。ところが、その「打数」と「安打」をどう集計しているかを紐解くと、意外と複雑な仕組みが隠れています。ズレの原因は大きく①打数の除外ロジック、②安打の判定パターン、③表示形式の3層に分かれており、この順番で確認していくのが最も効率的です。
打率の計算構造を改めて確認する
まずはこの成績管理表で打率がどのように計算されているか、全体の流れを整理しておきましょう。
| 層 | シート | やっていること |
|---|---|---|
| 第1層 | フォーム(野手) | 打席結果の記号を1打席ずつ記録(G〜P列) |
| 第2層 | 試合当日(野手) | 打席・打数・安打を1試合分集計。打数=打席−(四死球+犠打+犠飛)、安打=「安|2|3|本」を含む記号の数 |
| 第3層 | 年間(野手) | 試合当日シートから選手名でSUMIFして全試合分を集計。打率=安打(G列)÷打数(F列) |
計算がズレる原因は、この3層のどこにでも潜んでいます。確認するときは下から上へ、つまり「フォーム → 試合当日 → 年間」の順にたどっていくのが基本です。
チェック①:打数の除外ロジックが正しいか
「打数」は、打席数からいくつかの結果を差し引いて算出します。まずはこの除外ロジックがきちんと動作しているかを確認しましょう。
=IF(F2="",, F2 - (O2 + P2 + Q2))
| 変数 | 内容 | 打数に含まれるか |
|---|---|---|
| F2(打席) | 全打席数(空白でない打席欄の数) | 分子(元の数) |
| O2(四死球) | 「四球」または「死球」を含む打席の数 | ❌ 除外 |
| P2(犠打) | 「犠打」を含む打席の数 | ❌ 除外 |
| Q2(犠飛) | 「犠飛」を含む打席の数 | ❌ 除外 |
野球の定義では、四球・死球・犠打・犠飛は打数に含まれません。この式は、その3種類を打席から差し引くことで打数を正しく算出しています。
敵失(エラーによる出塁)は、野球の定義上打数に含まれます。この成績管理表でも、敵失(R列)は打数の除外対象にしていません。
「敵失で出塁しているのに打率が低い選手がいる」と感じ、敵失を除外すれば打率が上がるのでは、と思う方もいるかもしれません。しかし公式の定義に合わせておいたほうが、プロ野球の記録などと比較しやすくなります。この管理表もあえて含める設計にしています。
チェック①のポイントは次のとおりです。
- フォームの打席結果に「四球」でなく「BB」「四」など設定外の記号を使っている → O列(四死球)がカウントされず、打席がそのまま打数になってしまう
- 犠打を「バント」「犠」などの略称で入力している → P列(犠打)がカウントされず除外漏れになる
- 試合当日シートのG列の式が壊れている(コピーミスなど)→ 数式バーで
=IF(F2="",, F2-(O2+P2+Q2))の形になっているか確認する
チェック②:安打の判定パターンが正しいか
試合当日(野手)シートのH列(安打)は、フォームに入力された打席結果の記号が「安|2|3|本」のいずれかを含むかをREGEXMATCHで判定してカウントしています。
| パターン | 該当する記号の例 | 種別 |
|---|---|---|
| 「安」を含む | 左安・中安・右安・投安・遊安・三安・二安 | 単打 |
| 「2」を含む | 左2・中2・右2 | 二塁打 |
| 「3」を含む | 左3・中3・右3 | 三塁打 |
| 「本」を含む | 左本・中本・右本・走本 | 本塁打 |
「走本」は前回確認したとおり設定一覧にない独自記号ですが、「本」を含むためこのパターンでは安打(本塁打)としてカウントされます。意図通りかどうかは、チームごとに判断してください。
- 単打を「ヒット」「安打」「H」と入力している → 「安」を含まないためカウントされない
- 二塁打を「2塁打」「二塁打」と入力している → 「2」は含むが「二塁打」は含まない。「2」という数字が入っているかどうかがポイント
- 本塁打を「HR」「ホームラン」と入力している → 「本」を含まないためカウントされない
- 前回確認した「ニゴ」(カタカナ)が残っている → 「安」を含まないので安打カウントには影響しないが、打数の計算には影響する可能性がある
安打カウントが合っているかは、次の方法で手軽に検証できます。
フォーム(野手)シートを開き、特定の選手の打席結果を目視でカウントします。「左安・中安・三安…左2…左本」のように安打を手で数え、年間(野手)シートのG列(安打)と一致しているかを確認します。
例えば、TANAKAさんのフォームデータに「三安・左安・中安・中安・投安・遊安・左安・右安・中安・左2・中2・右2・左2・左本」といった安打記号が記録されているとします。これらがすべて年間シートの安打数に含まれていれば正常です。
チェック③:年間シートのSUMIFの参照範囲が正しいか
年間(野手)シートの打数(F列)・安打(G列)は、次の構造のSUMIF式で試合当日(野手)シートから集計しています。
=IF($B2="", "", IFERROR(
SUMIF('試合当日(野手)'!$D:$D, $B2,
INDEX('試合当日(野手)'!$1:$100, 0,
MATCH(F$1, '試合当日(野手)'!$1:$1, 0))),
0))
| パーツ | 意味 |
|---|---|
'試合当日(野手)'!$D:$D |
試合当日シートのD列(選手名)を条件範囲にする |
$B2 |
年間シートのB列(選手名)が条件——この選手の行だけ合計する |
MATCH(F$1, '試合当日(野手)'!$1:$1, 0) |
ヘッダー行(1行目)から「打数」という列名を探して列番号を取得 |
INDEX(…, 0, MATCH(…)) |
取得した列番号の列全体を合計対象として指定 |
この式は、ヘッダーの列名(「打数」「安打」など)をもとに列を自動で特定する設計です。そのため、ヘッダーの文字が少しでも変わると(例:「打数」→「打 数」のようにスペースが入るなど)MATCHがヒットせず、集計が0になってしまいます。
- 試合当日(野手)シートの1行目(ヘッダー)の列名が変わっている → MATCHが列を見つけられず集計が0になる
- 試合当日シートの参照範囲
$1:$100を超えてデータが増えている → 100行を超えると、それ以降のデータが集計に含まれなくなる。参照範囲を$1:$200などに広げておく - 試合当日シートのD列(選手名)の表記が年間シートのB列(選手名)と異なる → 前回(第90回)で解説した表記ゆれの問題が、ここでも集計に影響してくる
チェック④:打率の表示形式がずれていないか
計算そのものが正しくても、表示形式の設定次第で見た目がおかしくなることがあります。
| 症状 | 原因 | 修正方法 |
|---|---|---|
| 「0.313」と表示される(3桁小数で見たい) | 表示形式が「数値(自動)」のまま | セルの表示形式をカスタム .000 に設定する(第54回参照) |
| 「31%」と表示される | 表示形式が「パーセント」になっている | セルを選択して表示形式を「数値」に変更してからカスタム .000 を設定する |
| 「1」と表示される(10割に見える) | 安打数と打数が同じになっている(全打席安打)、または打数が1になっている | フォームシートのデータを確認し、打数・安打の集計が正しいか検証する |
チェックリストのまとめ
「打率がおかしい」と感じたときは、このチェックリストを上から順番に確認してみてください。
| 順番 | 確認項目 | 確認場所 |
|---|---|---|
| 1 | 四球・死球・犠打・犠飛の記号が設定一覧の表記と一致しているか | フォーム(野手)シートG〜P列 |
| 2 | 安打の記号に「安」「2」「3」「本」が含まれているか | フォーム(野手)シートG〜P列 |
| 3 | 試合当日シートのG列(打数)の式が =IF(F2="",, F2-(O2+P2+Q2)) の形になっているか |
試合当日(野手)シートG列 |
| 4 | 試合当日シートの1行目ヘッダー「打数」「安打」の文字が変わっていないか | 試合当日(野手)シート1行目 |
| 5 | 年間シートの参照範囲 $1:$100 を超えてデータ行が増えていないか |
年間(野手)シートF列の数式 |
| 6 | 打率セルの表示形式がパーセントや自動になっていないか | 年間(野手)シートD列の表示形式 |
| 7 | 選手名の表記が設定一覧と一致しているか(前回・第90回参照) | フォーム(野手)シートE列 |
- 打率のズレは①打数の除外ロジック、②安打の判定パターン、③SUMIF の参照範囲、④表示形式の4層で起きる
- 打数の除外対象は四死球・犠打・犠飛の3種類——敵失は打数に含まれる設計
- 安打は「安|2|3|本」のいずれかを含む打席記号が対象——「ヒット」「HR」などの独自表記はカウントされない
- 年間シートの集計式はヘッダー名でMATCHして列を特定する設計——ヘッダーが変わると集計が0になる
- 参照範囲
$1:$100はデータが100行を超えると集計漏れが起きる——増えてきたら範囲を広げる - 表示形式が「パーセント」になっていると「31%」のように見える——カスタム
.000で正しく表示する
次回予告
次回は「フォームの選択肢を追加・変更したいときの手順」を取り上げます。守備位置に新しいポジションを追加したい、打席結果の選択肢を整理したい——そんなとき、フォームの選択肢を変更すると既存データにどんな影響が出るのか、注意点とあわせて解説していきます。



コメント