女子卓球レーティング

囲碁将棋などで有名な実力計算方式である"イロレーティング"を卓球に応用し、ITTFランキングでは測れない「実力」を試算しました。イロレーティングをもとに、トーナメントドローに応じたモンテカルロシミュレーションを加えた勝敗予想を提供します。さらにイロレーティングを超える「AIレーティング」を開発しています。

卓球ランキングポイント表計算入門(2) 〜順位を自動計算しよう〜

このブログでのポイント計算のための、表計算ソフトの使い方を、特集解説しています。使っているのはCalcですが、Excelでも同様です。

今回は、ランキングポイントから順位を自動計算してみます。順位を計算する関数はRank(求めたい順位の値, 範囲)ですが、一工夫が必要です。

以下が、前回の表計算入門(1)で求めたランキングポイントの表です。

  A B C D E F G H
1     石川佳純 伊藤美誠 平野美宇
2     成績 ポイント 成績 ポイント 成績 ポイント
               
33 ランキングポイント 過去1年間上位8大会など   13133   12710   12050

この場合、Rank関数で引用する範囲は、C33:H33となります(空白は無視されます)ので、例えば、石川選手の順位(3人の中で)は、

=Rank(D33,C33:H33)

という式で、求めることが出来ます(答えは1になります)。これを、格好良く、

  A B C D E F G H
1     石川佳純 伊藤美誠 平野美宇
2     成績 ポイント 成績 ポイント 成績 ポイント
               
33 ランキングポイント 過去1年間上位8大会など 1位  13133 2位  12710 3位 12050

と表示させたいので、先程の式を、セルC33に書き込みます。しかし、期待通りにはならず、循環参照というエラーが発生してしまいます。

これは、参照範囲にC33:H33と書いた式を範囲の中にあるC33に書いたため、自分自身を参照してしまうからです。自分自身を参照すると、式の結果が再度計算条件に組み込まれることになり、永遠に計算が終わらなくなったしまいます。それを防止するため、循環参照はエラーにするのが表計算ソフトの基本ルールです。

石川選手の順位結果セルC33は端にあるため、参照範囲をD33:H33とすれば解決しますが、伊藤選手や平野選手など、順位結果が参照範囲の中間にあるような場合、対処しようがありません。どうしましょう?

解決には少し頭をヒネる必要があり、以下のように新たな行を追加します。

  A B C D E F G H
1     石川佳純 伊藤美誠 平野美宇
2     成績 ポイント 成績 ポイント 成績 ポイント
               
33 ランキングポイント 過去1年間上位8大会など   13133   12710   12050
34       13133   12710   12050

この時、セルD34には=D33、セルF34には=F33、セルH34には=H33という式を入力し、ランキングポイントがコピーされるようにしておきます(上の図は式の計算結果です)。セルD34をコピーペーストすれば、自動的に他のセルにも平行移動した上記の式が入りますので、面倒ではありません。この際、セルC34、セルE34、セルG34には何も書かないように注意してください。

ここまでしてから、セルC33に=Rank(D33, C34:H34)と入力すると、C33は参照元C34:H34とは1行ずれており、循環参照にはなりません。同様にセルE33、セルG33にも順位の式を入れることで、循環参照を回避しつつ、33行目に順位とポイントが並んで表示されるようになります。なお、セルC33をコピーペーストしてしまうと、参照範囲も平行移動してしまうため、狙った結果は得られません。その際、セルC33を=Rank(D33, $C34:$H34)と記載すると、横方向の平行移動はしないで狙ったコピーペーストが可能になります。($記号はコピーペースト時の平行移動を抑止する設定で、C$34とすると縦移動の抑止、$C$34とすると縦横双方の抑止となります)

結果は以下のようになります。

  A B C D E F G H
1     石川佳純 伊藤美誠 平野美宇
2     成績 ポイント 成績 ポイント 成績 ポイント
               
33 ランキングポイント 過去1年間上位8大会など 1 13133 2 12710 3 12050
34       13133   12710   12050

次に、順位を数字だけでなく「位」をつけて表示するようにします。これは書式設定で通常書式の記号(表計算ソフトによって異なります)に"位"を追記することで、実現できます。ここまでの結果が以下です。

  A B C D E F G H
1     石川佳純 伊藤美誠 平野美宇
2     成績 ポイント 成績 ポイント 成績 ポイント
               
33 ランキングポイント 過去1年間上位8大会など 1位 13133 2位 12710 3位 12050
34       13133   12710   12050

最後に34行の行番号を右クリックして、行を非表示にするメニューを選択することで、この行が不可視化され、求める姿になります。

  A B C D E F G H
1     石川佳純 伊藤美誠 平野美宇
2     成績 ポイント 成績 ポイント 成績 ポイント
               
33 ランキングポイント 過去1年間上位8大会など 1位 13133 2位 12710 3位 12050

このように、最後に非表示にするつもりで途中計算をするための行や列を作ることは、表計算ソフトの中級テクニックの柱となるものです。いろいろ応用が効くので、覚えておくとよいでしょう。

なお、このブログでは、3人だけの順位ではなく、全体順位を出しています。それには、この3人だけでなく、上位選手の記録をすべてつけておき、その中で総合順位を求めることをしています。