Alteryxで1年間のカレンダーを作る

2019.04.18

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

先日公開したネタ記事につづき、今回もネタ記事です。今回はAlteryxで1年間のカレンダーを作ってみます。

1年間のカレンダーを作る

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

Text Inputツールで、1年の初めと終わりの日付を用意します。「First day」列に「2019-01-01」、「Last day」列に「2019-12-31」と入力します。

Generate Rowsツールを使用して、「Date」列をDate型で新しく作成します。「First day」列の日付から「Last day」列の日付まで1日ずつ足していきます。

ループ条件の設定はこちら。

  • Initialization Ecpression: [First day]
  • Condition Expression: Date <= [Last day]
  • Loop Expression: DateTimeAdd([Date],1,"Days")

DateTimeツールを使用して、「Date」列から月を抜き出します。新しく作成する列は「Month」列とし、Customを指定してMonthを入力します。これにより、「January」というように月が出力されます。

Formulaツールを使用して、曜日を出力する「Day of the week」列と日にちを出力する「Day」列を作成します。

「Day of the week」列の設定はこちら。

DateTimeFormat([Date],"%A")

「Day」列の設定はこちら。

DateTimeDay([Date])

Multi-Row Formulaツールを使用して、「Group」列をInt32型で作成します。「Group」列は、日曜日から土曜日までを同じグループにするように設定します。

Expressionの設定はこちら。

iif([Day of the week] == "Sunday", [Row-1:Group] + 1, [Row-1:Group])

この時点でのデータはこちら。この先は赤枠部分の「Month」列「Day of the week」列「Day」列「Group」列を使用してカレンダーを作っていきます。

Cross Tabツールを使用して、データの持ち方を整えます。月と週でグループ化し、曜日を列名に、日にちをデータにします。

設定はこちら。

  • Group Data by these Values: 「Month」列、「Group」列
  • New Column Headers: 「Day of the week」列
  • Values for New Columns: 「Day」列

データは以下のようになっています。データの表示順序がばらばらになっています。

データの表示順序を整えるため、Record IDツールとUniqueツールを使用します。

Record IDツールでIDを割り当て、Uniqueツールで各月で1つずつデータを残します。

2つのデータを結合します。あわせて不要な列の削除と列の並べ替えを行います。

結合した結果はこちら。それぞれの月にIDが割り当てられています。

Sortツールを使用して、「RecordID」列と「Sunday」列を昇順(Ascending)で並べ替えます。

Selectツールを使用して「RecordID」列を削除し、結果を確認して完成です。

最後に

今回はAlteryxで1年間のカレンダーを作ってみました。

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

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

alteryx_960x400