Tableauの関数を全て試してみる〜日付関数編その2〜 #tableau

2017.12.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。DI部のtamaです。

当エントリはTableau Functions Advent Calendar 2017の10日目のエントリです。 昨日のエントリはTableauの関数を全て試してみる〜日付関数編その1〜でした。

今回も日付に関する関数を見ていきます。

  • 使用するTableauのバージョンは一貫して10.4.1です。
  • 各関数の説明で引用しているのは、Tableauの公式リファレンスからの引用です。
  • TableauHelp 関数

目次

検証環境

作業環境

  • MacOS High Sierra 10.13.1
  • Tableau 10.4.1

使用データ

  • (原則)Tableau付属のサンプルスーパーストア
  • (場合によって)関数グラフ描画用データ
  • -1〜1の範囲で、0.01毎に値が並んでいるデータ
  • 上記の値をディメンション「X軸」とし、その上に色々な関数をプロットする。
  • 参考:Tableau 関数グラフの描画 | Developers.IO

DAY(date)

概要

指定された日付の日の部分を整数として返します。

  • 概要そのままの関数です。

使ってみた

日付型「オーダー日」の日部分を取得します。

day([オーダー日])

※メジャー(数値)として返ってくるので、結果が正しいか見るために、集計を「平均」に変えています。

どういう時に使う?

  • 日付部分に関する計算を行いたい時、この関数で日数部分を数値として取得して使用することができます。
  • Tableauの日付型は、Tableau独自の操作が行える反面、Excelと同じ様な使い方ができないので、シンプルに数値として扱い時にも有効です。

参考文献

ISDATE(string)

概要

指定された文字列が有効な日付の場合、true を返します。

  • 引数に指定した文字列が、(Tableauから見て)日付かどうか判別します。

使ってみた

オーダーIDを指定してみます。日付とは全く異なる文字列なので、認識されないはずです。

予想通り、全てFALSE扱いとなっています。

それらしい文字列を指定してみます。

ISDATE("2017/12/10")

TRUE、日付としてみなされました。

どういう時に使う?

  • 本来、日付が入っているはずだが、もしかしたら日付以外のデータも入っているかもしれない…という項目に対して、ISDATE関数とIF文を組み合わせて使用すれば、日付とみなされたデータだけを取得することができます。
  • (上記のようなデータ…意外とよく遭遇します…。)

参考文献

MAKEDATE(year, month, day)

概要

指定した年、月、日から構成された日付値を返します。 Tableau Data Extract で利用できます。他のデータ ソースで可用性を確認します。

  • 指定した値から任意の日付型を返してくれる関数です。

使ってみた

今日の日付の値を入れてみます。

MAKEDATE(2017,12,10)

日付型として扱えるようになっています。 固定の値を渡しているので、何らかのディメンションを放り込んでも、日付の値は変わりません。

どういう時に使う?

  • 年月日等の「本来日付として扱われるデータ」が、年/月/日それぞれで項目が分かれているようなデータの場合、それらの項目をMAKEDATE関数に与えることで、日付として扱うことができるようになります。

参考文献

MAKEDATETIME(date, time)

概要

日付と時刻を結合する日付時刻を返します。日付は、日付、日付時刻、または文字列の種類になることがあります。時刻は日付時刻である必要があります。この関数は、MySQL 互換の接続 (Tableau では、MySQL、Amazon Aurora、および Amazon Aurora の他に) でのみ使用できます。

  • 日付値と時間値を結合し、時間データを含む日付型を返す関数です。
  • リファレンスに書かれている通り、使用できるデータソースに限りがあるので、注意が必要です。

使ってみた

「オーダー日」と、適当に指定した時間値を指定します。

MAKEDATETIME([オーダー日], #17:30:15#)

オーダー日に、引数に指定した時刻が結合されて、一つの日付型として使用できるようになりました。

どういう時に使う?

  • MAKEDATE関数の時と似ていますが、日付データと時間データが別の項目に分かれている場合、MAKEDATETIME関数で一つに合わせることができます。
  • 一つの日付型に結合しておくと、時系列グラフ等を作成するときに、自由にドリルダウンできたりするので、分析に小回りが効くようになります。

参考文献

MAKETIME(hour, minute, second)

概要

指定した時、分、秒から構成された日付値を返します。

Tableau Data Extract で利用できます。他のデータ ソースで利用可能か確認します。

  • MAKEDATE関数の時間バージョンです。

使ってみた

適当に考えた値を引数に指定します。

MAKETIME(17,5,8)

指定した時間がセットされています。 この関数では指定できない年月日は、1899/12/30という日付になっています。 ※時間だけ使用したい場合は、シェルフから年月日は除けばOKです。

どういう時に使う?

  • 時分秒の「本来時間として扱われるデータ」が、時/分/病でそれぞれで項目が分かれているようなデータの場合、それらの項目をMAKETIME関数に与えることで、時間して扱うことができるようになります。

参考文献

おわりに

今回も日付関数を見てきました。データソースの日付や時間のデータが整理されていることは、あまり無いので、これらの関数を使用して、Tableauのみでクリーニングしましょう。

次回はtamaによるTableauの関数を全て試してみる〜日付関数編その3です。日付関数はこれで最後となります。お楽しみに。