Alteryxの反復マクロを使って貯金のシミュレーションをする!

2023.12.22

突然ですが、冬はなにかと物欲が掻き立てられる季節ですよね。来年こそはアレを買おう、、と思いつつも貯金の計画がうまく立てられなかったりしませんか?そんな時のために、Alteryxでの反復マクロを使って貯金のシミュレーションを作ってみました!

反復マクロとは

反復マクロは、繰り返しの処理をWFの中に組み込むことができる機能です。過去のブログでも多数紹介されていますので、詳しくはこちらをご参考にしてください。

動作環境

  • Windows 10 Pro
  • Alteryx Designer 2022.1.1.42619

やってみる

やりたいこと

  • 目標貯金額と、月あたりの貯金額を記載することで、何か月目で目標を達成できるかわかるようにようにします
  • なるべく貯金を頑張りたいので、月の貯金額は月ごとに1000円ずつ増やすことにします

まずは反復させたい処理を作成する

  • 後にマクロ化するワークフローの中身はこちら
    • マクロ全体の考え方としては、現状の貯金額が目標に未達の場合その月も貯金を実施(貯金額を加算)するようなワークフローを作成したいです
  • 入力データセット
    • 目標貯金額と、初月の貯金額、既に貯金がある場合にその貯金額も入力します
    • 続いてワークフローを反復マクロに変更します
  • (1) ループの分岐を作成する
    • 現時点で、貯金額が未達の場合、ループ処理(T出力アンカー)に流れるように設定
    • 達成の場合、ループ処理の終了
  • (2) 入力時点の貯金額と、加算する貯金額・残り金額を算出します
    • まずは最初のセレクトツールで入力時点の金額を抽出します。後のUnion処理のために名前を変更しています
    • 続いて、フォーミュラツールで今回加算する貯金額と残り金額の算出を行います。貯金額は、月の経過毎に1000円増やして貯金額を設定していきます。Engine.IterationNumberは、初回のループを0回として、回数が増えるたびに1ずつ増加する変数です。今回はこれを使って、『基準の貯金額 * {ループ回数×1000円} 』の計算式で当月の加算貯金額を計算します
    • 最後にループ前時点の貯金額と、当月加算したい貯金額をユニオンして算出しました。※残り金額 月の貯金額の列は計算には使用しませんが、ループの入力データに渡すために残しておきます
  • (3) 加算後の合計貯金額を計算し、目標額と現時点の貯金額を算出する
    • 複数行フォーミュラツールで、貯金額 の行を合計することでこれまでの貯金額と加算額の合計=加算後の貯金額を算出します
    • 集計ツールで、目標金額と、加算後の貯金額を取得します。また、入力ツールに渡す際に元の列名と同じになるように変更しました。この後のループ処理では常に、目標金額と今の貯金額の差分で分岐処理を行うことができるようになりました

マクロの設定を行う

  • 入力ツールと閲覧ツールをそれぞれマクロの入力/出力ツールに変換します
      
  • 続いて、インターフェースデザイナーからマクロの設定をします
    • この反復入力と反復出力でマクロの処理を繋ぐように設定します
    • また、マクロのインターフェースに表示するアイコンもカスタマイズしました。今回は貯金がテーマなので、貯金箱のアイコンに設定しました     

通常のワークフローにマクロを組み込む

  • 入力データを配置し、マクロを組み込みました     
  • 事前の入力データセットの通りに貯金を行うと、14か月目で目標貯金額が達成できることがわかりました!     

さいごに

今回初めて反復マクロを作ってみました。実際に作ってみると、反復処理をどう作っていけばいいか考えるのが大変でした。反復マクロも色々な用途があるかと思いますので、その都度目的のフローが作れるように実践を重ねていくことが必要そうです。是非みなさまもトライしてみてください。