Alteryxで動的なドロップダウンリストを設定する

Alteryxのマクロなどで使用できるリストボックスの値を動的に設定できるか試してみました
2023.02.24

前回、以下のブログでインターフェースツールで値の中身を変更する方法を紹介しました。

今回はその延長で、任意のテキスト入力ではなく、動的なドロップダウンリストを作成して、データセット内にある値のみに設定値を制御することができないか試してみました。前回の設定内容を修正していく形で設定を進めます。

環境

・Windows 10 Pro
・Alteryx Designer 2022.1.1.42619

やってみる

マクロの構成

最終的に以下の通りマクロを構成しました。一つずつ説明していきます

①まずは単一選択の設定値を制御するためにドロップダウンツールを使用します。リストの内容を動的で設定したいため、今回は接続ツールからフィールドを取得する方法を選択しました

②入力したデータセット内にある値を基準にリストを作成していくため、まずはCustomer Segmentにセットされている内容を取得します。ここでは後の処理を考慮して、集計ツールを使用します

③ドロップダウンでは接続ツールから受け取る”フィールド”をリスト化するため、Customer Segmentの値をフィールド化するため、クロスタブツールを設定します

※クロスタブツールの設定にはヘッダーにするためのフィールドと、値に設定するフィールドの2つが必要になるため、直前のステップで集計ツールを使用しました

マクロの実行

マクロを実行してみると、ドロップダウンで設定値を変更できるようになっていましたので、リスト化は成功したようです

ただ、この方法ではリストの作成元であったCustomer Segmentの値で空白を含んでいたものは、"_"に置き換わっていいたため、このまま実行するとデータなしになってしまいました

この事象について、今回はフィルターをかけるフィールドに対して、空白を"_"に置換する方法で回避しました。(ちょっと無理やりですね…)

さいごに

動的リストを作成してみて、以下の点については特に困りました

  • 接続ツールからリストを受け取る場合、フィールドをリスト化する方法しかないのか?(単純にフィールド内の値をリスト化したい)
  • クロスタブでフィールドを作成する際、空白は"_"に置換されるため、フィルターの設定値にそのまま使えないケースがある

今回は試行錯誤してやや強引に正しく動くように設定してしまいましたが、実際にはもっとうまいやり方があるかもしれません。。さらに勉強して別のいい方法が見つかり次第情報アップデートしていきたいと思います。