Alteryxで異なる列に同じ処理をする場合に設定を簡略化したい
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
今回は、異なる列に同じ処理をする場合に設定を簡略化できるかもしれない、そんな方法をご紹介いたします。
異なる列に同じ処理をする
異なる列に同じ処理をする場合、それぞれの列に対して処理する内容を設定する必要があります。
例えば、以下のデータに対してそれぞれの列の合計と平均を出力する場合を見てみます。
合計と平均の出力はSummarizeツールで行えますが、各列に対して設定します。3列くらいでしたら簡単かと思いますが、列の数が多くなると設定が大変になります。
この設定を簡略化したい場合、3列になっていたものを1つの列に集約する方法が考えられます。そこで使えるのが、Transposeツールです。
Transposeツールを使用して1列に集約してからの処理をご紹介いたします。
異なる列に同じ処理をする設定を簡略化する
1列に集約して処理する
作成するワークフローはこちらです。
データを見てみると、「Month」列をキーに使用できそうです。「Month」列をキーにして、残り3つの列を1つの列にまとめてみます。
※キーにできる列がない場合はRecord IDツールでIDを付与することもできます。
Transposeツールを使用して、Key Fieldsに「Month」列、Data Fieldsに他の列を設定します。
変換した結果は以下のようになっています。
Summarizeツールで、「Name」列でグループ化、「Value」列で合計と平均を出力します。
以下のような結果になりました。「Name」列、「Sum_Value」列、「Avg_Value」列に分かれて出力されています。
処理したデータを1行に変換する
今度は3列それぞれに対して処理を行った時のように、1行に収めてみます。作成するワークフローはこちら。赤枠部分が追加した処理です。
Transposeツールを使用して、Key Fieldsに「Name」列、Data Fieldsにその他の列を設定します。
このあと「Name」列を使用して列の名前を調整します。出力する文字列の調整のため、Selectツールで「Name」列のサイズを変更します。
Formulaツールを使用して、「Name」列を更新します。今回は「Name2」列を使って、「Sum_2016」などのように出力されるよう設定します。
Cross Tabツールを使用して、データの出力の仕方を調整します。New Column Headersに「Name」列、Values for New Columnsに「Value」列を設定します。
以下のように出力されました。
列の順番を調整する
今度は列の順番を調整してデータを1行にまとめます。列の順番は、以下の行の上からの順番にします。
作成するワークフローはこちら。赤枠部分が追加した処理です。
Record IDツールを使用してIDを付与します。
Cross Tabツールを使用して、New Columns Headersに「RecordID」列、Value for New Columnsに「Value」列を設定します。
TransposeツールからDynamic RenameツールのLeftの入力(上の入力)に、Record IDツールの出力からDynamic RenameツールのRightの入力(下の入力)に接続します。Rename ModeにTake Field Names from Right Input Rows
、Old Field Name from Columnに-Use positional rename-
、New Field Name from Columnに「Name」列を設定します。
以下のように出力されました。
最後に
異なる列に同じ処理をする場合に設定を簡略化する方法をご紹介しました。使用するデータや行いたい処理によって簡略化できるかは違ってくるかと思いますが、ワークフロー作成の参考にしていただければ幸いです。
サンプルワークフローのご案内
クラスメソッドでご契約のユーザー様向けに、当ブログでご紹介したワークフローを専用ポータルにて公開しております。当エントリでご紹介したワークフローも公開予定ですので、ご参考にしていただきますと幸いです。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。