連続・不連続の視点から日付関数を見る

今回は日付関数について、Tableauヘルプに書かれていない連続・不連続の視点から考えてみようと思います。

日付の連続・不連続

日付の連続・不連続の切り替えは、下記2つの操作で可能です。
①データペインで日付フィールドを右クリック
 連続に変換・不連続に変換で切り替え
②日付フィールドをシェルフに入れ、右クリック
 コンテキストメニュー上:連続の項目 中:不連続 下:正確な日付 を選択して切り替え

どちらもデフォルトは連続になっています。

①データペインの日付フィールドを右クリックすると、
連続の場合は不連続、不連続の場合は連続への変換表示される
②シェルフに入っている日付フィールドを右クリックすると、
日付のコンテキストメニューが表示される

日付フィールドの変換
日付フィールドは不連続と連続を切り替えることができます。不連続な日付はラベルとして機能し、連続日付にはメジャーと同様の軸があります。
不連続から連続、または連続から不連続に変更するには、ビューでいずれかの日付フィールドをクリックし、コンテキスト メニューでオプションを 1 つ選択します。
[データ] ペインの日付フィールドを変換するには (およびそれによってビューにドラッグしたときの既定の結果を決定するには)、フィールドを右クリックし、[不連続に変換]または [連続に変換] を選択します。

Tableauヘルプ - 不連続フィールドと連続フィールドの変換

日付レベルの設定をTableauでは日付部分と日付値のセクションごとに整理しています。
日付部分:日付の特定の部分のレベルで集計されたデータ(連続)
日付値 :特定のレベルに切り詰められた実際の日付(不連続)
正確な日付はこれらに対し、行レベルまたはレコードレベルの最も細かい詳細レベル のデータになります。

よく使う・よく見る日付関数で実際に試してみた

日付関数の中で、自分がよく使うものと使ったことはあまりないが他の人のVizで見たことがあるものを分け、実際に作ってみました。すると、画像のようにフィールドが分かれました。

何かしらの日付を入れるところはオーダー日を入れています。

以下に自分なりに考えたグループ分けと、計算結果のデータ型がDATE型から変更されたもの、DATE型でなかったものは()内にデータ型を記載しました。

日付を作る関数

  • DATE:DATE(expression) 不連続

  • TODAY:TODAY() 不連続

  • MAKEDATE:MAKEDATE(year, month, day) 不連続

  • DATEPARSE:DATEPARSE(date_format, [date_string]) 不連続(DATETIME型)

  • DATEADD:DATEADD(date_part, interval, date) 不連続(DATETIME型)

  • DATETRUNC:DATETRUNC(date_part, date, [start_of_week]) 不連続(DATETIME型)

DATEPARSEは最初は日付を加工する関数だと思っていましたが、文字列を使って日付を作る、というイメージの方がグループとして意識して使うには良さそうです。
同じようにDATEADDは対象単位分の時間を足して日時を作る、DATETRUNCは対象単位分の時間を切り捨てて日時を作る、というイメージでしょうか。
この辺りは推測の域を出ないので、師匠に聞いてみようと思います。
ちなみに、DATETIME型になってしまう関数を計算後ポチポチデータ型変更して日付に直す必要はなく、DATE関数の中に入れることでDATE型に修正することができます。
その方法で修正するのは今回取り上げた関数の中では全て不連続になるものだけだったので、結果は不連続のままとなります。

日付の一部分を取り出す関数

  • YEAR:YEAR(date) 連続(INT型) 年を取り出す

  • QUARTER:QUARTER(date) 連続(INT型) 四半期を取り出す

  • MONTH:MONTH(date) 連続(INT型) 月を取り出す

  • WEEK:WEEK(date) 連続(INT型) 週を取り出す

  • DAY:DAY(date) 連続(INT型) 日を取り出す

  • DATEPART:DATEPART(date_part, date, [start_of_week]) 連続(INT型) 指定された単位を取り出す

  • DATEDIFF:DATEDIFF(date_part, date1, date2, [start_of_week]) 連続(INT型) 2つの日付を取り出す(その差が結果として出ている)

連続に変換された関数は、日付の一部分を数字として取り出すものでした。
DATEDIFFは2つの日付を数字として取り出し、その差を結果に出す関数なので、結果は数字になります。

日付の最大値・最小値を取り出す関数

  • MAX:MAX(expression) または MAX(expr1, expr2) 不連続

  • MIN:MIN(expression) または MIN(expr1, expr2) 不連続

連続・不連続について、ディメンションは不連続で青いピル、メジャーは連続で緑のピル、と理解していたのですが、MAX・MINだけが不連続で青のピルのままメジャーバリューの方に入っていました。
メジャーネーム=ディメンション、の認識だったのですが、違っているようなのでここも師匠に聞いてみようと思います。

まとめ

日付を作る場合、結果は日付になり不連続になるのでメジャーネームになる。
日付の一部分を取り出す場合、結果は整数になるのでメジャーバリューになる。
整数なので基本的には連続になるが、MAX・MINのように一部日付になり不連続のものもある。

以上、今回は日付関数と連続・不連続の関係について調べました。
個人的には連続・不連続、集計・非集計、メジャーネーム・メジャーバリュー、、それぞれの関係性について理解が不足しているのかも、と気付くいい機会になりました。
勉強し直して再度確認するのもいいかも、と思うのでまた時間を置いて調べてみようと思います。

この記事が気に入ったらサポートをしてみませんか?