Alteryxで不揃いな列名をいい感じにしたい
こんにちは、小澤です。
Alteryxは様々なデータソースに対応しています。
Alteryxではデータをテーブル形式で扱うため、データの各列には列名があります。 あらかじめスキーマが決まっているようなものであればいいのですが、 Excelなどのように簡単に列の追加・削除ができるようなソースを扱う際には、列名に整合性が取れてない! という事態も起こりえます。
今回は、そんなときに列名をいい感じにする方法を紹介したいと思います。
扱うデータとやりたい処理
では、まず今回扱うデータを見てみましょう。
一見問題なさそうですが、列名の月の数値に全角と半角が入り混じってます。 また、4月のみ「の」ではなく「_」で区切っています。
今回は、このようなデータそのものではなく、列名をきれいにしていきます。
やってみる
では、実際に列名をきれいにしていきましょう。 やることとしては
- 月をすべて半角にする
- 列名に年を付ける
- 「の」を「_」に変える
としたいと思います。
個々の処理はそれほど難しくなさそうですが、 列に対してとなるとSelectツールでは面倒ですし、月が増えたときに都度ワークフローの変更が必要になります。 そこで、今回は以下のようなワークフローで実装しています。
順に解説していきましょう。
一番左側にある「?」のようなツールはField Infoツールというものです。
このツールを使うと以下のように列に関する情報が取得できます。
Field Infoツールを使うことでこのように列名をデータとして取得できます。 ここまでくればもうほとんどできたも同然ですね。
続いてのFilterツールでは、「種類」列は処理対象じゃないので、のぞいています。
REGEX_Match([Name], "^\d.+")
ここでは、列名が入ってるNameが数値で始まっているかで判断しています。
その次のツールは以前作成した全角半角の変換を行うツールです。
以下のような設定で、数値をすべて半角に統一しています。
その後、FormulaツールでReplace関数を使って「の」を「_」に変換したのち、「2019年」を先頭につけています。
"2019年" + Replace([Target], "の", "_")
Selectツールで列名などを整えて以下のような結果が得られます。
「こうしたい!」という形式に整ったので、あとはこれを元のデータの列名に戻してあげましょう。
Unionツールはで最初にはじいた「種類」列も追加しています。 今回は、一番左列のみが処理対象外だったので、Unionツールの順番の指定のみで解決していますが、そうはいかない場合などは最初にRecordIDを付与して、その並びでソートしなおすといいでしょう。
最後にデータを指定して、それを列名にするのがDynamic Renameツールになります。
設定は以下のようになっています。
Rename Modeで「Take Field Names from Right Input Rows」を指定することで、加工したデータから新しい列名を取得するようにしています。 New Field Name form Columnで対象となる列を選択します。
これで以下のようにいい感じの列名になりました。
おわりに
今回はAlteryxで列名をいい感じにきれいにしました。 対象となる列数が少ない場合はSelectツールで頑張れますが、対象が多く変換ルールが明確な場合はField Info → (何らかの処理) → Dynamic Renameと覚えておくといいかと思います。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。