【参加者管理⑥】コース別ラウンドの参加コースを振り分ける
前回:【参加者管理⑤】各Rの勝者を集計する
前回で2Rまでは完成しました。
次は、1Rシード+2Rの勝者を3Rの各コースに振り分けていきます。
ここで、「コース別クイズ」の説明を一応しておきます。
これは、4~5個程度の異なるルールを設け、その時点で勝ち残っている参加者を各コースに分割して試合を行い、勝ち抜け者を決定するというものです。
多くの大会では、第1ラウンドのペーパークイズ、第2ラウンドのシンプルなm○n×クイズを経て、第3ラウンドにコース別が行われることが多いです。
参加コースは、多くの場合、1Rのペーパークイズにて、解答用紙に参加希望を書き(例:コースが4つある場合、a→d→b→cのように書く。このときaコースがその人の最も参加したいコースで、その次に参加したいコースがdコース…)、ペーパークイズの上位順に高い希望コースが通る、というシステムです。上位から希望コースを決めていき、あるコースが途中で定員に達してしまった場合は、もうこれ以上そのコースの希望は通らず、次に希望度の高いコースが定員かどうかをチェックする、というわけです。
この各参加者の参加コースをExcelに処理してもらおう、というのが今回のねらいです。
ペーパークイズの答案を採点し終わり、点数とコース別希望をExcelに入力すれば、自動的に各参加者の参加するコースが出力されるようにします。
それでは前回の続きから作っていきたいと思います。
今回までの完成品はこちらです。
これは、次のステップで、数式上、シード選手と2R勝者を統一的に扱うためです。
まず、ペーパークイズ1位の選手は必ず第1希望に選択したコースに参加できます。
したがって、J3セルには以下の数式を入力します。
=D3
第1希望のコースそのままを参照すればいいですね。
続いて、2位以下の選手の参加コースです。
J4セルに以下の数式を入力し、J62セルまでオートフィルします。
=IF(I4="","",IF(COUNTIF($J$3:$J3,D4)<8,D4,IF(COUNTIF($J$3:$J3,E4)<8,E4,IF(COUNTIF($J$3:$J3,F4)<8,F4,G4))))
まず、I列に何も文字が入力されていない場合は、3Rには参加しない選手なので、何も表示しません。
次に、1位からその選手の1つ上位のプレイヤーまでの参加コース(J3~J○まで)をチェックして、もしその選手の第1希望コース(D列)に既に参加が決定している選手の数が8人未満であれば、その選手は第1希望のコースに参加できます。
もし既に8人に達してしまった場合は、次に第2希望コース(E列)について同様にチェックします。第3希望(F列)も同様にチェックし、最後までダメならば、仕方なく第4希望のコース(G列)に参加してもらうわけです。
ペーパー下位の2R勝者は希望通りのコースに参加できないことがわかります。
ここには、「その選手が参加するコースの中で、その選手のペーパー順位は上から何番目か?」という数字を表示させます。
K3セルに以下の数式を入力し、K63セルまでオートフィルします。
=IF(J3="","",COUNTIF($J$3:$J3,J3))
まずは3R参加者かどうかをチェックしてから、COUNTIF関数を使って、自分の参加コースが何番目かを表示させます。
J3セルからその人のJ列のセルまでの範囲の中に、その人の参加コースの文字がいくつあるかを処理させています。
※以前の記事では一番左の列には「1,2,3,4」と入力していましたが、「a,b,c,d」と入力してください。
Q10セルに以下の数式を入力し、X13セルまでオートフィルします。
=SUMPRODUCT(($A$3:$A$62)*($J$3:$J$62=$P10)*($K$3:$K$62=Q$3))
SUMPRODUCT関数の出番です。ここでは、3つの配列をチェックし、条件にあうものだけを抽出します。
このようにして、参加コース(a~d)とコース内順位(1~8)の各組み合わせに適する選手を表示していきます。
あとは、このテーブルをもとに、前々回(参加者管理シリーズ第4回)のやり方を参考にしながら、3R各コースのシートに選手名・1R順位を表示します。
また、前回(参加者管理シリーズ第5回)の方法を参考にして、3R勝者の集計も行うことができます。
(次回に続く)
得点表示シートとは別に、このようなシートを作っておけば、3Rの参加者を招集する際、参加者に自分のコースを早い段階で把握させることが可能となり、大会進行がスムーズになることでしょう。
2Rと3Rの休憩中に表示してみてはいかがでしょうか。
作り方は簡単です。3Rの席順テーブルをもとにINDEX関数とMATCH関数のあわせ技を使えばいいだけです。
ただ、画面が横長である以上、4コース32名の参加者を一斉に表示するのであれば、縦書きの名前を4行×8列に並べるよりも、上の画像のように、横書きの名前を8行×4列に並べて表示した方が、字が小さくならず見やすいかもしれません。
数式は記事冒頭に示したファイルを参照してください。
前回で2Rまでは完成しました。
次は、1Rシード+2Rの勝者を3Rの各コースに振り分けていきます。
ここで、「コース別クイズ」の説明を一応しておきます。
これは、4~5個程度の異なるルールを設け、その時点で勝ち残っている参加者を各コースに分割して試合を行い、勝ち抜け者を決定するというものです。
多くの大会では、第1ラウンドのペーパークイズ、第2ラウンドのシンプルなm○n×クイズを経て、第3ラウンドにコース別が行われることが多いです。
参加コースは、多くの場合、1Rのペーパークイズにて、解答用紙に参加希望を書き(例:コースが4つある場合、a→d→b→cのように書く。このときaコースがその人の最も参加したいコースで、その次に参加したいコースがdコース…)、ペーパークイズの上位順に高い希望コースが通る、というシステムです。上位から希望コースを決めていき、あるコースが途中で定員に達してしまった場合は、もうこれ以上そのコースの希望は通らず、次に希望度の高いコースが定員かどうかをチェックする、というわけです。
この各参加者の参加コースをExcelに処理してもらおう、というのが今回のねらいです。
ペーパークイズの答案を採点し終わり、点数とコース別希望をExcelに入力すれば、自動的に各参加者の参加するコースが出力されるようにします。
それでは前回の続きから作っていきたいと思います。
今回までの完成品はこちらです。
【作り方】
①シード選手らの「2R通過順位列」に適当に文字を入れる
まず下準備として、12人のシード選手の2R通過順位列の部分に、何かの文字を入力します。ここでは全部1を入力しました。これは、次のステップで、数式上、シード選手と2R勝者を統一的に扱うためです。
②「3R参加組列」に数式を入力し、各選手の参加コースを表示する
いよいよ、各選手の参加組を決定していきます。まず、ペーパークイズ1位の選手は必ず第1希望に選択したコースに参加できます。
したがって、J3セルには以下の数式を入力します。
=D3
第1希望のコースそのままを参照すればいいですね。
続いて、2位以下の選手の参加コースです。
J4セルに以下の数式を入力し、J62セルまでオートフィルします。
=IF(I4="","",IF(COUNTIF($J$3:$J3,D4)<8,D4,IF(COUNTIF($J$3:$J3,E4)<8,E4,IF(COUNTIF($J$3:$J3,F4)<8,F4,G4))))
まず、I列に何も文字が入力されていない場合は、3Rには参加しない選手なので、何も表示しません。
次に、1位からその選手の1つ上位のプレイヤーまでの参加コース(J3~J○まで)をチェックして、もしその選手の第1希望コース(D列)に既に参加が決定している選手の数が8人未満であれば、その選手は第1希望のコースに参加できます。
もし既に8人に達してしまった場合は、次に第2希望コース(E列)について同様にチェックします。第3希望(F列)も同様にチェックし、最後までダメならば、仕方なく第4希望のコース(G列)に参加してもらうわけです。
ペーパー下位の2R勝者は希望通りのコースに参加できないことがわかります。
③「3R順番列」に数式を入力し、各選手の参加コース内での順位を表示する
続いてそのお隣のK列の数式です。ここには、「その選手が参加するコースの中で、その選手のペーパー順位は上から何番目か?」という数字を表示させます。
K3セルに以下の数式を入力し、K63セルまでオートフィルします。
=IF(J3="","",COUNTIF($J$3:$J3,J3))
まずは3R参加者かどうかをチェックしてから、COUNTIF関数を使って、自分の参加コースが何番目かを表示させます。
J3セルからその人のJ列のセルまでの範囲の中に、その人の参加コースの文字がいくつあるかを処理させています。
④3Rの席順テーブルに各コースの参加者の1R順位を表示させる
3Rの席順テーブルに参加者を表示させていきます。※以前の記事では一番左の列には「1,2,3,4」と入力していましたが、「a,b,c,d」と入力してください。
Q10セルに以下の数式を入力し、X13セルまでオートフィルします。
=SUMPRODUCT(($A$3:$A$62)*($J$3:$J$62=$P10)*($K$3:$K$62=Q$3))
SUMPRODUCT関数の出番です。ここでは、3つの配列をチェックし、条件にあうものだけを抽出します。
(1)A3:A62・・・1R順位
(2)J3:J62・・・3R参加組
(このうち、P列のセルに書いてあるコースだけをふるい分ける)(3)K3:K62・・・3R参加コース内順位
(このうち、3行目のセルに書いてあるコース内順位だけをふるい分ける)このようにして、参加コース(a~d)とコース内順位(1~8)の各組み合わせに適する選手を表示していきます。
あとは、このテーブルをもとに、前々回(参加者管理シリーズ第4回)のやり方を参考にしながら、3R各コースのシートに選手名・1R順位を表示します。
また、前回(参加者管理シリーズ第5回)の方法を参考にして、3R勝者の集計も行うことができます。
(次回に続く)
おまけ:3Rコース別の参加者一覧表を作る
得点表示シートとは別に、このようなシートを作っておけば、3Rの参加者を招集する際、参加者に自分のコースを早い段階で把握させることが可能となり、大会進行がスムーズになることでしょう。
2Rと3Rの休憩中に表示してみてはいかがでしょうか。
作り方は簡単です。3Rの席順テーブルをもとにINDEX関数とMATCH関数のあわせ技を使えばいいだけです。
ただ、画面が横長である以上、4コース32名の参加者を一斉に表示するのであれば、縦書きの名前を4行×8列に並べるよりも、上の画像のように、横書きの名前を8行×4列に並べて表示した方が、字が小さくならず見やすいかもしれません。
数式は記事冒頭に示したファイルを参照してください。
コメント
コメントを投稿