Alteryxで不揃いな列名をいい感じにしたい

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

こんにちは、小澤です。

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日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400