どうも、めんたいです。
タイトルにあります通り、今回はいつもと違うtips(のようなもの)共有回です。
前回、当ブログにて紹介した順位集計システムですが、OBSに表示させる方法は機能していたものの、順位集計の方に問題があり実用化には至りませんでした。(現在エクセルファイルは非公開です)
今回はそのリベンジ!!ちゃんと使えることも確認してますよ!!
エクセルファイルの共有は諸般の事情で出来ませんが、技術的に使えそうな部分はぜひ使ってもらえると嬉しいです。
皆でもっと耐久レース配信を楽にしましょう!
(そうすればレースも増えて盛り上がってみんなハッピーなはず)
作成のきっかけ
今回は「#IMSA_GT7」という、アメリカで人気の耐久レース「IMSA」を模したレースの集計役でお呼ばれしたため、そこで使用するために作成しました。
前回のシステムの問題点を改修しつつ、より楽に集計ができるよう工夫をしております。
先日行われたテストレースの配信映像で、動作の様子をご確認いただけます。
(序盤はGT7のUIバグに翻弄され順位集計が出来ませんでしたが、いい対処法を思いつき50分経過あたりで稼働し始めます)
集計のシステム
こちらがエクセルでの集計画面です。列ごとに見ていきましょう。
A列・・・クラスごとの順位
IMSA_GT7ではGTPクラスとGTDクラスの2クラス開催だったため、クラス別で順位を出すために使用していました。
=RANK(AB2,$AB$2:$AB$5)
で出しています。
後述しますが、AB列で現在の予想周回数を算出していますので、その周回数が最も多い順に(クラス内で)順位付けをしてもらっています。
AB2からAB5までなのはGTPクラスを対象にしているためで、下のGTDクラスの方はAB6からAB12までを対象としています。
B列・・・総合順位
こちらは総合順位を出すために使用していました。
A列のRANK関数が$AB$2:$AB$12になっただけです。
C列~G列・・・チーム情報
ここはチーム情報を入力しているだけです。
配信画面に表示される情報なので表記には注意しています。
また、E列ドライバー情報については、各チームどのドライバーが走っているか確認し、表記に注意しつつ集計もする・・のは大変だと感じたため、別途「TeamData」シートを作成。
例えばここでは、4号車のドライバー4名が記載されたセルを選択し(D2:G2)、この4セルを「flugel1」と命名。
そして先程の集計用シートにて、各チーム対応する行に命名した名前を入力。(私はAJ列に入力)
あとは各チームのE列に対し、「データ」→「データの入力規則」にて、「リスト」を設定。
「INDIRECT」関数を使用し、例えば「flugel1」という名前がついた範囲にあるものでリストを作成する、という具合に設定しています。
ま、これは自己満足です。
ドライバー交代が頻繁に行われれば行われるほど役に立ちます。労力対効果は考えて導入しましょう。
H列~J列・・・タイムギャップ計算
・H列:総合トップから自車が何秒遅れているかを示す。以下H2セルでの例。
=IF(B2=1,"Leader",(VLOOKUP(1,$B$2:$AB$12,27,FALSE)-AB2)*Z2)
総合順位で見ているので、参照するのは総合順位を示すB列。
要は「総合1位なら、”Leader”と示す、そうでないなら1位のB~ABの27列目(つまりAB列)を探し、1位のラップ数ー自分のラップ数×Z2(1周のラップタイム)でタイム差を出す」と指示しています。
・I列:クラストップから自車が何秒遅れているかを示す。以下I2セルでの例。
=IF(A2=1,"Leader",(VLOOKUP(1,$A$2:$AB$5,28,FALSE)-AB2)*Z2)
範囲や参照するセルなどが若干変わりましたが、やっていることは概ね同じ。
今回はクラス順位で見ているため、参照するのがA列というだけです。
・J列:クラス前車から自車が何秒遅れているかを示す。以下J2セルでの例。
=IF(A2=1,"Interval",(VLOOKUP(A2-1,$A$2:$AB$5,28,FALSE)-AB2)*Z2)
これも理屈はI列と似ているのですが、今回比較するのが自車の1つ上の順位の車ということ。
したがって、VLOOKUPの検索条件を「自分の順位-1」=「1つ上の順位」のデータとしているわけです。
あとは特に変わりません。
長くなってきたので2ページ目に続きます。