Challenge #34: Date-Time Formatting ~日付と時刻を整形する標準マクロ~ – Alteryx Weekly Challenge

2019.01.11

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

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

Alteryx Communityで公開されているWeekly Challengeに挑戦するシリーズ。日付と時刻を整形する標準マクロの作成に挑戦します。

動作環境

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

  • Windows 10 Pro
  • Alteryx Designer 2018.4.5.55178 英語版

Challenge #34: Date-Time Formatting

お題

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

Input側のデータはこちら。4月など1桁の数字は0埋めされていません。

Output側のデータはこちら。「date_time」列の数字は0埋めされており、「DateTime_Out」列にはDateTime型に変換した日時が出力されています。

ワークフローの作成

標準マクロの作成の前に、Output側と同じ結果が出力できる通常のワークフローを作成します。

Record IDツール(Preparation -> Record ID)でIDを割り当て、Text To Columnsツール(Parse -> Text To Columns)で「date_time」列のデータを分割して1列に並べます。Text To Columnsツールには Delimiters/\s を設定し、Split to rows を選択します。

Formulaツール(Preparation -> Formula)を使用して、「date_time」列の表記を調整します。式は以下の通り設定しています。

if Length([date_time]) = 1 then "0" + [date_time]
elseif Contains([date_time], ":") and Length([date_time]) = 4 then "0" + [date_time]
else [date_time]
endif
  • 文字列の長さが1の場合、文字列の前に0を追加
  • 文字列に「:」を含み、長さが4の場合、文字列の前に0を追加
  • それ以外の場合は更新なし

また、「Group」列をInt型で追加し、1を出力します。

Multi-Row Formulaツール(Preparation -> Multi-Row Formula)を使用して、「Group」列の数値を更新します。「RecordID」列でグループ化し、1つ上の「Group」列の数字に1を足して出力していきます。

Cross Tabツール(Transform -> Cross Tab)を使用して、データを横持ちに変換します。

  • Group Data by these Values: 「RecordID」列
  • New Columns Headers: 「Group」列
  • Values for New Columns: 「date_time」列

横持ちに変換したデータでは、「Group」列にあった数字が列名になっています。「1」列が月、「2」列が日にち、「3」列が年、「4」列が時刻を示しています。

Formulaツールを使用して、「date_time」列をV_WString型で作成し、日付と時刻の組み合わせを出力します。式は以下の通り設定しています。

[1] + "/" + [2] + "/" + [3] + " " + [4]

Selectツール(Preparation -> Select)で「date_time」列以外を削除し、DateTimeツール(Parse -> DateTime)で「date_time」列をDateTime型に変換します。

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

標準マクロに変換

前項「ワークフローの作成」で作成したワークフローから標準マクロを作成します。

Input側のデータが存在しているText Inputツール(In/Out -> Text Input)の右クリックメニューから Convert To Macro Input を選択し、Macro Inputツール(Interface -> Macro Input)に変換します。

Browseツール(In/Out -> Browse)を削除し、Macro Outputツール(Interface -> Macro Output)を追加しDateTimeツールと接続します。

この状態でワークフローの設定を確認すると、自動的に Standard Macro になっていることを確認できます。

View -> Interface Designer を開き、Properties (歯車のアイコン)で任意のアイコンを設定します。

ワークフローを保存すると.yxmc形式で保存されます。これで標準マクロが完成しました。

標準マクロを使用する

最後に標準マクロを使用して答えを出力します。作成した標準マクロを追加し、Input側のデータと接続します。

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

最後に

今回はWeekly ChallengeのChallenge #34: Date-Time Formattingに挑戦しました。

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

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

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

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

alteryx_960x400