見出し画像

麻雀データ管理(中級編)Vol.1

こんにちは。
さて今回からは中級編に移りまして、まずは何回かに分けてレーティングの算出方法を紹介していきたいと思います。

1.対局結果のシートに項目を追加し、レーティング推移シートを作成。

まず始めに、以前作った対局結果の表に新たに「対局数」「key」「対局前Rate」「卓内平均R」「HC(ハンディキャップ)」「変動値」「対局後Rate」と7つの項目を追加します。

次に新しいシートを追加し「R推移」と名前を付け、レーティング推移表を作成します。
今回は取り敢えず50人100対局分の表を作成しました。
デザインはお好みで、選手・対局数が増えていったら随時拡張していってください。

B3セルには「最新R(レーティング)」、その下には連番を入力しておいてください。

次にC2セルに「=TRANSPOSE('メンバーリスト'!$C$3:C)」と入力しますと、メンバーリストに入力されている氏名が横方向に表示されます。

2.レーティングの計算式

レーティングシステムはNET麻雀ですと「天鳳」や「MJ」「ロン2」など色々なところで採用されていますが、それぞれ計算式が違います。
ここでは「NET麻雀MJ」の計算式を参考にしていきますが、ルールや順位点などによって微調整したほうが良いと思います。
NET麻雀MJのレーティング計算式は下の画像のようになっています。

3.対局結果のシートに数式を入力

では対局結果のシートに数式を入力していきます。
まずは「対局数」
「対局者」の列に表示されている選手が何対局目になるのかを求めるので
G3セルに「=COUNTIF($D$3:D3,D3)」と入力し、G6セルまで数式のみコピーします。第1引数の範囲指定の最初のD3のみ絶対参照にするのがポイントです。

次に「key」
これは後にR推移の表に対局後のレーティングを取り込む時に必要になります。
対局者名と対局数を合わせてH3セルに「=D3&G3」入力しH6セルまで数式のみコピーします。

次は「対局前Rate」になりますが、その前にレーティング推移表に未対局の時のレーティング値を入力しておきます。
R推移表のB列は各々の対局数になります。未対局の「0」の列は全員一律に1,500になります。
直接「1,500」と入力しても良いのですが、選手名が未表示のところは空白にしたいのでC4セルに「=IF(C2="","",1500)」と数式を入力し、AZ4セルまで数式のみコピーします。

対局前Rateをレーティング推移表から抽出するにはindex-matchを使って、行が該当選手の対局前の対局数、列が該当対局者名のクロスするセルの数値を求めます。よってI3に入る数式は
=INDEX('R推移'!$B$2:$AZ$104,MATCH(G3,'R推移'!$B$2:$B$104,false)-1,MATCH(D3,'R推移'!$B$2:$AZ$2,false))
となります。ちょっと数式にすると長いですが一つ一つと読み解いていけばさほど難しいことはやっていません。
これも1試合分のI6セルまで数式のみコピーしてください。

「卓平均R」はJ3セルに「=SUM(I3:I6)/4」これは数式コピーせずに、全く同じ数式をJ6セルまで入力。

「HC(ハンディキャップ)」は「(卓平均R-自分のR)/40」となっっているのでK3セルに「=(J3-I3)/40」と入力しK6セルまで数式コピー。

「変動値」は「0.24*(SCORE+HC)」となっているのでL3セルに「=0.24*(E3+K3)」と入力しL6セルまで数式コピー。

「対局後Rate」は対局前Rateと変動値の和なのでM3セルに「=I3+L3」と入力しM6セルまで数式コピーします。

これで一対局分の数式が入力できました。
各セルに入っている数式は下の画像のようになります。
対局前Rateの数式は長いので上のものを参考にしてください。

最後に今作ったG3:M6セルを選択し、現在出来ている表の最下部までオートフィルして対局結果の表は完成です。
対局№5以下のエラー表示や0の表示が気になる方はIFERROR関数やIF関数を使って空白にしてあげると良いでしょう。

では今回はこのへんで。次回は「R推移」の表を仕上げていきたいと思います。












この記事が気に入ったらサポートをしてみませんか?