Free Trial

ブログ

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

Analytic Appやマクロは再利用されることが前提となるため、ワークフロー作成時にはどのようなデータが入力として与えられるかわからない場合があります。
定期的に同じフォーマットで生成されるデータに対する処理などであれば、常に同じ形式のデータを想定していればいいわけですが、ある日列の増減があったりする場合もあります。
また、汎用的に作られたマクロなんかだとそもそも受け取る可能性のあるデータなんて予想できません。

 

例えば何らかの数値計算を行うようなマクロを作成したとしましょう。
この場合、文字列など他の型のデータを扱うことはできません。
List Boxツールなどで利用者側に数値の列のみに絞ってもらうような設定をすることは可能ですが、それを守ってくれる保証はありませんし、その制約に気付かずエラーが出て困ることもあるかもしれません。
このような場面で活用したいのがDynamic Selectツールです。
通常のSelectツールはあらかじめどのような列を持ったデータが入力されるか分かったうえでそれぞれにチェックを入れたり外したりといったツールでしたが、Dynamic Selectツールでは"特定の条件を満たす"列で絞り込むことが可能です。

 

Dynamic Selectツールでできること

「Dynamic Selectツールでは"特定の条件を満たす"列で絞り込むことが可能です。」
と書きましたが、具体的にはどのようなことが可能なのでしょうか?
例えば、以下のようなことが可能です。

 

  • 特定の型のデータのみに絞り込む
  • 列名に特定の文字列を含むものみに絞り込む

これらの例にDynamic Selectツールの使い方を見てみましょう。
以下のようなデータを対象に処理を行ってみます。

 

data.png

 

特定の型のデータのみに絞り込む

まずは、特定の型で列を絞り込んでみます。
これは、非常に簡単です。

 

select_type.png

 

Dynamic Selectツールの設定で「Select Field Types」を選択した状態で、対象となる型を選択します。
右側にある「Numeric」や「String」で数値や文字列のみにチェックが入った状態にすることも可能です。
なお、上記画像は「Numeric」を選択した結果となっています。

これでワークフローを実行すると以下のような結果が得られます。

 

result_type.png

 

この方法によって、"数値のみが対象の処理"、"文字列のみが対象の処理"といった形式にデータを分けられるので、どのようなデータがマクロに入力されたとしても条件が満たされていることが保証されます。

 

列名に特定の文字列を含むものみに絞り込む

こちらの方法を実現するには「どのような文字列が含まれているか」を指定するためのFormula式を記述します。

 

select_formula.png

 

Formula式で条件を記述する際は「Select via a Formula」を選択して下部のExpressionにTrue/Falseを返すFormula式を記述します。
これはFilterツールの列版のような動きとなっており、Trueを返す列のみが出力対象となります。
式自体は通常のFormula式と何ら変わりなく、画像中のものは「列名に"Width"を含む」が条件となっています。

出力は以下のようになります。

 

result_formula.png

 

Dynamic Selectツールでは列名、何番目の列か、型の情報などが変数として利用可能です。
利用可能な変数一覧はFieldを展開すると確認できます。
変数には列の型情報なども含まれるため、先ほどの「特定の型で絞り込む」と同じことをFormula式で記述することも可能です。

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.