Alteryxで日数を出力する

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

今回はAlteryxで日数を出力する方法についてご紹介します。

日数を出力する

DateTimeDiff関数を使う

日数の出力に使用できる関数として、DateTimeDiffがあります。まずはDateTimeDiffを使用して日数を出力してみます。

In/Out -> Text Input を使用して、以下のデータを用意しました。このデータの「Start」列の2018-10-01から「End」列の2018-10-10までの日数を出力します。

Preparation -> Formula を追加し、新しい列に「DateTimeDiff([End],[Start],"days")」を設定します。DateTimeDiffは指定の日時の差分を出力する関数で、「"days"」を指定すると日数で差分を出力します。

結果を確認してみると、新しく作成した列に9という日数が出力されています。元のデータでは時間は指定していませんが、2018-10-01 00:00:00から2018-10-10 00:00:00として数えるため、日数は9日となります。

ちなみに、「Start」列のデータを「2018-10-01 01:00:00」に変更しますと、日数は8日になります。

DateTimeAdd関数を使う

今度は2018-10-01から2018-10-10までを、9日ではなく10日として数えたい場合について考えてみます。

Preparation -> Generate Rows と Transform -> Summarize を使用して、以下のワークフローを作成します。

前項と同じデータを使用し、「Start」列の2018-10-01から「End」列の2018-10-10までの日数を出力します。

Generate Rowsツールでは、Create New Field を選択して新しい列を作成し、Date型で出力します。Initialization Expression には「[Start]」、Condition Expression には「RowCount <= [End]」、Loop Expression (Usually Increment) には「DateTimeAdd([RowCount],1,"days")」を設定します。DateTimeAdd関数では、「RowCount」列に対して1日ずつ足して日付を表示するように設定しています。

「Start」列の2018-10-01からはじまり、「End」列の2018-10-10まで1日ずつ出力されています。

Summarizeツールでは、「Start」列と「End」列でグループ化し、データの数を数えます。

出力を確認すると、「Count」列に10と出力されています。

年ごとに日数を出力する

今度は2018-10-01から2021-10-01までを、年で分けて日数を出力してみます。

Generate Rows、Formula、Summarizeツールを使用して、以下のワークフローを作成します。

用意したデータは以下の通りです。

Generate Rowsツールでは前項と同様の設定を行い、新しく「RowCount」列を作成して2018-10-01から2021-10-01まで1日ずつ出力します。

Formuraツールでは新しく「Year」列を作成し、「RowCount」列に出力した年を抜き出すよう「Left([RowCount], 4)」を設定します。

Summarizeツールでは、「Start」列、「End」列、「Year」列でグループ化し、データの数を数えます。

結果を確認すると、年ごとに日数が出力されています。

最後に

今回は日数を出力する方法についてご紹介しました。今後もAlteryxの機能をご紹介していきます。

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

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

alteryx_960x400