対戦表
- 2008/08/13 08:12
- カテゴリー:大会支援(ドッチボール)
対戦表を作っていきます。
前にも書きましたが、すでにこの表は配布物や掲示物が過去のデータを元に、他の方によって作成されています。
また、過去のデータ自体が、集計より掲示などの印刷をメインに作成されています。
つまり、得点や順位は手書きすることが前提なのです、今回からホームページへの掲載も行うので、大会結果も対戦表の中に入るように変更を行います。
対戦表の入力ですが、勝点制なので、結果の表示を判りやすいように、勝(○=3)、引分(△=1)、負(×=0)とします。
そして結果の下のセルで、勝点を計算します。(C5セルに対戦結果が入っているとして)
IF(C5="○",3,IF(C5="△",1,IF(C5="×",0,"")))
となりますかね。
ついでですので、この勝ち点によってセルに色分けを表示します。
これは条件付書式を使います。(C6セルに勝ち点が入っているとして)
対戦結果は、1試合に対して2箇所の入力項目があります。
通常は、入力ミスを軽減するために、片方の対戦結果をリンクして演算で反転させ表示するのですが、今回はVBAを使って入力させるので、どちらも同じ設定にします。
したがって、C5:C6セルを入力を行うセルに一気にコピーします。
次に、得点の合計を出します。
これは単純に、入力された勝ち点をSUM関数で合計するだけです。
ただ、コピーして作ったほうが楽なので、\線が入っている所には、何も数値を入れないことを条件に、B:Eまでを集計します。
=SUM(B6:E6)
となりますかね、これを各チーム毎の合計にコピーします。
さて、ここで同率になった時のじゃんけんが入ってきます。
そうなると、この合計では処理が出来なくなってしまいますので、コピーした合計に手を加えます。
=SUM(B6:E6)*10+B13
勝ち点の合計を10倍して、じゃんけんのポイントを加えます。
本当は、このセルは合計の横にあった方がセルがコピー出来て楽なのですが、以前のものに合わせている関係で、仕方がないでしょう。
次に順位を導き出します。
これは、RANK関数を使います。
=IF(COUNTA(B5:E5)=3,RANK(F5,F5:F12),"")
ちょっと手抜きです、本来でしたら全ての入力済数(今回なら12個)を導き出して、全ての入力が完了してから順位を表示させるべきなんですぅ。
それと、なぜRANK関数の範囲指定が絶対指定ではなくて相対していなんだ?
ってつっこまれそうなんですが、ブロック毎にコピーをするためなんですよ~。
ついでに、ここも順位により色表示を行います。
後は、出来上がったブロックの演算を全てのブロックにコピーすれば、完成です。
まあ、説明するほどの事でもないんですが、つらつらと書いてみました。(^^)
次回は得点記入用紙の作成です。