第44回 試合数を選手ごとに自動カウントする方法

関数・自動化

前回は盗塁をSUMIFSで集計する方法を学びました。今回は選手ごとの出場試合数を自動でカウントする方法を解説します。

「試合数なんて簡単では?」と思うかもしれません。実はフォームの回答シートの構造上、1試合で複数の行が記録されるため、単純にカウントするだけでは試合数が正しく出ません。この「重複」をどう処理するかがこの回のポイントです。

なぜ試合数のカウントが難しいのか

フォームの回答シートを見ると、1試合に選手ごとの行が作られています。たとえば10人で1試合プレーすると、フォームの回答シートに10行が追加されます。

試合日(B列) 〇試合目(C列) 名前(E列)
2行目2026/5/31SUZUKI
3行目2026/5/31T.KAMINO
4行目2026/5/31NAKATA
2026/5/31(他の選手)

つまり「SUZUKIさんが参加した試合の行数」を数えると、10試合参加していれば10行ありますが、そのカウントはそのまま試合数になります。1試合1行の構造なので、COUNTIFSで行数を数えるだけで試合数が求められます。

📝 「〇試合目」列が重複対策のカギ

同じ日に2試合行うダブルヘッダーのケースでは、「1試合目」と「2試合目」の2行が同じ選手に対して作られます。このとき試合日だけで数えると重複してしまいます。「試合日+〇試合目」の組み合わせを条件にすることで、同日複数試合でも正確に区別できます(第32回参照)。ただし、1日1試合しか行わないチームであれば試合日だけで数えても問題ありません。

試合数カウントの関数

フォームの回答シートには「試合日(B列)」と「〇試合目(C列)」と「名前(E列)」があります。選手名で絞り込んで行数を数えれば、そのまま試合数になります。

✅ 試合数の関数(シンプル版)
=COUNTIFS('フォームの回答(野手)'!E:E,A2)
  • 'フォームの回答(野手)'!E:E:選手名が入っている列
  • A2:年間シートのA2セル(集計対象の選手名)

フォームの回答シートは「1選手・1試合・1行」の構造のため、選手名が一致する行数を数えるだけで試合数になります。

ダブルヘッダーがある場合や、より厳密に管理したい場合は、試合日と〇試合目の両方を条件に加えた集計と組み合わせることもできます。まずはシンプルな1条件の関数から始めて、必要に応じて拡張するのがおすすめです。

実際のデータで確認してみよう

実際のフォーム回答シートを使って確認しましょう。SUZUKIさんのデータを抜き出すと次のようになっています。

試合日 〇試合目 名前 主な打席結果
第1試合1SUZUKI左2・四球・投安
第2試合1SUZUKI中安・投ゴ・左安・四球
第3試合1SUZUKI四球・敵失
SUZUKI

SUZUKIさんは9試合に出場しているため、フォームの回答シートにSUZUKIという名前が入っている行が9行あります。COUNTIFSでE列が「SUZUKI」と一致する行を数えると、そのまま試合数=9が得られます。年間(野手)シートの実際の集計結果とも一致しています。

試合数が必要な理由:規定打席との関係

試合数を正確に把握することは、規定打席の計算に直結します。

📝 規定打席とは何か

打率などのランキングに載るための最低打席数を「規定打席」といいます。プロ野球では「チームの試合数×1.8」が目安です。草野球でも同じ考え方を使い、出場した試合数から規定打席数を自動計算することができます。試合数が正確でないと、規定打席のフィルタリングも正確に機能しません。詳しくは第51・52回で解説します。

年間(野手)シートの試合数列の位置

実際の年間(野手)シートでは、選手名のすぐ隣のC列(試合数)にこの関数を入れています。この1列があることで、あとの計算がすべてスムーズにつながります。

選手名 試合数 打席数 打数 安打 打率
SUZUKI9302214.636
TANAKA824197.368
T.KAMINO829216.286

フォームにデータが追加されるたびに、試合数も自動で更新されます。

⚠️ 出場しなかった試合は当然カウントされない

フォームに入力があった試合しかカウントされません。試合に出場しなかった(フォームを提出していない)場合は、その試合は試合数にカウントされません。これは正しい動作です。チームの総試合数ではなく「その選手が出場した試合数」を集計しているためです。

✅ この記事のまとめ
  • フォームは「1選手・1試合・1行」の構造なので、選手名で行数を数えるだけで試合数になる
  • 関数は =COUNTIFS('フォームの回答(野手)'!E:E, A2) のシンプル1行で完結
  • ダブルヘッダーがある場合は「試合日+〇試合目」の組み合わせで正確に区別できる
  • 試合数は規定打席の計算に必要な数字で、ランキング集計にも直結する
  • 出場しなかった試合はカウントされない(チームの総試合数ではなく出場試合数

次回予告

次回は「塁打数を自動計算する:安打の種類ごとに重みをつける」。単打×1・二塁打×2・三塁打×3・本塁打×4という重みづけ計算を関数で実装する方法を解説します。長打率の計算に必要な数字なので、ここも丁寧に進めましょう。

▶︎ 次回:【第45回】塁打数を自動計算する:安打の種類ごとに重みをつける

コメント

タイトルとURLをコピーしました