Alteryxではワークフロー内でループを行うような処理を作成できません。
データ分析のためのツールであるという性質上、処理内容はVectorizeされたもので実現できるため困る場面はあまり多くはありません。
しかし、中には同じデータに対して繰り返し処理を実行した結果を求めたい場合があります。
これは、データ分析の中では
といった場面が考えられます。
後者の場合Multi-Row Formulaツールを活用するなどで実現できますが、前者の場合通常のワークフローのみでは難しくなります。
バッチマクロについては以前解説しました。
同じループをするマクロでもバッチマクロとIterativeマクロは以下のような違いがあります。
バッチマクロは"複数のツールの組み合わせ実現すること"を"複数のデータに対して同じように適用したい"場合に有効です。
一方で計算自体はFormulaで行えたり、ワークフロー上でいくつかのツールを配置することで実現できる内容ではあるが、 同じデータに対してそれを何回も繰り返す必要があるなどの状況ではIterativeマクロが有効です。
実は、Iterativeマクロで実現できることはIterativeマクロを使わなくても実現可能です。
しかし、その場合同じ処理を何度も繰り返す非常に長いワークフローとなるでしょう。
そういった処理をIterativeマクロ化することでワークフローの実装は一度で済みます。また、同じ処理を何度もコピペなどを使って実装している途中で一部設定を変更し忘れるなどのミスも防げます。
簡単な例でIterative Macroの動きを見てみましょう。
1から10まで合計値を求めるマクロを作成します。
マクロの内容は以下のようになります。
内容の解説に入る前に、Iterative Macro固有の設定を見ていきます。
ワークフローの種類は、MacroのIterative Macroに設定します。
Iterativeマクロの場合、この設定を必ず手動で行う必要があります。
他のTypeであれば
という、「このツールが配置された場合はこれになる」というトリガーがありますが、Iterativeマクロの場合はそれがありません。
Iterative Macroに設定すると、Constantsの項目にEngine.IterationNumberという項目が追加されたのが確認できるかと思います。 これは、今何回目のループかを示す値になっています。 初回は0が入っており、1, 2, 3,...とループするたびに1ずつ増えていきます。
Iterativeマクロがどのように動作するかの設定はインターフェースデザイナーで行います。
インターフェースデザイナー左メニューからスパナのようなアイコンを選択すると以下のような画面が表示されます。
設定項目と内容は以下のようになります。
Iterativeマクロのループは実際には以下のように展開されたような動きをします。
この際の赤線の部分に相当するコネクションをIteration Input/Outputで指定するイメージとなります。
準備は整ったので、冒頭のマクロの内容を確認していきましょう。
Macro Input/Outputは1つずつしかないのでそれぞれItration Input/Outputに対応しています。
また、最大イテレーション回数は10、最大に達した時の設定は「Output left over records」としているため、10回ループして終了となるマクロです。
Formulaツールの設定は以下のようになります。
入力として受け取った値(Field1)に対して現在のループ回数(0から始まる)を足した値で更新しています。
ループを含む動きは以下のようになります。
のように計算されていきます。 1回目のEngine.IterationNumberが0から始まってるので、n回目ではn-1が足されることにご注意ください。
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.
ここにコメントを追加するには、ご登録いただく必要があります。 ご登録済みの場合は、ログインしてください。 ご登録がまだの場合は、ご登録後にログインしてください。