Challenge #21: Date Reformatting 〜日付の表記の修正〜 – Alteryx Weekly Challenge

2018.11.28

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

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

Alteryx CommunityWeekly Challengeに挑戦するシリーズ。今回は日付の表記の修正に挑戦します。

Challenge #21: Date Reformatting

お題

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

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

「Output」側のデータはこちら。「Date」列から月と年を分けて出力しています。

解答の概要

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

Multi-Row Formulaツール(Preparation -> Multi-Row Formula)を2つ使用します。

解答の詳細

まず、1つ目のMulti-Row Formulaツールで「Month」列を作成します。

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

if length([Date]) == 3 then "Jan"
elseif [Date] == "F" then "Feb"
elseif [Date] == "M" and [Row-1:Date] == "F" then "Mar"
elseif [Date] == "A" and [Row-1:Date] == "M" then "Apr"
elseif [Date] == "M" and [Row-1:Date] == "A" then "May"
elseif [Date] == "J" and [Row-1:Date] == "M" then "Jun"
elseif [Date] == "J" and [Row-1:Date] == "J" then "Jul"
elseif [Date] == "A" and [Row-1:Date] == "J" then "Aug"
elseif [Date] == "S" then "Sep" 
elseif [Date] == "O" then "Oct"
elseif [Date] == "N" then "Nov"
else "Dec"
endif

「Date」列の文字によって「Month」列に月を出力しています。「M」など月を判別できない文字については、1つ上の文字を確認して「Month」列に出力する月を判別しています。

2つ目のMulti-Row Formulaツールで「Year」列を作成します。「07」というように「0」を出力するため、Type には V_WString を指定しています。

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

if Length([Date]) == 3 then Right([Date], 2)
else [Row-1:Year]
endif
  • 「Date」列が3文字の場合は「Date」列の右から2文字を出力
  • それ以外の場合は1つ上の「Year」列を出力

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

最後に

今回はWeekly ChallengeのChallenge #21: Date Reformattingに挑戦しました。

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

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

alteryx_960x400