Alteryxで今月のカレンダーを作る

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

今回はAlteryxで今月のカレンダーを作ってみます。あまり使う機会がなさそうなネタ記事です。

今月のカレンダーを作る

作成するワークフローはこちら。

ワークフロー全体図

Text Inputツールを使用して、今月の1日のデータとして2019-04-01を入力します。

Text Input

Generate Rowsツールを使用して今月の最後の日までの日付を用意します。

Generate Rows

設定はこちら。

  • Update Existing Field: 「Date」列
  • Initialization Expression: [Date]
  • Condition Expression: [Date] <= DateTimeLastOfMonth()
  • Loop Expression: DateTimeAdd([Date],1,"Days")

「Date」列が更新されました。

データ

Formulaツールを使用して新しい列を作成します。それぞれの日付の曜日と、日にちの部分だけを出力します。

Formula

「Day of the week」列には曜日を出力します。

DateTimeFormat([Date],"%A")

「Day」列には日にちを出力します。

ToNumber(Right([Date], 2))

この時点でデータは以下のようになっています。

データ

Multi-Row Formulaツールを使用して、週ごとにグループ化します。

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ツールを使用して、曜日を列名にして日にちを出力します。

Cross Tab

設定はこちら。

  • Group Date by these Values: 「Group」列
  • New Column Headers: 「Day of the week」列
  • Value for New Columns: 「Day」列

Selectツールを使用して「Group」列を削除し、曜日の順番に列を並べ替えます。

Select

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

結果

おまけ(※追記)

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日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400