見出し画像

バレーボール大会集計表をExcel+Accessで

 バレーボール大会を開催してチーム割り振ってブロックごとに試合結果を集計して順位を書いて張り出して、単純だけど結構面倒な作業
 と言うことで、Excelで表示してデータはAccessに保存する方式で
で作成してみました。
 Accessを使ったのは、集計するのにSQL使ったほうが簡単にできるので

データの保存先はSQLが使えるデータベースであれば何でも良いのですが、今回はWindowsPCであればそのまま使えるAccessにしました。マクロを多少修正すれば、MySQL,PostgreSQL,Oracle,MS-SQLなどでも利用出来るようになりますがとりあえずAccessで

ブロック順位

利用環境

  • WindowsPC(10,11どちらでも)

  • MS-Excel 2016以降 が入っていること 

  • volleyMatch.xlsm 集計用のExcel 32bit版用  

  • volleyMatch64.xlsm   64bit版Excelはこちらで

  • volleyMatch.accdb   集計結果を保存するAccess DB  
     MS-Accessは基本的に不要です

使い方概要

0.準備
 ダウンロードした「volleyMatch.accdb」と「volleyMatch.xlsm」を同じフォルダーに保存する
※OneDriveでバックアップ設定されているフォルダーに入れると、正常に動作しない場合があります。(なかなか面倒な仕様なので)
※volleyMatch.accdbとvolleyMatch.xlmsは同じフォルダーにおいてください※volleyMatch.accdbのファイル名は変更しないでください。変更したい場合には。非表示にしてある「params」シートの定義を変更することで変更。できます。
※シート名も変更しないでね

1.「大会設定」シートで大会情報を設定
大会名や日時、会場等を登録できます。
ここでのデータは各シートのB1~B4に記載されます必要なければ省略可です(大会IDだけは必要ですが)
記入が完了したら「登録」をクリック volleyMatch.accdb (以下DBと表記)に登録されます

大会設定シート

2.「チーム設定」シートで ブロックごとのチーム名を設定します
集計はここで定義したブロックとチームID単位で行います チームがまだ決まっていない場合はブロックとIDのみ入れてチーム名は入れなくてもいいです

チーム設定シート

3.「組合せ」シートで 対戦組合せを作成「保存」する
ブロック、試合順、対戦チームIDを入力します
入力が完了したら「保存」します。ここでDBに組合せデータが登録されます
「保存」時にはA列に、新規or更新が表示されます「読込」をクリックすると、保存されたデータを再読み込みします

組合せ登録

4.「対戦表作成」をクリック
  組合せデータから対戦表が作成されます

対戦表

5.対戦表シートに対戦成績を記入し「試合結果の保存」を行う
試合結果を保存すると 勝敗、得失セット、即失点は自動で入力されます
一応5Setまで書けるようにはしていますが、普通は4,5SetはExcelなので列を非表示にするともいいですね
「試合結果の保存」でDBに結果が保存されますので、ちょくちょくやった方が何かと安心です

対戦表試合での結果保存

6.対戦表シートの「チーム別結果集計」で、試合結果がDBに保存され、そのデータを集計からチーム、ブロック別の集計が行われます。
その後「チーム結果」シートでブロック別の順位の表示が行われます。
 入力の途中で計算を行うと、途中経過としての集計が行われますので
そのような場合は最終ゲームを入力後に再度集計を行ってください

チーム結果

複数ブロックで行った場合は、ブロック別に集計、順位付けが行われます。なおセット率の計算では「得セット/失セット」となるので失セットがない場合は999としています。

順位決定方法は、下記で設定しています
(1)勝 率(総勝試合数÷総試合数)の大きいチームを上位とする。
(2)セット率(総得セット数÷総失セット数)の大きいチームを上位とする。
(3)得 点 率(総得点数÷総失点数)の大きいチームを上位と

(公益財団法人)日本バレーボール協会「リーグ戦形式の順位決定方法」
チーム結果(複数ブロック)の場合

とりあえずこれが一通りの使い方です
これで試合結果はAccessのDBに登録された状態になっていますので、あとで呼び出して確認、修正も可能です
印刷については、Excelなので好き勝手に印刷してください

使い方詳細(各シートごとの使い方など)

各シートB1セルに大会IDが記載され、各シートでの検索・登録ではその大会IDを利用していますのでここは書き換えたり消したりしないでください
各シートでは茶色の項目が集計でのキー項目でになるので、入力必須の項目になります。

1.「大会設定」シート

「大会設定」シート

大会情報の設定削除を行います。
 ID   :大会のIDを設定します。(入力必須)
 大会名:大会名称を入れてください
 開催日:開催日を入れてください
 会場 :会場名などを記載しておいてください
 備考 :
 チーム数:「一覧表示」で登録されているチーム数が表示されます

「一覧表示」:
  DBから登録された大会を呼び出し表示します
「登録/更新」: カーソル行の大会情報を登録、更新します。
 同じ大会IDがある場合は更新、ない場合は新規登録となります。
 「No.」列(B列)に[del]と記載されていると、その大会情報を削除します 「チーム設定へ」:カーソル有る大会のチーム設定シートへ移動します。
チーム設定シートのB1セルに大会情報を転記し、チーム設定シートに移動し、大会のチーム情報がすでに登録されていればそれを表示します。
新規大会IDの場合は、何も表示されません。
「結果表示」: すでに大会情報、結果などが保存されている場合は「チーム結果」シートに移動し、結果を表示します

2.「チーム設定」シート

「チーム設定」シート

チーム情報の設定を行います。
既に対戦情報や、集計されている場合はそのデータをH列以降に表示します
ブロックとチームIDは必須入力になります。ブロックが異なる場合には同じチームも登録可能になります。
 後で参加チームが変更になった場合などはここで修正してください

 ブロック:トーナメントのブロックを入力します(必須入力項目)
 チームID:チームのIDです。適当に連番でもなんでもいいので(必須入力項目)
 チーム名:チーム名です
 地区 :参考まで
 正式名称:チームの正式名称など
 備考 :代表者の連絡先など
 試合数、勝、負~:緑の項目は修正データが設定される項目になります
 まずは参加チームは決まっていない場合でも、ブロックとチームIDを事前に入力して、組み合わせまでは先に入力しておくことができます

チーム表示」:データがすでに登録されている場合にはそのデータを表示します。ちゃんと登録できているかの確認に
「登録/更新」:
ブロック・チームIDごとにチーム情報を登録します
 試合数などのH列以降の項目については、ここでは保存されません
※[No.]列(A列)に「del」と記載して「登録/更新」をクリックすると、その行のデータは削除されます。
組合せ設定へ」:「組合せ」シートへ移動します
 

3.「組合わせ」シート

組合せシート

「チーム設定」で登録したチームを使って組み合わせを登録します
組み合わせは、ブロック、試合順をを基準にチームを設定します。
 通常は、チーム決まる前に組み合わせ決めて、後でチームは抽選で決めるので、ここではチーム名入れずにIDだけ入れて組み合わせを決めておいて、後でチームが入ってくるので
ブロック:通常は3~4チームで1ブロックでしょうか。集計はここで設定したブロックごとのチーム順位ということになります
コート:コート名を記載してください
試合順:各ブロックごとの試合順番です
AチームID:チーム設定で決めたチームIDです
Aチーム名:チーム名(IDが入っていれば「IDからチーム名」ボタンで自動入力もできます
BチームID・Bチーム名・審判チームID・審判チーム名: 上と同じ
※必ず「チーム設定」シートで決めたブロックごとに登録してください

「読込」:登録されているデータを再度読み込みます
「チーム名入力」:登録されているチーム入力を表示して入力のサポートをします
「IDからチーム名」:入力されているチーム設定情報からチーム名を自動設定します
「保存」:組合わせデータを保存します
「対戦表作成」:組み合わせデータから対戦表を作成します

4.対戦表

対戦表

「組み合せ」で設定した情報から対戦表が作成されます。
保存されたデータがある場合には、それも読み込まれます
点数はここに記載して保存してください。

「読込」: 保存されているデータを読み込みます
「試合結果保存」:試合結果を保存します
「結果集計」: 試合結果を保存して、ブロック別のチーム結果を表示します

5.チーム結果

チーム結果

対戦表のデータの集計結果をブロックごとの
順位で表示します。
データとしては、チーム設定シートと同じですが、ブロックごと、順位順に表示させています

Table構成

AccDBは下記のような構成になっています
1  M_大会         大会設定情報
2  T_Team   大会、ブロック毎のチーム設定情報 集計結果もここ
3  T_試合結果 大会チームごとの試合結果情報
4  T_組合せ  大会ブロックごとの組合わせ情報
 

あとがき
・とりあえず自分で使うことレベルで作ったので、使い方には癖があるし、データを削除するやりかたもう少し考えないとなあ
・Access使ってるけど、ExcelのTableを使って更新するかなあ
Accessってデータ削除したときにデータベースの修復をしないと削除データがずーっと残ってしまうので。
・Excel64bitだと WindowsAPIの使い方変更しないとバグってしまったのであわてて64bit版ついかしました
・バレーボール以外でもリーグ戦タイプにはつかえるのかなあ

この記事が気に入ったらサポートをしてみませんか?