Challenge #2: Preparing Delimited Data 〜複数の区切り文字を持つデータの整形に挑戦〜

Challenge #2: Preparing Delimited Data 〜複数の区切り文字を持つデータの整形に挑戦〜

Clock Icon2018.10.26

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

こんにちは、にいのです。

Alteryx Communityでは毎週課題が与えられ、条件を満たすワークフロー作成に挑戦できるWeekly Challengeというコンテンツがあります。 当ブログにもWeekly Challengeに挑戦した記録をブログとしてアップする「実践!Alteryx Weekly Challengeシリーズ」ができました。

今回は「Challenge #2: Preparing Delimited Data」に挑戦します。

問題内容

Challenge#2のお題は「区切り文字のデータ整形」です。

このInputファイルを…

この形式に整形することがゴールとなります。

2つの異なるデリミタ(ダブルクォート・シングルクォート)を持つデータをどのようにして整形するかがポイントとなります。

実践!

私が作成したワークフローは以下の通りです。

Text To Columns Tool

データを区切るといえば真っ先に思い浮かぶのがText To Columns Toolです。基本的な使い方は下記ブログでも紹介されておりますのでご参照ください。

Alteryxで文字で区切って列を分けたい

Inputデータはカンマで区切られているので、まずはカンマでデータを三分割にします。

  • 「Columns to split」に分割対象となる項目名をセットし、「Delimiters」にカンマを入力
  • 今回は列を分割する「Split to columns」を選択
  • 「Number of Columns」に列数となる3をセット

※今回は「Extra characters」にErrorを設定していますが、Error以外の選択肢を選んでも結果に変化はありません。

Text To Columns Toolを実行すると、下記のような結果を得られました。

Formula Tool

Formula Toolを使って余分なデリミタであるダブルクォート・シングルクォートを排除します。

今回は「Output Columns」に項目を指定し、関数を入力するウィンドウにStripQuotesを使った式を入力しました。下記の通り記述することでダブルクォート・シングルクォートの一致したセットを削除できます。Alteryxのヘルプページでは他にも使用可能な関数が紹介されていますので、ぜひご参照ください。

StripQuotes([項目名])

実行するとダブルクォートとシングルクォートが削除されてスッキリしました。

DateTime Tool

次に、日付形式を指定されているyyyy-mm-ddの形式に変換します。日付の形式変更といえばDateTime Toolですね。基本的な使い方は下記エントリで紹介されていますのでご参照ください。

Alteryxで日付の表記をYYYY-MM-DDに修正する

  • 「Select the string field to convert」に変換対象となる項目をセット
  • 「Specify the new column name」に項目名にしたい名前を入力
  • 「Select the format that matches the incoming string field」に変換前の日付形式を指定

実行すると日付形式がyyyy-mm-ddに変更されました。

Select Tool

最後にSelect Toolを使って余分な列を取り除き、項目名を変更します。

実行すると、ゴールと同じ形でデータ整形できました!

おわりに

実はWeekly Challenge#2の公式解答の方が私の解答より使用しているツール数が少ないのです…が!他のメンバーの解答との違いを見て「こういうやり方もアリか!」と新しい発見を得られることもこのコンテンツの醍醐味です。ぜひチャレンジしてみてください。

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

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

alteryx_960x400

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.