Tableau DATENAME関数の使い方|曜日や月などを文字で表示する方法

TableauのDATENAME関数は、日付データを「文字列」として表示したいときに使う重要な関数です。曜日や月などを名称(Sunday、Januaryなど)で取得できます。

目次

DATENAME関数とは?

DATENAMEには以下の2つの機能があります:

  1. 指定した**日時単位(例:month、weekdayなど)**を判定し、
  2. それに対応する名称(英語)を返す

例:2023年1月1日を変換

DATENAME("month", #2023-01-01#)     // "January"
DATENAME("weekday", #2023-01-01#)   // "Sunday"

※注意:「week」ではなく「weekday」で曜日名が返ります(”Sunday”など)。ここは間違われやすいポイントです。

DATENAME関数の基本構文

DATENAME("日時単位", [日付フィールド])
  • 第1引数に文字列で日時単位を指定(例:”month”, “weekday”)
  • 第2引数には対象となる日付フィールドを指定

DATENAMEで使える日時単位一覧

単位意味・出力例
“year”年(例:2023)
“quarter”四半期(例:2)※4月基準
“month”月名(例:January)
“day”日(例:1〜31)
“dayofyear”年初からの日数(= day)
“weekday”曜日名(例:Sunday)
“week”年間の週番号(例:1〜52)
“hour”時(例:0〜23)
“minute”分(例:0〜59)
“second”秒(例:0〜59)

dayofyearDATENAMEではdayと同じ出力になります。区別したいときはDATEPARTの使用を検討してください。

日本語で曜日表示するには?

Tableauは基本的に曜日や月を英語で返すため、日本語に変換したい場合は手動でマッピングします。

方法①:CASE関数でマッピング

CASE DATENAME("weekday", [オーダー日])
    WHEN "Sunday" THEN "日曜日"
    WHEN "Monday" THEN "月曜日"
    WHEN "Tuesday" THEN "火曜日"
    WHEN "Wednesday" THEN "水曜日"
    WHEN "Thursday" THEN "木曜日"
    WHEN "Friday" THEN "金曜日"
    WHEN "Saturday" THEN "土曜日"
END

方法②:日付マスターテーブルを準備(推奨)

  • データソースに「日付マスタ」を追加し、そこに曜日・月名の日本語列を持たせる
  • マッピング・ジョインすれば多言語化対応も容易

よくある間違いと注意点

  • DATENAME("week", ...) は週番号を返す → 曜日名がほしいなら "weekday"
  • DATENAME("dayofyear", ...)day と同じ → 累積日数として扱いたいなら DATEPART("dayofyear", ...)
  • Tableauでは出力が常に英語 → 翻訳は手作業か外部データ連携で対応

実務で役立つユースケース集(基本〜応用)

1. 月別・曜日別ビューの作成(定番)

DATENAME("month", [注文日])
→ グラフの列軸やフィルターに使用して、名称ベースの比較表示が可能

2. ダッシュボードに当日の曜日を表示(Today関数との組み合わせ)

DATENAME("weekday", TODAY())
→ 今日が何曜日かを動的に表示(例:"Wednesday")

3. 曜日によって色やマークを変更(IF文との組み合わせ)

IF DATENAME("weekday", [日付]) = "Sunday" THEN "祝日色"
ELSE "通常色"
END

4. 平日・週末の分類(CASEでマッピング)

CASE DATENAME("weekday", [日付])
    WHEN "Saturday" THEN "週末"
    WHEN "Sunday" THEN "週末"
    ELSE "平日"
END

5. 季節別分類(DATENAME(“month”)との組み合わせ)

CASE DATENAME("month", [日付])
    WHEN "December" THEN "冬"
    WHEN "January" THEN "冬"
    WHEN "February" THEN "冬"
    WHEN "March" THEN "春"
    // 以下略
END

6. 月や曜日を名前順ではなくカレンダー順でソートする

  • DATENAMEは文字列なので並びがアルファベット順になります
  • DATEPARTと組み合わせてソートキーを作成:
DATEPART("month", [日付])  // 数値ソートキー

7. 多言語ダッシュボードでのラベル対応(ローカライズ)

  • フィールドに DATENAME("month", [日付]) を使いつつ、
  • 言語ごとの翻訳マスタを用意してラベル対応

8. モバイルダッシュボードで日付ラベルを短縮表示

LEFT(DATENAME("weekday", [日付]), 3)
→ "Mon", "Tue" のような短縮ラベル表示

9. 曜日ごとの売上比較(列軸にDATENAME)

  • 売上指標を縦軸、DATENAME("weekday", [日付]) を横軸に使えば、曜日ごとの傾向が視覚化できる

10. 営業日・祝日除外ロジックとの組み合わせ(上級)

  • DATENAMEで”Saturday”/”Sunday”を除外対象とし、
  • 外部祝日カレンダーとJOINし、祝日も除外

まとめ

DATENAME関数は、日付データを名称(英語)で扱いたいときに最適な関数です。

  • 曜日・月・年などのテキスト化ができる
  • DATEPARTと違い、文字列として表示できるのが最大の特長
  • 英語出力のみのため、日本語化するなら変換処理が必要

「Tableauで曜日や月を名前で表示したい」「月別で折れ線グラフを作りたい」といったニーズに幅広く対応できる関数です。複雑な条件ロジックにも柔軟に組み込めるため、実務現場での汎用性は非常に高いです。

Comment

コメントする

目次