Challenge #34: Date-Time Formatting ~日付と時刻を整形する標準マクロ~ – Alteryx Weekly Challenge
こんにちは。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日間の無料トライアルも実施中ですので、お気軽にご相談ください。