Alteryxのマクロの設定で特定の型のみ選択可能にする
こんにちは、小澤です。
Alteryxでマクロを作成する際に処理対象の列をDrop DownツールやList Boxツールなどのインターフェースを使って選択することがあります。
ところで、ツールによっては処理対象となる型が限定されるものがあります。 例えば、Linear Regressionツールの目的変数は数値型なので、taget variableには数値型の列のみが選択可能になっています。
一方、Logistic Regressionツールでは、カテゴリカルな型となるため、文字列型のみ選択可能です。
今回は、オリジナルのマクロを作成した際にこの仕組みを実現する方法を解説したいと思います。
表示項目を絞る
では、やり方を見ていきましょう。 とはいえ、これは実は非常に簡単です。
状況をわかりやすくするために、簡単なマクロを作成しました。
このマクロは入力データの型をDrop Downの項目として設定して、選択された値を追加しています。
このマクロを利用する際の設定は以下のようになっています。
結果は以下のように選択した列名が含まれているのが確認できます。
この例では、あまり型を限定する意味はありませんが、試しにこれを数値型の列のみ指定可能にしてみましょう。
Drop Downインターフェースツールの設定で、Properties > Show only Fields of the following typesにて、対象となる型のみにチェックが入った状態にします。
この状態でマクロを利用すると以下のように入力のうち、指定した型の列のみが一覧に表示される状態となります。
Drop DownツールやList BoxツールのようなMacro Inputツールから与えられた列情報を選択肢とするインターフェースツールでこの設定が利用可能です。
適切な項目のみが選択されている状態にする
さて、これで設定の表示項目を絞ることができました。 続いて、以下のようなマクロを作成してみます。
このマクロでは、先ほどと同様、List Boxツールで表示する項目も数値型のみにしています。 また、Ationツールでは、「Update Select with multi-slect ListBox」を選択して、マクロを利用した際に設定された項目で列のチェックの有無を切り替えるようにしています。
このマクロを利用すると、以下のように複数選択になり数値型の列のみ表示されている状態に設定されているのがわかります。
では、画像のような設定でこのワークフローを実行してみましょう。 結果は以下のようになります。
選択肢には表示されていなかったSpeciesが残っています。 これはマクロ内のSelectツールにおける「*Unkonw」のチェックの有無にかかわらずこの結果となります。
選択肢に表示しなかった列には影響を与えたくない場合はこれでいいのですが、今回のSelectツールのように対象とする列を絞り込みたい場合には困ります。 例えば後続の処理がすべて数値型である前提の場合には、せっかく選択肢の項目を絞り込んだのにこれでは意味がありませんね...
そういった場合は、あらかじめDynamic Selectツールで対象となる型を絞り込んでおくことが可能です。 先ほどのマクロを以下のように変更してみましょう。
Dynamic Selectツールでは、List Boxツールと同様に対象となる型で絞り込んでいます。
こうすることで、このマクロの設定値として表示される型の列のみにあらかじめ絞り込んだうえで、その中から利用者がターゲットの列のみを選択する、という動きになります。
このように変更したマクロを先ほどと同じ設定で利用することで、Species列がなくなっているのが確認できます。
Dynamic Selectツールの"Dynamicさ"を利用することでいい感じの対応が実現可能になっています。
おわりに
今回は、マクロを利用する際に設定値として表示される列に制限を設ける方法を解説しました。
この設定は、"注意してマクロを使ってもらう"から、"適切な設定のみができるようになってる"への変更となっており、より使いやすいマクロを作るうえでの第一歩となるかと思います。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。