陸上競技大会の決勝進出者抽出シート
100Mや200Mで、予選がおこわれたあと、決勝進出者の一覧を作るのは、案外ややこしいです。予選の各組の上位2名と、予選の組を問わず上位2名以下からタイムの速い選手を2名抽出し、合計8名にする、という条件がある場合、数字とにらめっこしながら頭がこんがらがってしまいそうになります。
もしかしたら、一度エクセルに入力してしまって、自動計算をさせたほうがいいのかも、ということでちょこっと作ってみました。
陸上競技大会以外でも応用できるテクニックがあると思うので、ここで公開します。
【1】各予選のタイムとゼッケンを入力するセルを作ります。
タイムは、例えば「15秒3」であれば、「153」と数字だけを入力します。比較ができればいいので、全部を入力する必要はありません。
タイムの隣の「仮変換」と名付けたセルは、タイムを100倍して、列番号を足した値となっています。こうすることで、全く同じタイムであっても、必ず異なる数値になり、重複せずに抽出することができます。
セルC3には、
=IF(B3=“”,“”,B3*100+ROW(B3))
セルE3には、
=RANK(B3,$B$3:$B$10,1)
という数式が入っています。
これをオートフィルで埋めます。
【2】決勝進出候補をリストアップします。
指定した範囲の中で、何番目かに小さい値を求めるのは、SMALL関数を使います。
セルB31には、
=SMALL($C$3:$C$28,A31)
特定の値を探して、どこにあるかを求めるのには、MATCH関数を使います。
セルC31には、
=MATCH(B31,$C$3:$C$28,0)
という数式が入っています。
求めた位置に基づいて、ゼッケン番号を導きます。
セルD31には、
=INDEX($D$3:$D$28,C31)
という数式が入っています。
予選組の順位を参照します。上位2名という指定を目視するためです。
セルE31には、
=INDEX($E$3:$E$28,C31)
という数式が入っています。
見やすいように記号を表示させます。
セルF31には、
=IF(E31<$E$1+1,“○”,“”)
という数式が入っています。
【3】決勝のレーンを決定します。
決勝で中央からゴールすると判定がしやすいということで、「並べ方」というところに指定したように並べ替えます。
セルD43には、
=INDEX($D$31:$D$40,B43)
という数式が入っています。
【ポイント】
「予選の各組の上位2名と、予選の組を問わずそれ以外からタイムの速い選手を2名抽出し、合計8名にする」と説明されると、文章通りに上位2名を求めてから、それ以外の選手を抽出して、速い選手を抽出することを考えてしまいますが、そうすると最後にレーンを決定する処理が複雑になります。
しかし、発想を変えて、とりあえず全部を並べてしまったほうがシンプルになるのがわかると思います。