見出し画像

【DLWLシート】KCカップ用の記録シートをアップデートしました(相手のスキル候補を絞り込み、超高速で入力し、デュエル時間を増やす)

こんにちは。ShunSです。

デュエリストにとって、KCカップでデュエルする時間を確保することと、情報戦に勝つことは、とても重要です。そして、私は極度の面倒くさがりです。

9月のKCカップの1stステージで自作のスコアシート「DLWLシート」を使っているとき、スキル名の選択に時間がかかってイライラしてしまったので、解決策を考えて実装してみました。

シートのリンクはこちらです。コピーしてお使いください。

DLWLシートの基本的な使い方と、最新の変更履歴については、こちらの記事をご覧ください:

解決した問題とインパクト

1キャラクターあたりのスキル数は多くても20くらいですが、登録されているスキルがすべて(200くらい)ドロップダウンに表示されて、選ぶのが大変でした。

選択したキャラクターが持つスキルだけが表示されるようにしたことで、以下のような効果がありました。

1) スキルの選択時間が5秒→1.5秒ほどに短縮(3回ずつ測定した平均)

1戦あたり3秒、300戦すると900秒=15分短縮されます。それだけデュエルに使える時間が増えます。もしかすると3分の後攻ワンキルを5回繰り返して最後にDPが5000盛れるかもしれません。

2) 相手のスキルの可能性をすぐに絞り込める

相手キャラクターが表示されたときに、そのキャラクターが持つスキルをすぐに記録シート上で確認できます。攻略サイトをChromeの別のタブに開いて参照したこともありましたが、スキル情報は最新になっていなかったり、タブを切り替えるのが面倒だったりして、結局見るのをやめていました。

3) シートのメンテナンスの責任感が増した

今までは、よく見るスキルだけを入力して、「あくまで自分用のツールです」感を出すことができていました。しかし、全キャラの全スキルを網羅することで、「しっかりしたツール」感が出てしまい、私のシートの管理が少し大変になりました。私がデュエルリンクスを続け、KCカップに参加する限りは、KCカップの2ndステージの前日までには最新の状態に更新しようと思います。

この記事を読む方へのお願い

今回のアップデートは、スキル選択という1つの機能にだけ現れていますが、内部的には結構大規模な変更です。実装方法を考えたり、残りの100以上のスキルを入力したり、キャラクターとスキルをマッピングしたりする作業に合計5時間ほどかかりました。

1回のKCカップで15分ずつ恩恵を受けたとしても、自分だけで5時間分の投資を回収するには時間がかかりすぎます。そこで、この記事を読んでくださった方にもDLWLシートをご活用いただき、皆さんの時間短縮に役立てていただければ、私の努力が報われるので嬉しいです。

もちろん私のシートをそのまま使わなくても、皆様の記録シートに
・動的ドロップダウンの実装方法の流用
・キャラクターとスキルのマッピングの流用
をしていただくのも大歓迎です。

ぜひ、ご活用・ご拡散のほどお願いします。そして、この記事を読んで役に立つと思って、100円払ってもいいと思われた方がいたら、記事のご購入をお願いします!コメントも歓迎です。

技術的課題

ここからは、お時間と興味のある方向けです。

前提として、Googleスプレッドシートでドロップダウン(プルダウン)から選択するには、そのセルに「データの入力規則」としてセル範囲か値リストを設定します。

やりたいことは、キャラクターを選択したら、そのキャラクターが持つスキルだけを「データの入力規則」でドロップダウンとして表示したいということです。今回この動的ドロップダウンを実装するにあたって、2つの技術的課題がありました。

1) 「データの入力規則」ルールで参照できるのは固定のセル範囲のみ

画像1

2) 「データの入力規則」ルールは相対的に(連続的に)コピーできない

画像2

技術的課題1の解決

インターネットで調べた結果、INDIRECT関数を使って特定のセル範囲を動的に更新し、そのセル範囲を「データの入力規則」で参照することが基本的なアイデアになります。

画像3

調べた範囲では、「名前付き範囲」を作成してそれらを参照することがポピュラーな方法でした。しかし、範囲に1つずつ名前をつけていくのが面倒で、保守性も悪くなると思ったので、検索や参照の関数を組み合わせることにしました。しかも、スクリーンショットを撮るときに気付いたのですが、名前付き範囲の名前に括弧は使用できないようです。

画像4

工夫したこととしては、Dropdownシートでキャラクターとスキル名をマッピングするとき、スキル名の入力にINDIRECT関数を使用し、行ごとに別の値をコピーし直さなくてもよいようにしました。これで各行3秒、300行で合計900秒=15分ほど節約できていると思います。

画像6

技術的課題2の解決

StackOverflowにあったスクリプトで一瞬で解決しました。
ツール > スクリプトエディタにスクリプトを貼り付け、スプレッドシートを更新するとメニューが表示されます。1行ごとにデータ入力規則を簡単に相対的に(連続的に)設定することができました。

画像6

先人たちは偉大。

2022年5月23日更新

これは有料記事でしたが、購入者がほぼいないため、有料プラン部分を削除して無料化しました。ご購入いただいた方、ありがとうございました!有料部分はメールで届いていると思いますが、問題がありましたらご連絡ください。


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