射会の成績をExcelで自動集計 (その2)  ~決勝(射詰め)対応

1     実際に使用するときの問題点

「射会の成績をExcelで自動集計(その1)」ではExcelの関数を利用して的中数と順位をリアルタイムで自動集計する仕組みについて解説しました。しかし、これまでの内容では成績表と順位表の基本的な内容を実現しただけで、実際の射会で使用するとなるといくつかの問題点が出てきます。

例えば、射会が予選と決勝に分かれているとか、射詰めを行うこともあると思います。さらに、予選と決勝に分かれている射会で決勝進出条件を的中数で定めている場合があったり順位であったりということもあります。

「その1」で示したサンプルファイルでこれに対応することは不可能ではありませんが、そのままでは使いやすいとは言えません。

そこで、(その2)では決勝射詰めと予選・決勝に分かれる場合について対応していこうと思います。

 

2     対応のための主な変更点

まず、決勝の立ち順が「予選の成績順」になるか「予選の立ち順を基にした順序」になるかで事情が大きく異なります。「予選の成績順」であれば(その1)のサンプルファイルを少し変更するだけで対応できますが、「予選の立ち順を基にした順序」つまり、予選の立ち順から通過しなかった人を除外した立ち順になる場合は、決勝の表の並びを大幅に変更しなければならないため、使用するサンプルファイルは別々になってしまいます。

(1)決勝の立ち順が「予選の成績順」の場合

(その1)までの内容では自動集計と表示の仕組みを知っていただくため、表をシンプルに構成したことにより、簡素な射会にしか対応できないものでした。そこで、決勝射詰めや予選と決勝に分かれる場合に対応するために決勝(射詰め)の成績を入力する欄を順位表に追加しました。

それによって、決勝進出条件が的中数でも順位でも順位表の上から順に決勝の結果を入力することができるようになりました。

 

▼(その1)からの主な変更点

順位表の右側に成績表の的中状況(○×)入力欄を追加したことで決勝射詰めに対応するようにしました。順位の決定は順位表の右側の表の外に追加したU列の数字(スコア)で判定するようしました。この数字は予選の的中数の100倍と決勝の的中数をそのまま足し、さらに立ち順を考慮した数字を小数点以下で表現したものを「スコア」としてU列に表示するようにし、この数字の大小から順位を求めています。

なお、立ち順の早い人を有利にしたくない場合はV列のスコア(小数点以下の数字のないもの)とこれを使用した順位(X列)を適用します。

このどちらかをそのまま順位表の(青い部分の)右端にあるS列に表示すれば良いので、S列はW列かX列の数字がそのまま表示されます。どちらを使用するかが射会によって異なるため、使用する場合はどちらになっているかを確認し、違っていれば変更してください。

サンプルファイルでは最初の状態でX列の順位が表示されるようになっており、決勝の的中数が同じ場合は同じ順位になるようにしています。

サンプルファイルは「shakaishukei2a.xls」です。

 

(2)決勝の立ち順が「予選の立ち順を基にした順序」の場合

この場合、決勝の表の並びを「予選の成績順」から予選の立ち順から通過しなかった人を除外した立ち順(「予選の立ち順に準拠した順序」)に変更しなければなりません。  そのための変更点は次の通りです。

①予選通過条件入力欄を追加

新たに予選通過者かどうかの判定をする必要があるので、予選通過条件を入力する欄を新しいシートに追加しました。「設定条件」という名前のシートの左上の予選通過条件という文字の下(オレンジ色のセル)に予選通過条件の的中数を入力してください。

②最終順位決定方法設定欄を追加

「設定条件」シートの「予選通過条件」設定欄の下に最終順位決定方法設定欄を設けました。これは最終順位を決定する際に予選の的中数を含めたすべての的中数で順位を決定するか、決勝のみの成績で決定するかを選ぶものです。決勝の成績のみの場合は0を、予選の成績も含める場合は1を、A5セル(オレンジ色のセル)に入力してください。

 

③成績表(予選)の変更

成績表では青い表の右端(P列)を「順位表示」から「予選通過表示」に変えています。
予選を通過したかどうかの判定は、X列に通過スコアを表示するようにしました。

通過スコアの関数は少々複雑になっていますが、予選通過条件以上の的中数だった場合に100、通過できない的中数では0になるようにしています。これに立ち順を考慮した数を小数点以下の数字で表現し、足したものが通過スコアです。

この部分はIF文でも実現できますが。IF文ばかりを使用するのも脳がないので、あえて関数で表現するようにしました。この通過スコアの点数が高い順に順位表示したものが隣のU列です。この部分は順位表の黄色い部分の表示に必要なのでいじらないで下さい。

なお、「予選通過表示」は予選通過条件が的中数で設定された場合に有効で、順位で設定した場合は無視してください。

 

④決勝(射詰)の成績表変更

表を見てもそれほど変わっていないように見えますが、実際は中身を大きく変更しています。

つまり、今までは予選の成績順に上から表示していたものから、予選通過者を予選の立ち順にしたがって表示するようにしたことです。これは決勝の立ち順が予選の立ち順をもとに決められるからで、それに対応する変更となっています。

また、成績表の黄色い部分の左端にあった順位表示を予選に通過したかどうかの表示に変えました。なお、本来なら順位表には予選通過者だけを表示する方が良いかも知れませんが、途中経過を表示している間はまだ予選通過していない人の成績も見られる方が良いかと思い、このような表示にしています。

そのため、予選通過者かどうかを見やすくするためにB列とT列の表示を追加しました。さらに、通過者はB列に赤字で「通過」の文字を、T列に赤い帯を表示するようにしました。

なお、R列の的中数は最終順位に予選順位を反映させるかどうかで異なる的中数が自動で表示されるようにしました。

サンプルファイルは「shakaishukei2b.xls」です。

 

ということで、本来なら(その2)はここで終わりの予定だったのですが、サンプルファイルが別々では使いにくく、一つで両方を兼ねられないかという要望があったため、頑張って作ってみました。

 

(3)決勝の立ち順が「予選の成績順」と「予選の立ち順を基にした(準拠した)順序」の両方に対応

説明が長くなるので、ここでは数式の内容説明にとどめます。

【数式例】 「成績表(予選)」の1番目(1番上)の人の的中数から「スコア」を計算する数式

=SIGN(INT(O17/設定条件!$B$5))*NOT(設定条件!$B$15)*(SIGN(設定条件!$B$7-P17+0.5)+1)/2

+INT(O17)*設定条件!$B$15+(1000-$A17)/10000

【使用する値】

O17          「成績表(予選)」の1番目(1番上)の人の的中数

P17           「成績表(予選)」の1番目(1番上)の人の順位

【設定値】

B3                   予選通過条件(「0:的中数」か「1:成績上位」かの選択 ) 未使用

B5($B$5)     予選通過の的中数を設定

B7($B$7)     上位何位以内で予選通過するかを設定

B15($B$15)   決勝の立順(「0:予選の立順に準拠」か「1:予選の成績順」かの選択 )

【数式の意味】

A:SIGN(INT(O17/設定条件!$B$5))  →的中数が予選通過条件以上の場合は1、そうでない場合は0

B:NOT(設定条件!$B$15) →決勝の立順設定値の「0」と「1」を切り替える

C:(SIGN(設定条件!$B$7-P17+0.5)+1)/2 →予選通過順位内に入った場合は1、そうでない場合は0

D:INT(O17)*設定条件!$B$15 →決勝の立順設定値が「1:予選の成績順」の場合は

的中数を示し、そうでない場合は0にする

E:(1000-$A17)/10000 →予選の並び順を0.0999から0.0001刻みに減らして表示させる

(1番目の人が0.0999、2番目の人が0.0998、3番目の人が0.0997・・・)

これらの数式を組み合わせることで、決勝の立ち順が「予選の成績順」と「予選の立ち順を基にした(準拠した)順序」の両方に対応できるようにしています。

ここで、具体的な数字でスコアがどうなるかと使用上の注意点について見てみようと思います。

【予選通過条件設定値】

的中数  B5    予選通過的中数を4中以上に設定

通過順位 B7    予選通過順位を5位以内に設定

「決勝の立順: 0:予選の立ち順に準拠」の場合のスコア(1以上が予選通過)

 

この場合、的中数と順位の両方とも予選通過条件を満たさないとスコアが予選通過できる数値にならないので、決勝通過条件と関係のない方を甘い数値(的中数の場合は1中とか、順位の場合は50位など)に設定しておく必要があります。

 

 

「決勝の立順: 1:予選の成績順」の場合のスコア

 

この場合は的中数に予選の並び順が考慮されたスコアになるので、特に問題はないと思います。

 

 

 

サンプルファイルは「shakaishukei2b2.xls」です。

 

3     サンプルファイルについて

1.便利な機能

Excelの便利な機能を利用して、的中状況(○か×)を入力するだけで順位などを自動で表示させるようにしました。なお、簡単な関数を使用しただけなのでマクロのような危険性は全くありません。

(1)射会の進行に伴って、各参加者の的中数を自動で集計し暫定順位を表示する

(2)暫定順位をもとに、成績上位者のリストを常に自動的に表示する

(3)最後の立ちが終わり的中状況をすべて入力すると、それが確定順位となります

つまり、射会の最中は参加者の的中(○、×)を入力するだけです。 さらに、

(4)的中数の代わりとなる「スコア」を計算することで、並び順の設定・変更ができるようになりました。

(5)決勝の立順設定を「予選の成績順」と「予選の立ち順を基にした(準拠した)順序」の

両方に対応できるようになりました。

 

2.サンプルファイルの入手方法

こちらから無料で入手可能です。

射会の成績をExcelで自動集計(その2) DLmarket版

 

3.サンプルファイルの使用方法

(1)サンプルデータ削除(最初に実施)

サンプルファイルには動作を確認するためのサンプルデータが入力されているので、最初にサンプルデータを削除してから使用してください。 なお、その際は水色の部分だけを削除して、それ以外の部分は基本的にはいじらないでください。

数式が入っているセルは基本的には変更禁止ですが、水色の部分にある氏名の下は、氏名を入力しなくても使えるように数式が入力されているだけなので、削除は可能です。

図 成績表(予選)シートの内容

水色の部分(所属から10となっている列)のデータを削除して使用してください

 

図 決勝(射詰め)シートの内容

水色の部分(1から10となっている列)のデータを削除して使用してください

 

(2)条件の設定

条件設定シートのB列が条件を入力する場所です。 ここでは、3つのサンプルファイルのうち、「shakaishukei2b2.xls」について説明します。

▼予選通過条件

ここに予選通過条件(的中数か成績上位か)、その場合の的中数と何位以内かを入力しておきます。

▼最終順位決定方法

決勝のみの結果で最終順位を決定するか、予選と決勝の合計で成績を決定するかを選択します。

▼決勝の立順

決勝の立順を予選の成績上位順にするか、予選の立順に準拠した順序にするかを設定します。予選の立順に準拠した順序とは、予選の立順を基本としてそこから予選通過者だけ抜き出したリストになります。

 

(3)人数と矢数の変更について

Excelの操作方法(特に関数)に詳しくない方はなるべく変更せずに使用してください。そのままでも入力できる矢数は予選・決勝ともに10射までで、参加人数は100人までに対応できますが、どうしても減らしたり増やしたりしたい場合は、サンプルデータを削除する前に変更してエラーが出ないことを確認してください。

 

 

(その3)では、称号者の部と有段者の部という具合に、複数の部門に対応する場合について対応していく予定です。 ご期待ください。

No Comments

Post a Comment