Alteryx版 Date関数事例紹介(日数差/時差変換/平日のみ抽出)

Alteryxで定義されているDateTime関数を使い、
さまざまなケースでの対処方法をご紹介します。
日数差や直近の更新データのみを抽出する場合など、
日付から計算をされたい場合にご活用ください。

こんにちは、PR担当Saoriです。

処理アイコンをドラッグ&ドロップし、線でつなげていくことで「ワークフロー」という処理の履歴を構築し、
再生ボタンを押すことで、処理が実行できるため、とても分かりやすいのが強みの統計ツールである”Alteryx”。

前回の記事では、文字型を日付型に変える方法についてご紹介しました。
今回は、さまざまな日付に関する計算について、
具体的な事例を交えながらご紹介させていただきます。

※今回はAlteryx 2018.3 英語版 を利用しています。

■日数差(日付から日付を引く)を求めたい

☆ログイン時間とログアウト時間の差を調べる
☆加入から1年のお客様を抽出する
など、2つの期間の差について調べます。

では実例紹介です。
以下のように「開始」と「終わり」が日付表示されているデータがあったとします。
Alteryx 日付差 1-1

日付が格納されているフィールドが”文字型”だった場合は、DateTime(日付)ツールを使い日付型に変えてから処理を行います。(詳細は(こちら)をご確認ください)

Select(選択)ツールSelect セレクト 選択 ツール アイコン Alteryxを使い、Date型関数の名前をもともとあったフィールド名に変更します。
後続処理の際に認識しやすいと思います。
Alteryx 日付差 1-2 DateTime関数 Select 関数

次にFormula(フォーミュラ)ツールFormula 式 フォーミュラ ツール Alteryx アイコンで関数を使います。

DateTimeDiff([End Date],[Start Date],”Days”)

DateTimeDiff 関数を使い、終わりの日から始まりの日の差分を”日”単位で出力
という意味です。実際はこのようになります。データ型を数値型にすることを忘れずに行ってください。
Alteryx 日付差 1-3 関数 Foemula DateTime 日付型

【補足】
——-日数差以外も求められます!——-
“Days” の部分を”Years”に変えてしまえば年の差が、
“Month”にすれば月の差が出ます。
年”Years”、月”Months”、日”Days”、時”Hours”、分Minutes”、秒”Seconds”
で対応可能です。

結果を見てみます。
新しいフィールドに開始日と終了日の差の日数が出力されています。
Alteryx 日付差 1-4 出力結果

ワークフローをご紹介します。Date(日付)ツールが2つ並んでいるのは、処理できるのが1フィールドのみのため、StartDateとEndDateをそれぞれ分として使っています。
Alteryx 日付差 1-5 ワークフロー
▲目次にもどる

■基準日(今日)から○日間のデータを出したい

☆直近1週間に更新されたリストのみ取り出したい
☆直近3日にログインされたお客様にのみ案内を出したい
など、日々変わっていく条件のデータを正しく取り出したい場合に使います。

では、実演します。
Alteryx ○日差 1-1

こちらのデータを、まずはDate(日付)型に変換します。こちらは省略します。

次に、Formulaツールと関数を使い、今日の日付を出力させます。

DateTimeToday()

とてもシンプルな関数です。
Alteryx ○日差 1-2 Formula
出力されているデータを念のため確認します。ちゃんと今日の日付が出ています。

Alteryx ○日差 1-3
その後、続けてFormulaツールを使い、日付差を算出します。

DateTimeDiff([今日],[日付],”Days”)

Alteryx ○日差 1-4

日付差が出ているか確認します。出ています。

Alteryx ○日差 1-5

あとは必要な期間に当てはまるかどうかをFilter(フィルター)ツールフィルタ Filter Tool Alteryx アイコン画像を使って条件分岐するだけです。
今回は14日間以内をTrue それ以外をFalseとしてみました。
Alteryx ○日差 1-6Filter
これで、出力結果(True側)は以下のようになります。2週間以内の条件が満たせています。
Alteryx ○日差 1-6True

ワークフローは以下のようになります。

★サンプルワークフロー★
Alteryx ○日差 1-7 ワークフロー

ちなみに、Formula(フォーミュラ)ツールFormula 式 フォーミュラ ツール Alteryx アイコンを使うことなく、Filter(フィルター)ツールフィルタ Filter Tool Alteryx アイコン画像1つで解決できてしまいます。

[日付] >= ToDate(DateTimeAdd(DateTimeToday(), -14, “days”))

これで一気に条件分岐ができてしまいます。
これは大変便利ですので、ツールを多く使いたくない方はぜひこちらもご利用ください。
その場合のワークフローはこちらです。

★サンプルワークフロー★
Alteryx ○日差 2 ワークフロー

▲目次にもどる

■曜日を知りたい(平日だけにしたい)

☆日付はわかるけど曜日を算出したい
☆データから平日のみを取り出したい
場合にこちらを使います。

日付が記載されているデータを取り込んだら、そのデータをFormula(フォーミュラ)ツールFormula 式 フォーミュラ ツール Alteryx アイコンを使って曜日変換します。

DateTimeFormat([DateTime_Out],”%A”)

DateTimeFormatは、
日付を任意の表示形式に変換をし、さらに文字型へ変更するための関数です。
%A は指定識別子といいます、曜日を出力してくれるおまじないだと理解いただけるといいと思います。

Alteryx 曜日算出 1-2

これで曜日を表示させます。
曜日が判明しました。
Alteryx 曜日算出 1-3

平日のみにしたい場合は、Filter(フィルター)ツールフィルタ Filter Tool Alteryx アイコン画像を使い
土曜日(Saturday)と日曜日(Sunday)はF側に出力
とするとT側には平日のみが残る仕組みとなります。
※祝日は考慮されていないので別途対応が必要です。

False側のみご紹介します、土曜日と日曜日が振り分けられています。
Alteryx 曜日算出 1-5False

ワークフローは以下のようになります。
★サンプルワークフロー★
Alteryx 曜日算出 1-6 ワークフロー
▲目次にもどる

■YYYY/MM/DD と表記されているのでYYYY|MM|DDと分けたい

☆日付と時間を分けて分析をしたい
場合に有効です。
“日”部分と”時間”部分を分けて分析したい場合が、
あると思います。
同じ方法でYYYY/MM/DD HH:MM:SS を日付部分と時間部分に分けることが可能です。

これは、文字型で表示されている日付を、Text To Colums(列へのテキスト)ツールText To Columns Tool Alteryx アイコン画像 列へのテキストを使って分けるだけです。

なお、データがDateTime(日付)型になっている場合は使えないため、
DateTime(日時)ツールAlteryx DateTime Tool 日時 ツール アイコン 画像を使って一度文字型に変える必要があります。
日付表示されているデータです。
Alteryx 日付分割 1-1
これを、Text To Colums(列へのテキスト)ツールText To Columns Tool Alteryx アイコン画像 列へのテキストを使って分けます。

具体的な設定内容はこちらです。
Alteryx 日付分割 1-2
分割後は、フィールド名を変更すると後々わかりやすいです。
Alteryx 日付分割 1-3

年と月と日に分けることができました。
Alteryx 日付分割 1-5出力結果

ワークフローもシンプルです。
★サンプルワークフロー★
Alteryx 日付分割 1-4 ワークフロー
▲目次にもどる

■時差を変換したい

☆UTC時間で格納されるデータを扱っているのでJST時間に変換したい。

という場合に利用いただけます。

私はGoogle Big Query を利用しています。
データ取得の設定時間がUTC(世界標準時)で設定されいるため、UNIX時間を変換するだけでは正しい利用時間を取得することができませんでいました。
これはシンプルです。
Formula(フォーミュラ)ツールFormula 式 フォーミュラ ツール Alteryx アイコンを使い、時差変換をする計算をするのみです。

DateTimeToLocal([ConvertTimeA])

Alteryx 時差変換 1-1

これは時間変換をさせる関数です。
ローカルシステムに依存するため、その点はご注意ください。
ワークフローは以下のようになります。
Alteryx 時差変換 1-2

なお、関数は複数を一度に使ってしまうことができます。
以下のように括弧でくくっていただければ、1つの式(ツール)で計算が完了します。

DateTimeToLocal(DATETIMEADD(‘1970-01-01 00:00:00’,[visitStartTime], ‘seconds’))

Alteryx 時差変換 統合 関数

▲目次にもどる

まとめ

今回は日数差に関する計算方法をご紹介いたしました。
データを一定の基準で振り分けができるようになり、すごく便利だと思います。

私は以下のように使い分けています。
文字型を日付型に変換したい場合 にDate(日時)ツールAlteryx DateTime Tool 日時 ツール アイコン 画像を使い、
日付型に関するさまざまな計算を行いたい場合 にFormula(フォーミュラ)ツールFormula 式 フォーミュラ ツール Alteryx アイコンを使う

です。

使い分けることでワークフローを後から振り返る際、に何をしたのかが視覚的にわかりやすいため、
日付変換をDate(日時)ツールAlteryx DateTime Tool 日時 ツール アイコン 画像使ってから、具体的な計算をFormula(フォーミュラ)ツールFormula 式 フォーミュラ ツール Alteryx アイコンで対応する。
という使い方を私はしています。

もちろんFormula(フォーミュラ)ツールFormula 式 フォーミュラ ツール Alteryx アイコンのみ使っていただいてもかまいません。
お好きなツールを使っていただければと思います。
いろいろな使い方がありますが、1つの解として参考にされてください。

Alteryx(アルタリクス)を1か月間無料でご体験いただけます。
早速はじめてみませんか?
トライアル期間中もサポート対応実施中です!ご不明な点がございましたらお気軽にお問い合わせください。
1か月間のフリートライアルはこちらから

Alteryx(アルタリクス)のお見積りやデータ分析に関するご相談は問い合わせより承っております。
お気軽にご相談ください。

お見積もり依頼などのご相談はこちら

 

関連記事

  1. 【シリーズ】Alteryx でマクロを使う-1-

  2. セル分割に便利な列分割(Text to Columns)ツール

  3. Alteryxが日本語(β版)対応されました!

  4. Alteryxが無料で学べるサイトの紹介【UDA CITY】

  5. 【記事紹介】TableauとAlteryxの相性の良さ

  6. Alteryx Desginer 2019.2 Start画面FULL

    リリース情報(Alteryx Desinger 2019.2)

フリートライアル(1か月間の無料使用)