Tableauで月名を日付形式に直すには
こんにちは。Riekoです。
随分久しぶりの投稿となってしまいました。
継続して書き続けるのはとても難しいですね。
さて、最近Certified Data Analystの勉強をしている私ですが、
そこで気づいた、January, February…(もしくは1月、2月…)といった月名を「2024/1/1」などの日付形式に直す方法を発見したのでご紹介したいと思います。
データの紹介
今回はこのようなデータを元に日付形式に直す例をご紹介します。
画像上部の「Month」が月名、「Year」には年が入っているとします。
年情報がない場合もありますので、その場合は後でご紹介する、MAKEDATE関数に任意の年を入れれば大丈夫です。
年、月に入っている値
「Month」と「Year」にどんな値が入っているか見てみましょう。
「Year」はこんな感じで
「Month」はこんな感じです
Monthの方は、見事に文字列になっていますね。
このままではなかなか日付に直しづらそうです。
そこで、計算フィールドを今回は2つ作ります。
計算フィールド①~DATEPARSE~
このような計算フィールドを作り、まずは月名を日付に直します。
DATEPARSEは文字列を指定された日付形式に直してくれる関数でした。
ここで'MMMM'を指定してあげれば、月名から月を取得することができます。
(どんな言語でも、どんな形式でも、かは定かではないです。一応一般的な日付文字列なら変換できるかと)
因みに私はここを'MM'だと思っていておっかしいなーと思っていたのですが、相棒のBing AI君に聞いたら見事答えてくれました。
ここでどんな感じになっているか見てみましょう。
先ほどの計算フィールド「Month Correct」を行に入れ、不連続の月にしてみますと、見事月名が取れていることがわかります。
でも、月名しかないのに日付形式になっているの不思議ですよね。
試しに年月日にしてみましょう。
1900年の1日になっていますね。
これはTableauが自動的に判断して、最も最初の年と日を出してきているものと思われます。
ここまでできているので、あとはMAKEDATEを使って年と日を指定してあげれば、日付ができます。
計算フィールド②~MAKEDATE~
先ほどの計算フィールド(Month Correct)を使って、このような計算フィールドを作ります。
MAKEDATEは、年、月、日を数値で指定することで日付を作ってくれる関数でした。
それに元々あるYearと、先ほど作成したMonth Correctと、ここでは日情報がないので初めの日である1を入れます。
なぜMONTH関数が付いているかというと、
MAKEDATEの引数はすべて整数である必要があるからです。
先ほど作成したMonth Correctは既に日付になっているので、そこから月の数値を取るためにMONTHで取得することが必要です。
(ちなみに「DATEPART('month', [Month Correct])」でもOKです。
Month Correctが何であったか明確にするために、Month Correctの中身を計算フィールドに入れて式をつなげてみました。
長くはない式なので、一つにまとめる方が運用上はわかりやすいかもしれません。
ここで、この計算フィールド(Date)を行に入れてみましょう。
無事、日付が取れていますね。
これで実際にビューを作るのに日付を活用できそうです。
おわりに
いかがでしたでしょうか?
私はこの情報をCertified Data Analystの勉強で知ったのですが、
その時は解答が間違っていて日付を取得できなかったので、
自分で格闘して見つけた答えになります。
Web検索してもあまり出てこなかった情報になりますので、
誰かのお役に立てれば嬉しいです。
最後まで読んでいただき、ありがとうございました。
Rieko
この記事が気に入ったらサポートをしてみませんか?