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

関数・自動化

前回は盗塁をSUMIFSで集計する方法を学びました。今回のテーマは「試合数」です。地味に見えて、実はこのあとの集計すべての土台になる、意外と奥の深い項目です。

「試合数なんて数えるだけでは?」と思うかもしれません。ところが、フォームの回答シートの構造上、1試合につき選手ごとに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さんが登場する行」を数えれば、その数がそのまま出場試合数になります。1試合1行というシンプルな構造だからこそ、COUNTIFSで行数を数えるだけで試合数が求められるのです。

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

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

試合数カウントの関数

フォームの回答シートには「試合日(B列)」「〇試合目(C列)」「名前(E列)」の3つの情報があります。このうち選手名で絞り込んで行数を数えるだけで、出場試合数が求まります。

✅ 試合数の関数(シンプル版)
=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をコピーしました