Challenge #35: Data Cleansing Practice ~データクレンジングの練習~ – Alteryx Weekly Challenge

2019.03.25

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

こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。

Alteryx Communityで公開されているWeekly Challengeに挑戦するシリーズ。今回はデータクレンジングの練習に挑戦します。

動作環境

当エントリの執筆には、以下の環境を利用しています。

  • Windows 10 Pro
  • Alteryx Designer 2019.1.4.57073 英語版

Challenge #35: Data Cleansing Practice

お題

今回挑戦するお題はこちら。

1つのワークフローに4問用意されていますので、順番に解いていきます。

初めの0の削除

以下のデータが用意されています。このデータから「1234」の前にある「0」を削除します。

Formulaツールを使用して、新しく「Trimmed」列をInt64型で作成します。

ToNumberを使用して、数値型に変換して出力します。

ToNumber([Field1])

結果を確認して完成です。

初めの0と最後の説明文の削除

以下のデータが用意されています。このデータから「0」と「:Report」を削除します。

Text To Columnsツールで、Delimiters: を指定して分割します。

Selectツールで列の名前を回答にあわせて修正します。また、数値が出力されている列をInt64型に変更します。

結果を確認して完成です。

最後にあるIDの削除

以下のデータが用意されています。このデータから最後にある「ID」を削除します。

Formulaツールを使用して新しく「Trimmed」列をV_WString型で作成します。

IIFを使用して、最後の2文字が「ID」の場合に「ID」を削除して出力するように設定します。

IIF(Right([ID],2)="ID", Replace([ID],"ID",""), [ID])

結果を確認して完成です。

コードの修正

以下のデータが用意されています。8文字を超える場合は後ろにある文字列を取り除き、6文字の場合は全面に「SC」を追加します。

Formulaツールを使用して新しく「Fixed」列をV_WString型で作成します。

式は以下のとおり設定しています。

if Length([Safety Code]) == 6 then "SC" + [Safety Code]
elseif Length([Safety Code]) > 8 then Left([Safety Code], 8)
else [Safety Code]
endif
  • 「Safety Code」列が6文字の場合は「SC」と「Safety Code」を出力
  • 「Safety Code」列が8文字以上の場合は「Safety Code」の左から8文字を出力
  • 「Safety Code」列を出力

結果を確認して完成です。

最後に

今回はWeekly ChallengeのChallenge #35: Data Cleansing Practiceに挑戦しました。

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

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

alteryx_960x400