Alteryxの分岐ツールで、条件によって動的に分岐させる
Alteryxのワークフロー内で異なる処理を行う場合、分岐ツールを使用するケースがあるかと思います。本来ならば、分岐の処理を行うにはインターフェースからチェックを入れて実行するのが一般的ですが、今回はこの分岐を動的にできないか試してみました。
環境
- Windows 10 Pro
- Alteryx Designer 2022.1.1.42619
分岐ツールとは
冒頭で説明した通り、分岐ツールはワークフローの処理の中で分岐を作り、異なる二つの処理を実行させるツールで、開発者カテゴリの中にあります。分岐ツールは2つの出力アンカーがあり、チェックを外した状態だとLアンカーの方に処理が流れ、チェックをした状態だとRアンカーへと処理が流れます。
処理の流れのイメージ
実際にやってみる
ユースケース
社員の入社日管理を管理しているシートが、新年度からフォーマットが変わってしまったので、新年度以降のデータのみフォーマットを直した状態で集計したい
- 使用データ
- 2020年
- 2021年(新フォーマット)
- 同一ファイルで別のシート名で管理される形式
- 2020年
- 最終的に作成したワークフロー
ファイルの読み込み設定①:ワークフロー側
このユースケースでは、同一ファイル内の複数シートを読み込む設定が必要になります。シート間で同じデータ構造であれば動的入力ツールなどでも設定可能ですが、今回は異なるデータ構造を持つため、バッチマクロによるデータ読み込みを行います。
- 「データ入力」でシート名のリストを取得する
- ファイル名をフィールドで出力する:フルパス に設定
- ファイル名をフィールドで出力する:フルパス に設定
- 「フォーミュラ」を接続し、シート名を含んだフルパスを取得
- 「Full Path」という名前でマクロに渡すシート名のカラムを作成
- マクロの処理に必要な「Swicth」というカラムを作成※詳細は後述
- 「Full Path」という名前でマクロに渡すシート名のカラムを作成
ファイルの読み込み設定②:マクロ側
マクロ側では、先ほど作った「Full Path」からのデータを受け取ってデータ入力を行う設定を行います。
- 一旦普通に「データ入力」の設定を行います
- この後の処理の関係上、新フォーマットの2021年のデータを読み込み
- この後の処理の関係上、新フォーマットの2021年のデータを読み込み
- 「コントロールパラメーター」をワークフローに追加しデータ入力ツールに接続
- 追加すると、「アクション」が自動的に追加されます
File - value= (ファイルパス)
の部分を選択しアクティブにし、アクションタイプを「値を更新」に設定
- コントロールパラメーターのラベルは「Full Pathを更新」に変更します
- 追加すると、「アクション」が自動的に追加されます
ファイルの読み込み設定としては以上です。
分岐処理の作成:マクロ側
ここからがポイントとなる分岐の処理の作成のフローとなります
- 「分岐」をデータ入力ツールに接続
- 今回は、Rアンカーからの処理で2021年以降の新フォーマットの加工を行い、Lアンカーから処理が不要の2020年以前のデータを流していきます
- 分岐後に行いたい処理の確認をしやすくするため、この時点でツール設定のチェックは入れておきます
- 分岐ツールのRアンカー側に、任意の加工を追加していく
- 今回のユースケースでは、「last_name」と「first_name」を結合し、カラム名を日本語に直す処理を行いました
- ここでの注意点ですが、加工するデータは2020年のデータ構造と全く同じになるように調整しています
- 「分岐終了」と「マクロ出力」を接続
- 旧フォーマットの場合は処理が不要なのでそのまま接続しています
- 旧フォーマットの場合は処理が不要なのでそのまま接続しています
- この時点で、分岐にチェックを入れた場合と入れなかった場合のそれぞれのアウトプットを確認してみます
- チェックを入れた場合で実行すると、Rアンカーへ処理が流れるため、加工が正しく反映されていました
- チェックを外すLアンカーへ流れるため、追加の処理はスキップされ元のフォーマットのままです
- チェックを入れた場合で実行すると、Rアンカーへ処理が流れるため、加工が正しく反映されていました
分岐のチェックを動的にする:マクロ側
さて、先ほどまでは手動でチェックをして分岐をさせていましたが、これを動的に行えるようにします。分岐ツールは、True/Falseのフラグによって制御されているため、先ほど作成した「Switch」のフラグを使用して分岐のチェックを行っていきます
- 「分岐」に「コントロールパラメーター」を接続する
@value - value (True/False)
の部分を選択しアクティブにし、アクションタイプを「値を更新」に設定
- ワークフロー側で作成した「Switch」のカラムを改めて確認すると、シート名が2021年以降の場合は「True」、それ以外は「False」になっているため、2021年以降がTrueになり分岐にチェックが入る仕組みとなっています
こちらでマクロの作成は完了です
マクロの設定と任意の集計を実施:ワークフロー側
- 先ほど作ったマクロを追加
- マクロに渡すパラメーターの値をそれぞれ設定する
- マクロに渡すパラメーターの値をそれぞれ設定する
- 任意の集計を行う
- 今回は、入社日毎の人数を集計しました
- 今回は、入社日毎の人数を集計しました
これですべての設定が完了しました
最後に
いかがでしたでしょうか。こういったケースは多くはないと思いますが、分岐ツールは便利なツールなので是非使った見てください。