しりとりやりませんか! (複雑なソートが反復マクロで解決)

2020.07.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

(English version is here)

はじめに

反復マクロが答えるデータチャレンジが複数ある、その中で今回はご紹介するのが複雑なソート。普段の簡単なソートを希望する際にソートツールが使えますがその限界を超えるほど複数なソートを希望する時に反復マクロが必要です。この記事では実例を活かして詳しく説明します。

反復マクロについて詳しい情報がこちらから:

AlteryxのIterativeマクロ

Iterativeマクロを使った繰り返し処理

しりとりチャレンジ

Wikipediaで公開してる世界の都市名を利用してしりとりゲームが行われた。重複にならない為に使用された都市名を記録してあったが、その使用された順番を紐づけなかった為に保管されたデータが乱雑になった。

今回のチャレンジが以下の様なデータを順番になるようにソートし最初に使われた都市名を探すこと。

回答

データ見たらどこから始めようという疑問がよく出ますが、ゲームの最初値が知らない為に最終値を探すのが良いでしょう。しりとりゲームで ”N" で終わる言葉がいれば、それが最終点でしょう。フォーミュラツールを利用すれば最終点が ”Tallinn” として現れます。

データをソートする為に、次のステップとしては最終点より一個手前の行を探すこと。最終点に “Muscat” も含まれることでそれを探せば一個手前の行がわかります。このような操作を繰り返して続ければ最初点まで着くでしょう。

この様な操作為に反復マクロが必要です。反復マクロを作る為にまずは入力データを<マクロ入力に変換>操作しマクロ入力に変えます。次は、最終点のデータを新しい列として導入します。

次にフォーミュラツールを利用し “Muscat” が現れる行を探しましょう。

次は処理されてる行と処理されてない行を区別する為に “Min_sort” という列を新たに導入しましょう。

マクロ作りの最後のステップとしては、ソートした行を区別する為にフィルターを導入し、ソート出来てない行をマクロ入力に入り繰り返してソート操作が行われます。全ての行がソート出来た時点で繰り返し操作が終了しデータが出力しアウトプットアンカー (O) に現れます。

ワークフローの設定を開きマクロの形は<反復マクロ>に変換します。インターフェースDesignerを開き<反復入力>、<反復出力>、と<最大反復回数>を選びます。これでマクロの構成が完了です。

次のステップとしては、ワークフローを作成する。このワークフローでは、入力データに上記のマクロを加えて実行させる。結果がマクロのアウトプットアンカー (O) に現れます。

最後に

今回はご紹介した複雑なソートに似たような課題があれば反復マクロを試すことによって解決出来るかもしれません。なお、今回使用した添付データとワークフローは弊社ご契約のユーザ様であれば、専用ポータルからダウンロードできます。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400