Free Trial

ブログ - 日本語

アナリティクスに関する聡明な考えに触れ、インサイトとアイデアが得られます。
ozawa
ACE Emeritus
ACE Emeritus

以前Dynamic系ツールの紹介記事を書いていましたが、Dynamic Replaceだけ書いていないことに気づきましたw

 

利用シーンを考えるのが難しいけど、使いこなせるとワークフローの汎用性を高めるのに役立と便利なツールにDynamic Replaceがあります。
Dynamic Replaceで出来ることを見ていきましょう。

 

Dynamic ReplaceツールFormulaツールと同様に既存の列の値を変更したり、新しい列を生成できます。
その動きは

 

  •  特定の列が
  • 特定の条件を満たすとき
  • 新しい値で置き換える

というものになります。この動きはFormulaツールでもif ~ thenやiif関数を使って実現可能ですが、その違いは"条件式をデータとして渡す"という部分になります。

 

実際の動きを確認してみましょう。
試験を受けた人のIDごとの得点が記録されたデータがあるとします。

 

fig1.png

 

この得点に対して、A~Eの5段階で評価値を付けます。
その基準は100点満点で20点刻み評価を落としていくものとします。

 

Formulaツールであれば、if ~ elseif ~ elseif ~ ...としたりで実現することになります。
このケースでは5段階なので、それほど多くないですが対象とする条件が多くなったり複雑になったりすると、フォーミュラ式内で何をやっているのかが把握しづらくなります。

 

Dynamic Replaceツールを使うことで、これらの条件を別途データとして用意しておいて、それをそのまま利用可能になります。

 

fig2.png

 

Dynamic Replaceではこのデータを活用できます。
まずは、どの条件を満たした時にどの評価になるのか、というフォーミュラ式を文字列で作成します。

 

fig3.pngfig4.png

 

これで、元の得点データをもとに

 

  • 「target」となる列に
  • 「得点範囲」の条件を満たした時
  • 「評価列」の値を入れる

という操作をするための条件式が出来上がりました。
評価基準をExcelなどの別ファイルでで管理していてそれをAlteryxで読み込ませていれば、
基準が変わった時には元ファイルのみの修正でよくなります。

 

このデータを使って評価結果を得点データに付与します。
Dynamic Replaceツールでは新規に列を作成できないのであらかじめFormulaツールで「評価」列を作成しておき、ダミーデータを入れておきます。

 

fig5.png

 

Dynamic Replaceツールの「D」に得点データ、「R」に評価基準のデータを接続します。
以下のように対応する項目の列を設定値としてしています。

 

fig6.png

 

ツールの「O」出力の結果を確認すると評価結果が付与されています。

 

fig7.png

 

出力対象も動的に


Dynamic Repalceツールでは、Values are Expression/Formulasにチェックを入れることで出力対象となるものもフォーミュラ式であると判断して、実行した結果を出力することも可能です。

 

より複雑な処理となりますが、マクロなどでより汎用性を高めたものを実装する際には活用できるかもしれません。
この部分の詳細は弊社ブログ記事も解説しているため、併せてご参照ください。

 

 

Yuya Ozawa

My hobby is to create workflows that prohibit the use of maniac techniques and specific tools. I can use both R and Python, but for the time being, I'll do it with Alteryx. Working in data analysis and machine learning.

My hobby is to create workflows that prohibit the use of maniac techniques and specific tools. I can use both R and Python, but for the time being, I'll do it with Alteryx. Working in data analysis and machine learning.