Challenge #28: Formatting Morningstar Data ~同列に日付とクラスを含むデータの整形~ – Alteryx Weekly Challenge

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

当エントリは『Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018』の4日目です。

『Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018』では、Alteryx Communityで公開されているWeekly ChallengeのIntermediate Levelにひたすら1人で挑戦していきます。

今回は同列に日付とクラスを含むデータの整形に挑戦します。

動作環境

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

  • Windows 10 Pro
  • Alteryx Designer 2018.4.3.54046 英語版

Challenge #28: Formatting Morningstar Data

お題

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

「Input」側のデータはこちら。

「Output」側のデータはこちら。

「Output」側のデータには、「Date」「ShareClass」列があります。この2つの列は、「Input」側では「American Funds Fixed Income Funds Daily Mstar/Lipper Blended Percent Ranks」列に含まれるデータのようです。

解答の概要

今回作成するワーフクローは以下の通りです。

  1. Sample、RegEx、Selectツールで「Date」列の準備
  2. Multi-Row Formulaツールで「ShareClass」列の準備
  3. Append Fieldsツールで2つのデータを結合
  4. Filter、Dynamic Rename、Selectツールで不要なデータの削除と列名の修正

「Date」列の準備

まずは「Date」列を準備します。

Sampleツール(Preparation -> Sample)を使用して、日付が含まれている初めの1行を抽出します。 First N rows を選択し、 N = 1 を設定します。

RegExツール(Parse -> RegEx)を使用して、不要な文字を削除します。 Field to Parse に対象の列、 Regular Expression「Ranks as of 」Output MethodReplace を設定します。

Selectツール(Preparation -> Select)を使用します。日付が含まれる列以外は不要なので削除し、日付が含まれる列は名前を「Date」に変更します。

これで「Date」列の準備ができました。

「ShareClass」列の準備

続いて「ShareClass」列を準備します。

Multi-Row Formulaツール(Preparation -> Multi-Row Formula)を使用して、「ShareClass」列を作成します。

作成する列には、以下の条件でデータを出力します。

if isnull([F2]) then [American Funds Fixed Income Funds Daily Mstar/Lipper Blended Percent Ranks]
else [Row-1:ShareClass]
endif
  • 「F2」列がNullの場合は「American Funds Fixed Income Funds Daily Mstar/Lipper Blended Percent Ranks」列を出力
  • それ以外の場合は1つ上の「ShareClass」列を出力

これで「ShareClass」列の準備ができました。

データの結合と調整

2つのデータを結合し、不要なデータの削除と列名の調整を行います。

まずはAppend Fieldsツール(Join -> Append Fields)を使用して2つのデータを結合します。この時点では列の削除などは行っていません。

Filterツール(Preparation -> Filter)を使用して、「F2」列がNullではないデータのみ抽出します。

Dynamic Renameツール(Developer -> Dynamic Rename)を使用して、「Date」「ShareClass」列以外の列の名前を、各列の初めにあるデータに置き換えます。 Rename ModeTake Field Names from First Row of Data を指定し、「Date」「ShareClass」列の選択を外します。

Selectツールを使用して、「Field_17」「Field_17_2」「Field_17_3」列を削除します。また、「TNA Latest」列を「TNA」列に名前を変更します。

ワークフローを実行して結果を確認。完成です。

最後に

今回はWeekly ChallengeのChallenge #28: Formatting Morningstar Dataに挑戦しました。

明日もお楽しみに!

サンプルワークフローのご案内

クラスメソッドでご契約のユーザー様向けに、当ブログでご紹介したワークフローを専用ポータルにて公開しております。当エントリでご紹介したワークフローも公開予定ですので、ご参考にしていただきますと幸いです。

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

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

alteryx_960x400