投稿

ラベル(Googleデータポータル)が付いた投稿を表示しています

Googleデータポータルの計算フィールドで条件分岐にはまる

Googleデータポータルには計算フィールドがある。 CASE文による条件分岐も可能である。 なので、以下の問題を簡単に解決できると思っていた。 あるフィールドに数字が12桁入っている場合最後の3桁を除いた先頭9桁を抽出する 同じフィールドにアルファベットを含む文字列が入っていた場合は小文字にするだけで桁数は変更しない CASE     WHEN REGEXP_MATCH(SKU, '^([0-9]{12}$')     THEN LEFT_TEXT(SKU,9)     ELSE LOWER(SKU) END  まぁこんな感じで楽勝と思っていた。  しかしやってみるとエラーで使えない。  データポータルのCASE文ではTHENやELSEに数式や関数を含めることが出来ないとの事。  え?  それじゃあ分岐しても出来ることが限られる。  この仕様を回避するためにはTHENの結果とELSEの結果をあらかじめ計算フィールドで作っておいて呼び出す必要がある。  そうすると目的を達成するためには三つの計算フィールドが必要になってしまう。  こんな単純な処理を実現するために三つも計算フィールドを作るのはなんか変な感じがする。それほど大変な作業ではないけど、無闇にフィールドが増えるのは管理が煩雑になる。  なのでなんとか他の方法で解決できないか考えてみた。  REGEXP_REPLACE関数でなんとかなるような気がした  こんな感じで数字12桁の時は9桁に削る   regexp_replace(SKU,'^([0-9]{9})([0-9]{3}$)','\\1')  いける気がしたが、計算フィールドにはregexp_replaceは一つしか設置出来ないようで文字列が含まれる場合に対応できないのと、そもそも置換文字列にフィールドや関数を含めることは出来ないっぽい  上の9桁に削る例でもleft_text関数とフィールドではなく、先頭9文字をキャプチャーして利用している。  まぁこれでこの計算フィールドにlower関数を行うだけの計算フィールドを作れば計算フィールドの数は2に削減される。三つ作るよりはマシか。  精度を無視すればlower(left_text(SKU,9))で、一つの計算フィールドですんでしまうんだけど、これの...

『ごっつ三国』先鋒戦用スキル連鎖確認画面 (Googleデータポータル)

イメージ
Googleデータポータルで『ごっつ三国』の先鋒戦スキル確認用画面を作ってみた。 基本的に2年前に作りかけていたものにちょっと手を入れて、魏しか入っていなかったデータに呉、蜀、漢、異民族、そして楚漢を追加した。 データは先鋒戦で活躍できる☆3のみとした。 先鋒戦スキル確認画面  ←こちらからデータポータルにアクセス。無料です。 利用方法は簡単で「発生状態」「連鎖状態」のフィルターを使って、その条件に合うスキルを持ったキャラを確認するだけである。 「連鎖状態」で暗闇を確認したあとで、フィルターをリセットして「発生状態」で暗闇を確認すれば、暗闇連鎖に必要なキャラが誰と誰かははっきりわかる。 連鎖状態「暗闇」でフィルター 発生状態「暗闇」でフィルター 「国」「クラス」でも絞り込みが可能となっている。 もっとも先鋒戦は同じ国のメンバーにしても+の効果はないので、国でフィルターする事は意味がないかもしれない。 組み合わせが確認できたほうが役に立つかもしれないが、今回はそこまでのデータは入力していない。 スキルも基本的に連鎖に関係する状態変化があるスキルをデータ化しており回復だけとかバリアとかのスキルは入力していない。(一部除く) 以前記事にしたように、先鋒戦は一時テンプレが蔓延していたが、私の于禁を中心とした編成はテンプレとはかけ離れた編成で一位になることが出来た。 それは常識を疑い、よく見かける編成の弱点を分析したからである。 テンプレが蔓延してつまらないという言葉をよく聞いていたが、実際は常識を疑うことをせずにテンプレ編成にして戦うからつまらないのであって、ちゃんと考えて戦えば面白いのである。 先鋒戦は育成が比較的楽なので、相手によって編成を変更することが可能であり属性の相性などを考えて相手によって編成を変える事でポケモンのような戦いを行うことが可能なのである。 どのような編成とお宝の組み合わせも必ず仮想敵が存在し、その仮想敵から外れた編成を組むことが勝利に繋がる。 このスキル連鎖確認画面を活用して仮想敵から外れる様々な編成を試して欲しい。 そうすることで先鋒戦はごっつ三国の中でもっとも面白い対戦であることに気がつくであろう。