見出し画像

【Tableau Tips】年月日データの"NULL"表記を変えたい時

「Tableauのヘッダー部分に表示させている日付型データに未設定値があるのですが、"NULL" 以外の表記にできませんか?」という質問を受けたので、その回答を備忘録として残しておきます。

ヘッダー部分の "NULL" 表記が気になる、という声はよく聞きます。
文字列なら別名設定などで簡単に対処できるのですが……

はじめに

連続メジャーの場合は、書式設定の中に "特殊な値 (例: NULL)" 用の設定があり、そこでNULL表記を自由に変更できます。
ただし、不連続メジャーとディメンションはこの方法を使えません。

[特別な値] エリアはディメンションや不連続メジャーには使用できません。

数値と NULL 値の書式設定 - Tableau より引用
連続メジャーの場合は "テキスト" の中に記述するだけでOK。

また、ディメンションの場合であれば、文字列の場合は別名設定などでNULL表記を置換可能です。

ただし、日付型データの場合は、別名設定を変更することができません。
年月日のような日付型のデータの場合は、以下の手順でNULL表記を変更することができます。

なお、使用環境はTableau Desktop Public Edition 2023.3.0、使用したデータはChatGPTで作成したサンプルデータです。

1.カスタム日付を作成

まずはカスタム日付を作成します。
「カスタム日付」が何なのかご存じない方はこちらをご覧ください。

〈参考〉
実は、カスタム日付作成ではなく計算フィールドを直接記述する方法でも問題ありません。計算式をタイピングする回数を極力減らしたいので、カスタム日付を使った方法を紹介しています。

データペイン内の日付型データを右クリックして、作成 > カスタムの日付… を選択。

年月日を表示させる場合、詳細では "年/月/日" を選べばよいです。

表示させたい日付形式を選んでOKをクリック。

詳細で "年/月/日" を選ぶと、数値型の計算フィールドが作成されます。

なぜ数値型なのかという理由は、フィールドの説明を見ればわかります。
"年/月/日" のカスタム日付の場合、日付を8桁の整数に変換して処理するため、日付型ではなく数値型という扱いになります。

意外と原始的な計算式で、数値型に変換してくれます。

2.NULL値を0に置換する計算フィールド作成

次に、NULL値を0に置換します。

〈参考〉
紀元1年より前を扱う場合はこの方法が使えません。
ただし、そもそもCSV読み込みなどでデータを参照している場合、400年1月1日よりも前のデータはTableauでは読み込めません。

IFNULL関数などを使って、8桁の整数に変換した日付データ内のNULL値を0に置き換えます。

現在はこのような状態。
日付が最大8桁の整数となり、NULL値は0に変換できています。

3.計算フィールドの数値形式を変更

最後に、数値型に変換した計算フィールドの数値形式を変更します。

作成した計算フィールドを右クリックし、既定のプロパティ > 数値形式… から設定可能。

日付は yyyy/mm/dd表記(例:2023/12/01)でNULL値は "-" という表記にしたい場合、左側の形式一覧から "カスタム" を選び、書式設定に

0000/00/00;;"-";

と入力すればOKです。

〈参考〉
数値形式の書式はセミコロン区切りごとに
(正の数値の書式) ; (負の数値の書式) ; (0の書式) ;
を設定できます。

数値と NULL 値の書式設定 - Tableau 
これでNULL値が "-" 表記となりました。
他の表記にしたい場合、ダブルクォーテーションの中に表示したい文字列を入力すればOK。

さいごに

このページで紹介した方法のように、数値形式の書式設定は裏ワザ的な使い方ができるので、いろいろと探してみたいです。

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