Alteryxで今月のカレンダーを作る
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
今回はAlteryxで今月のカレンダーを作ってみます。あまり使う機会がなさそうなネタ記事です。
今月のカレンダーを作る
作成するワークフローはこちら。
Text Inputツールを使用して、今月の1日のデータとして2019-04-01
を入力します。
Generate Rowsツールを使用して今月の最後の日までの日付を用意します。
設定はこちら。
- Update Existing Field: 「Date」列
- Initialization Expression: [Date]
- Condition Expression: [Date] <= DateTimeLastOfMonth()
- Loop Expression: DateTimeAdd([Date],1,"Days")
「Date」列が更新されました。
Formulaツールを使用して新しい列を作成します。それぞれの日付の曜日と、日にちの部分だけを出力します。
「Day of the week」列には曜日を出力します。
DateTimeFormat([Date],"%A")
「Day」列には日にちを出力します。
ToNumber(Right([Date], 2))
この時点でデータは以下のようになっています。
Multi-Row Formulaツールを使用して、週ごとにグループ化します。
Expressionには以下のとおり設定しています。
iif([Day of the week] == "Sunday", [Row-1:Group] + 1, [Row-1:Group])
- 「Day of the week」列が「Sunday」の場合は「Group」列の1行上に1足して出力
- それ以外の場合は「Group」列の1行上を出力
Cross Tabツールを使用して、曜日を列名にして日にちを出力します。
設定はこちら。
- Group Date by these Values: 「Group」列
- New Column Headers: 「Day of the week」列
- Value for New Columns: 「Day」列
Selectツールを使用して「Group」列を削除し、曜日の順番に列を並べ替えます。
結果を確認して完成です。
おまけ(※追記)
Text Inputツールを使用して手動で月初の日付を入力していますが、Text Inputツールを使用せず、Generate Rowsツールを使って今月のカレンダーを作ることも可能です。
Generate Rowsツールには以下のように設定しています。
- Create New Field: Date
- Initialization Expression: DateTimeFirstOfMonth()
- Condition Expression: [Date] <= DateTimeLastOfMonth()
- Loop Expression: DateTimeAdd([Date],1,"Days")
最後に
今回はAlteryxで今月のカレンダーを作ってみました。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。