
完全な行列転置のご紹介
ExcelやTableauでは容易に行列転置ができますが、Alteryxの場合、転置ツールやクロスタブを使って転置しただけでは行列の順番が変わってしまうことがあります。
今回はAlteryxでフィールド名も含めた完全な行列転置についてご紹介します。
普通の行列転置
元のデータとして、以下のようなデータを用意しました。
縦軸が商品名で横軸が地域、内容が価格というデータです。

普通のワークフローで行列転置を行うと、、、

このように地域の順番、品名の並び順が自動でソートされてしまいます。

データとして使用する場合はこのやり方で問題ないですが、出力するときに行列の順番を保持する必要がある場合はこれでは困ります。
完全な行列転置を作る
そこで、フィールド名を含め、完全な行列転置を行うワークフローを作ってみました。

どのような設定をしたのか順番に説明していきます。
①レコードIDを付けて横持ちから縦持ちに転置

まずはレコードツールを使ってRecordIDを付け、横持ちから縦持ちに転置します。
レコードIDは転置後の品名の順番を保持するために付与します。
レコードツールは特に設定していません。

転置ツールは以下のように設定します。

転置ツールの出力は以下の通り。
RecordIDをキーに値が転置しました。
この段階では順番は記載の通りの順番で転置されます。

②RecordIDごとにナンバリングする

次にタイルツールを使ってRecordIDを基準に転置後の列順序をナンバリングします。

結果は以下の通り。
RecordIDの値を基準にTile_NumとTile_SequenceNumが生成されました。
最終的にこのTile_SequenceNumを使って順番を整えます。

③縦持ちから横持ちに転置

クロスタブツールを使って、RecordIDを列ヘッダーとして縦持ちから横持ちに転置します。

クロスタブツールの出力結果です。
RecordIDをキーに横持ちに変換したので、2レコード目の品名の順番が保持されています。
レコードの並びがバラバラになってしまっていますが、今回はTile_SequenceNumで順番を保管しているため、これを使って並び順を修正できます。

④行の順番を修正

ソートツールを使い、タイルツールでナンバリングした「Tile_SequenceNum」を基準にソートし、順序を整えます。

Tile_SequenceNumを基準にすることで元の順番に並び替えることができました。

⑤フィールド名の整形

動的リネームツールで1レコード目をフィールド名にします。

おおよそ整ったので、不要な部分をセレクトツールで削除します。
また完全に転置したため、「品名」がフィールド名になってしまいました。
データの内容は地域を指しているので「地域」としたいところですが、元のデータに存在しない文言なので、セレクトツールで変更します。


完全な転置が完了しました。
元のデータと比べてみましょう。
品名⇒地域以外の項目は並び順を含め、完全に転置されています。
最終出力データ

入力データ

このようなワークフローで並び順を保持した完全な転置を行うことができます。
この記事が皆さまのAlteryxライフの一助になれば幸いです。
技術情報
作成・動作確認バージョン
Alteryx Designer 2022.1.1.25127
サンプルワークフロー
完全な転地行列fa-download
運営会社

