【レポート】効率化を実現するAlteryxマクロの活用法 #alteryx23

2023年05月22日~05月25日までの4日間、Las Vegasで開催されているAlteryx社のグローバルイベントのセッション内容をお伝えします。 イベントでは、100以上のブレイクアウトセッションと有料トレーニングセッションが用意されています。クラスメソッドとしては2018年、2019年に参加しています。
2023.07.04

こんにちは、アライアンス事業部の清水です。

現地時間2023年05月22日(月)〜2023年05月25日(木)に米国ラスベガスで開催されているAlteryxの年次カンファレンスイベント「Inspire 2023」。今回クラスメソッドからは計6人のメンバーが現地参戦しています。

当エントリでは、5月24日(火)14:20 - 14:50 PDT【太平洋時間】に行われたセッション『Eenie Meanie Miney Macro』についてレポートします。

Eenie Meanie Miney Macro

概要

ツール一式をコピーするのに疲れてしまった方へ。マクロを使いたいと思っているはずです。しかし、どのマクロを利用すればいいのでしょうか?このセッションに参加して、マクロの活用法について学びましょう。

スピーカー

  • Jarrod Thuener【Sr. Product Manager, Workflow Integrations】

はじめに

Alteryxのマクロは、データ処理の手順をパッケージ化し、繰り返し再利用可能な形式で保存できる機能です。主に特定のタスクや操作を自動化するために使用されます。「標準マクロ」・「バッチマクロ」・「反復マクロ」の3種類あります。

プログラミングの背景を持つ方々には、Alteryxのバッチマクロは、"forループ"・反復マクロは、"whileループ"とイメージするとわかりやすいです。

それぞれの特徴をユースケースを交えてご紹介します。

標準マクロ

特徴

同じWF内または別のWFで特定のタスクを実行する必要がある場合、再利用や共有のためツールを繰り返しコピーしする代わりに、それらをパッケージ化することが可能。

以下はあるWFのダイアグラム図で、茶色のアイコンは、特定のタスクを実行するツールのセットを表しています。このように同じ処理を複数の場面で使いたいときに、標準マクロを利用します。

どう使うか

以下の例は通常のWFでコンテナーツール内に、標準マクロとしてパッケージ化したいツール一式を、ひとまず追加した図です。

この例では「サンプルツール」を処理に入れているため、この値を処理の実行の度に変更できるよう「インターフェースツール」に、ユーザーがサンプルの値を入れるようにし、「アクションツール」を介してその値を更新できるようにしています。

この標準マクロを、WFに挿入するとこのようになります。この例では、マクロ内で利用したツールはわずか数個でしたが

もし仮にマクロを利用せず最初の状態で、コンテナーツール内に配置したツール一式をそのままコピペするとこのようになります。

ツール一式がこの図では2個なのでそれほど大変には見えませんが、これが10個‥と増えれば増えるほどCanvas内はツールだらけになります。またWF作成者と利用者が異なる場合、作成者以外からはデータの流れが理解しにくくなり、フローの可視化といった観点でもお勧めできません。以上が標準マクロを利用する利点になります。

バッチマクロ

特徴

1つのマクロ(ツール一式)のみでレコードの内容が違った場合でも、個別にマクロが適用され、繰り返し処理が可能

以下のケースのように3つ以上といった数多くのグループがあると、標準マクロでは個別適用が出来ず、標準マクロをその分用意することになってしまいます。

しかし、バッチマクロを使用することで、一つのツールだけでこれを達成することができます。バッチマクロの設定内で、プロセスをグループ化するフィールドを選択することができます。

どう使うか

この例では、国の略称が含まれる架空人物のデータです。サンプリングツールを使って、各国ごとに異なるレコード数を選びたいを抽出したいとします。

マクロを使わなかった場合

このときのフローはこのようになります。コンテナツールより前で、「US(アメリカ)」でフィルターしてるので、この内容だとアメリカの国の略称が含まれる最初の10レコードが抽出できるでしょう。

では、他の国も同じようにやりたい場合は?以下のように同じフローにもかかわらず、国名が違うため、このように同じ内容のツールを並べざるを得ません。またサンプルツールで10のレコード取得だったり、5のレコード取得だったりも国ごとに自由に変更も出来ません。

バッチマクロを利用すると

バッチマクロでは、「フィルター」と「サンプルツール」箇所に設定した値をコントロールパラメータに変更することで、マクロとしては1つ用意するので事が足りるようになります。

左上の「テキスト入力ツール」には、「国名の略称」と「サンプルツールで取得可能なレコード数」を入れておきます。質問タブに、ユーザーが選択した値を元に、バッチマクロが処理されます。

この例では3か国分ですが、これが100‥と増えてもバッチマクロにする事により対応可能です。

反復マクロ

特徴

前回の実行結果に依存して、一連の処理を繰り返し実行させることが可能

内容によっては「行生成ツール」や「複数行フォーミュラツール」でも、反復マクロの代用は可能。しかし複数の変数が同時に変更されるケースだと、やはり反復マクロの利用が適しています。

【Alteryx】連番作成する際のそれぞれのツールの特徴(行生成ツール、レコードIDツール、反復マクロ)

どう使うか

この例では空間分析で、ある地点から見たときの、各地点の位置関係を表したものです。これらの地点を訪れる順序をAlteryxを使って割り出してみます。

マクロを使わなかった場合

「フィルターツール」からのデータを「ディスタンスツール」に接続し、全ての場所の位置関係を把握し、訪問順序を割り出すための繰り返し処理には、このように同じことを数百回から数千回を要する可能性がでてきます。

反復マクロを使った場合

次の地点を見つけ出し、それが次の「反復」の起点となるように以下の設定をします。

  1. 「入力マクロツール」と「反復出力マクロツール(ツールとしては同じ出力マクロツール)」をCanvasに配置。
  2. インターフェースデザイナーで、それぞれ反復処理のInputとOutputを設定
  3. 別途「出力マクロツール」をCanvas内に配置

反復マクロをWF内に挿入すると、使わなかったときと比較してこのような結果になりました。反復マクロを使わないWFの場合、メンテナンスも非常に大変だと容易に想像つくと思います。

おわりに

マクロはよくお客様からもご質問をいただくことがあり、コード不要で繰り返し処理のフローを作成する事が可能なため、AlteryxDesignerを利用する上で欠かせない機能の1つだと感じます。

マクロのセッションは、もちろんアメリカでも人気のため、セッション終了後スピーカーに個別質問をされてる方が多数いらっしゃいました。

この記事がどなたかのお役に立てば幸いです。