![見出し画像](https://assets.st-note.com/production/uploads/images/34384201/rectangle_large_type_2_a6a13a0e623ed5e0b41ea6ddae13c7ef.png?width=1200)
【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](https://assets.st-note.com/production/uploads/images/34384371/picture_pc_8b5433cc8de807e636093b0364b3edf0.png?width=1200)
2) 「データの入力規則」ルールは相対的に(連続的に)コピーできない
![画像2](https://assets.st-note.com/production/uploads/images/34384472/picture_pc_88fee2fcd8ff8ce89e89c0e3122c6bfa.png?width=1200)
技術的課題1の解決
インターネットで調べた結果、INDIRECT関数を使って特定のセル範囲を動的に更新し、そのセル範囲を「データの入力規則」で参照することが基本的なアイデアになります。
![画像3](https://assets.st-note.com/production/uploads/images/34384567/picture_pc_d8ee9378570cd6a4a0a5565a641af86e.png?width=1200)
調べた範囲では、「名前付き範囲」を作成してそれらを参照することがポピュラーな方法でした。しかし、範囲に1つずつ名前をつけていくのが面倒で、保守性も悪くなると思ったので、検索や参照の関数を組み合わせることにしました。しかも、スクリーンショットを撮るときに気付いたのですが、名前付き範囲の名前に括弧は使用できないようです。
![画像4](https://assets.st-note.com/production/uploads/images/34384602/picture_pc_b9f7416c02cb023d9b4f4f9812698299.png?width=1200)
工夫したこととしては、Dropdownシートでキャラクターとスキル名をマッピングするとき、スキル名の入力にINDIRECT関数を使用し、行ごとに別の値をコピーし直さなくてもよいようにしました。これで各行3秒、300行で合計900秒=15分ほど節約できていると思います。
![画像6](https://assets.st-note.com/production/uploads/images/34385208/picture_pc_631212246bd6cd343eccd8e43b4ddd4c.png?width=1200)
技術的課題2の解決
StackOverflowにあったスクリプトで一瞬で解決しました。
ツール > スクリプトエディタにスクリプトを貼り付け、スプレッドシートを更新するとメニューが表示されます。1行ごとにデータ入力規則を簡単に相対的に(連続的に)設定することができました。
![画像6](https://assets.st-note.com/production/uploads/images/34384796/picture_pc_f1959c142a71177c9bc180a092aec5f6.png?width=1200)
先人たちは偉大。
2022年5月23日更新
これは有料記事でしたが、購入者がほぼいないため、有料プラン部分を削除して無料化しました。ご購入いただいた方、ありがとうございました!有料部分はメールで届いていると思いますが、問題がありましたらご連絡ください。
この記事が気に入ったらサポートをしてみませんか?