クラブチームのリーグ戦に活用「得点ランキング管理表」作成で得点王決定の流れをDX支援
街クラブチームのコーチから「遅くまで事務作業に時間が掛かり、特に大きなリーグ戦があるときの得点ランキング管理が大変」という悩みを受けたことがきっかけで、リーグ戦で活用できる得点ランキング管理表をスプレッドシートで作成しました。
ニーズ | 各チームのコーチが入力可能な、選手ごとの得点管理ができるスプレッドシートが欲しい。 |
イークスの役割 | データ管理の仕組みづくりと、チーム別スプレッドシートの作成ならびに得点集計の自動化を可能とするGASスクリプト作成 |
※プレビュー版で自動集計機能は動きません。必要な方には無料でお渡ししますのでメールフォームからご連絡ください。
まずはスプレッドシート内で簡易アクティビティ図を作成
ざっくりとユースケースを考えて、主催者側で行うことと、各チームに依頼することをまとめました。
普段はドメインモデル図やオブジェクト図を作成しますが、要件がシンプルなので今回は割愛しています。
今回想定するフローは下記の流れです。
- 下準備
- まず主催者側で、大会名や開催日、試合数と参加チーム、参加グループ、選手のデータを準備します。
選手データの記入は各チームに依頼するほうが楽そうですが、今回はこちらで入力する形式としています。
- 「チーム別得点入力シート」をGASで自動作成
- 各チームに配布する「チーム別得点入力スプレッドシートシート」をGASで自動作成します。作成したスプレッドシートは各コーチに送付し、試合結果(試合別、選手別の得点)入力に使用します。
スプレッドシート作成後に自動でメール送付できると便利そうですが、こちらも今回は割愛しちゃいました。(ご希望あれば追加してみます)
- 試合開始→終了!各コーチがスプレッドシートに記入
- スプレッドシートに選手ごと、試合ごとの得点数を記入します。
iOS / Androidともに、スプレッドシートのアプリで開かなければ編集できないので、ちょっとした解説文を準備したほうが良さそうです。
- 全スプレッドシートの得点内容をGASで自動集計
- チーム別、グループ別に分かれた得点データをGASで自動集計し、どのチームの誰が何点取ったかを計算します。
自動で作成したスプレッドシートの名前とスプレッドシートIDを残しておく必要がありそうですね。
- 得点王の決定!
- 合計点を元に得点王が決定します。
複数日で実施される場合は選手別の得点数を合計する必要がありますが、個別で集計するのと比べると大きく時間が短縮できそうですね。
仮データ、完成予想図をイメージしながらツール制作
実際にスプレッドシートに仮データを入力し、完成図をイメージしながら作成していきます。
選手名簿
まずは「選手別の点数を計算する」という要件に対応するために、選手名簿が必要ですね。
含める要素は「チーム」と「グループ(1チーム内に複数チーム|1軍2軍などが存在するため)」、そして選手のデータです。
今回は20クラブチーム、61チームほどで参加する6人制の小学生サッカーリーグを対象とし、1チームあたり11~13人の参加を想定しました。
チームに配布する「選手別得点記入シート」の作成
各チームに配布するためのスプレッドシートの仮データを作成します。
選手名簿にある「チーム名」を基準にスプレッドシートを作成し、その中に「グループ」のシートを作成します。そのシート内に選手が並ぶ形式を考えました。日付もあると良さそうですね。
日付と大会名、試合数の情報を要件に含めるため、元のスプレッドシートにある「setting」シートに情報を追加しました。
選手別得点記入シートの自動生成
GASを使用して、選手別得点記入シートと同じような出力結果が得られるようにGASを組んでいきます。
チーム数が多いと作成に時間が掛かってしまい、スプレッドシートの制限に引っかかってしまう可能性がありそうです。
なるべくシンプルに作成して、仮データの適用でエラーがする場合は対応策を考えてみます。
GASを組み立てていきます。シート内容の取得とスプレッドシート作成、書き込みといった基本操作が中心です。
スクリプトを実行すると、チーム別のスプレッドシートが作成されます。
シートの中にはグループシートと選手名一覧、設定した試合数に応じた「x試合目」の見出しが表示されます。この後得点集計システムを作成するので、仮の得点を半角・全角数値をわざと混在させて記入しておきます。
作成したスプレッドシートはチームへの配布や得点の集計に使用するので、「sheets」シートに内容を自動で保存しておきます。
得点集計システムの構築
GASを使用して、各スプレッドシートに入力されている得点を集計する仕組みを作ります。
出来上がったGASを実行すると、各シートの内容を集計し、得点した選手の名前と合計得点が計算されます。
並び順が「チーム名簿順」になってるので、得点ランキング化する必要がありますね。
この数式を使って得点が多い順に並び替えましょう。
=query(A:D,"order by D desc")
Dのセルで得点が多い順でソートされます。
まとめ
今回の仕組みは4時間ほどで構築しました。
大会ごとに得点を紙で記入してもらい、手動で集計することもできると思いますが、スプレッドシートとGASを活用することで、データを管理が容易になりますね。
また、集計作業を自動化することにより、コーチや主催者は試合運営や選手の指導により多くの時間を割けるようになります。
業務のデジタル化と効率化をご希望の方は、是非イークスにお声がけください。