Free Trial

ブログ

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

Alteryxを使っていると、「よくやる同じ処理」があることに気が付くかもしれません。
こういったものを繰り返し何度も作成するのは手間がかかりますし、問題があった場合の修正範囲も多くなってしまいます。

 

Alteryxでは、こういった状況での効率化のために「マクロ」という仕組みを用意しています。
共通の処理を行う部分をマクロとして実装することで、あたかもそれがツールであるかのように利用可能になります。

 

マクロの作り方

もっともシンプルなマクロを作る方法は非常に簡単です。
ワークフローの入出力で利用するInput Data/Output Dataツールの代わりにMacro Input/Macro Outputツールを利用します。

 

MacroInput.pngMacroOutput.png

 

これらを使った簡単なワークフローを見てみましょう。

 

simple_macro.png

 

このワークフローはSortツールを使って並べ替えを行うのみの簡単なものになっています。
Input Dataツールの代わりにMacro Inputを利用することで、ファイルやデータベースからのデータの読み込みではなく、このマクロがツールとして利用された際の入力が利用されます。
Macro Inputツールでは入力の際のテンプレートとなるデータを指定します。

 

macro_input_config.png

 

テンプレートでは、Text InputツールまたはInput Dataツールと同様のインターフェースで直接入力やファイルの指定が可能です。
これらはマクロをワークフローとして実行した際の入力として利用されますが、ツールとして利用した際には与えられたデータに置き換えられます。

 

Input Nameでは、この入力に対して名前を設定できます。
Macro Inputツールは複数設置して複数の入力を受け取るマクロを作ることも可能ですので、そういった際に利用すると便利です。

 

Anchor Abbreviationもそれに関連した設定となっています。
こちらはマクロの入力部分に表示される1文字の接続名を設定します。
この文字は標準で含まれるツールの中にも複数入力あるもので表示されているものと同等です。

 

Show Field Mapでは、テンプレートのデータとツールとして利用した際の入力データでの列の対応関係を定義する際に利用します。
この項目にチェックを入れることで、テンプレートデータの各列に対応する項目を設定することになります。
これは、マクロ内で利用する処理の列名が固定で決まっている際などで利用可能です。

 

最後のOptional Incoming Connectionはチェックを入れるとこの入力を任意入力とします。
デフォルト値がある場合や、複数入力で設定によって2つ目以降を利用するかが変わるようなツールを作成する際に利用可能です。

 

Macro Outputも同様に、Output DataやBrowseツールの代わりに利用して、マクロの出力とするためのツールとなります。
こちらのツールの設定は、Output NameとAnchor Abbreviationのみとなっており、項目の内容はMacro Inputと同様です。

 

作成したマクロを保存すると、通常のワークフロー(yxmd)とは異なり、yxmcファイルとして保存されます。

 

マクロを利用する

続いて、作成したマクロを利用する方法を確認します。

 

Alteryx Designer上でマクロを開いている状態で新規にワークフローを作成します。
ワークフローを右クリックして、Insert > Macro > <作成したマクロ名>を選択します。

 

insert_macro.png

 

選択すると、ワークフロー上に先ほど作成したマクロがツールとして設置された状態となります。

 

マクロをAlteryx Designerで開いていない状態で挿入するには、Browse...からパスを指定してい接値することも可能です。
また、Options > User Settings > Edit > User Settingsを開き、Macrosタブにて任意のフォルダを指定することでそのフォルダ内に含まれるすべてマクロをツールバー上に表示させることも可能です。

 

display_tools.png

 

マクロの設定

マクロの作成・利用方法を解説しましたので、よく使う処理を共通化できました。
しかし、実際の利用の際にはマクロ内に含まれるツールの設定値を一部変更して汎用化したい場面があります。
先ほどの簡単なマクロを例にすると、ソートする際の対象となる列を入力データにあわせて変更したいという場面が想定されます。

 

この変更を行うにはインターフェースツールを利用します。
インターフェースツールの役割は設定の変更となりますが、これはマクロを利用する際のConfigurationに相当します。
今、ソートするのみのシンプルなマクロではインターフェースツールが設置されていないので設定項目が何もない状態となっています。

 

no_config.png

 

インターフェースツールには以下のようなものがあります。

 

interface_tools.png

 

すでに利用しているMacro Input/Macro Outputツールもこのカテゴリに含まれていることがわかります。

 

インターフェースツールの多くは似たような動きをします。
試しに、1つマクロ内に設置してみましょう。

 

interface_textbox.png

 

この状態で、マクロを設置したワークフロー側を見てみると以下のように設定項目が追加されています。

 

text_box_config.png

 

Text Box (6)と書かれたテキストボックスに任意の文字列を入力可能になっています。
しかし、この状態ではまだ入力しても何も起きません。

 

もう一度マクロに戻って、Text Boxツールの下部にある「Q」の部分とSortツールの雷のような部分を接続します。
接続すると間に1つActionツールが追加されます。

 

interface_textbox_with_action.png

Actionツールの設定は下側に接続されたツールの現在の設定値がツリーで表示されたものになります。

 

action_tool_config.png

 

ここで設定した項目がインターフェースツールの設定によって置き換わるような仕組みになっています。

 

上記では、列名を選択した状態になっているのでText Boxで入力した値に応じてソート対象の列を変更することが可能となります。

 

この流れをまとめると以下のようになります。

  • インターフェースツールを設置することでそれに対応した設定項目がマクロをツールとして利用した際の設定画面に表示されるようになる
  • 各インターフェースとツールの間に設置されたActionツールがワークフロー実行時に設定された値を受け取りツールの設定を変更する

このように、マクロでは画面表示上の設定値としてのインターフェースツールとマクロの処理内容となる通常のツールの間にそれらの動きを変更するActionツールを挟む、というのが基本的な仕組みになります。

 

項目を選択肢にする

インターフェースツールとActionツールを使ってマクロ内のツールの設定値を実行時に変更できることを解説しました。

 

先ほどのマクロではText Boxツールを使ってソート対象となる列を設定可能にしていました。
このやり方の問題点は、Text Boxツールは任意の文字列を入力可能なため、タイプミスなどによって存在していない列を指定するとエラーになることです。
そこで、自由入力ではなく対象となる列を選択肢の中から選べるようにしてみましょう。

 

これにはDrop Downツールを利用します。

 

interface_dropdown.png

 

先ほどとの違いは2点となっています。

 

  • Text Boxの代わりにDrop Downツールを利用している
  • Macro InputツールからDrop Downツールへのコネクションがある

Drop Downツールは複数の選択肢の中から単一の項目を選択するツールです。
このマクロを利用するワークフローでの設定は以下のように表示されます。

 

dropdown_config.png

 

Drop Downツールでは、選択肢の中から項目を選ぶためどのような項目が表示されるかの設定が必要となります。
その設定をしているのが、Macro Inputツール下部からDrop Downツール上部につながるコネクションです。
この設定によって、このマクロに入力されるメタデータをDrop Downツールに渡しています。
Drop Downツールは受け取ったメタデータからどのような列があるかの情報を取得して選択肢の項目としています。

 

Drop Downツールの設定は以下のようになっています。

 

dropdown_tool_config.png

 

本来は、List Valuesにて選択肢の項目としてどのようなものを表示するかを設定するようになっています。
このマクロでは、Macro Inputからメタデータを取得しているため、Fields from Macro Inputで固定となり変更できなくなっています。

 

また、Actionツールの"何を変更するか"のデフォルト値も変わっているため、Select an Action typeにて、Update Valueを選ぶのを忘れないようにします。

 

設定画面のインターフェースを編集する

ここまでの内容で、マクロに関する基本的な使い方が理解できたかと思います。

最後の仕上げとして、設定画面のUIを編集する方法を見ていきます。

 

まず、何を設定する項目なのかを適切に表示するようにしましょう。
これまでは、Text Box (6)やDrop Down (8)のような項目に対して何か値を設定するような画面になっていました。
表示するラベルの変更は各インターフェースツールのEnter the text or question to be displayedの値で設定可能です。

 

text_box_tool_config2.png

 

上記のような値を設定することで、以下のような表示になります。

 

config_label.png

 

続いて、インターフェースデザイナーの使い方を見てみましょう。
インターフェースデザイナーはメニューからView > Interface Designerを選択すると表示されます。

 

interface_designer1.png

 

この画面は先ほどのマクロにいくつかのインターフェースツールを追加したものになっています。
この画面では、右側の上下矢印を使ってインターフェースの並びを変更できます。

 

左側メニューからProperties(歯車のアイコン)を選択すると、以下のような画面が表示されます。

 

interface_designer2.png

 

ここでは、マクロをツールとして利用した際のアイコン画像を変更可能です。
アイコンはどのツールを使っているかを視覚的に判断するために重要なので、汎用的に利用するマクロを作成する場合はなるべくわかりやすいものにしましょう。

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.