フィールドを日付フィールドに変換する
各データベースでは日付フィールドの保存の仕方が多少異なります。Tableau では最善の方法で日付フィールドを解釈していますが、フィールドがテキスト文字列または数値フィールドとして Tableau にインポートされる場合があります。このような場合は数ステップで問題を解決可能です。
日付フィールドの検証
[データ ソース] ページでは、
| [データ] ペインに文字列として表示されます
|
日付が文字列として解釈される場合、ドリルダウン、日付計算の使用、連続メジャーと不連続メジャーの切り替えなど、日付フィールドの操作に伴うすべての機能や利便性が失われます。
日付が正しく解釈されない場合、以下のステップを順に行ってください。
フィールドのデータ型を変更する
日付フィールドの解釈に関する問題を解決する最初のステップとして、データ型が [日付] または [日付と時刻] に設定されていることを確認します。
[データ ソース] ペインや [データ] ペインでデータ型アイコンをクリックし、データ型を [日付] や [日付と時刻] に変更します。
ビューまたは [データ ソース] ペインのデータを点検します。Null 値が多く表示される場合は、データ型を [文字列] に戻し、DATEPARSE 関数を使用して計算を作成するに進んで問題を修正します。
DATEPARSE 関数を使用して計算を作成する
日付が保存される配列の形式はほぼ無限です。月の前に年がある日付フィールドや日付部分がピリオドで分かれている日付フィールド、また形式を組み合わせて使用している日付フィールドもあります。Tableau で日付フィールドを解釈できない場合、その原因は特定の形式を変換できないことにあるかもしれません。
DATEPARSE 関数を使用すると、フィールドのどの部分が日付のどの部分かをはっきりと定義できます。本質としては、Tableau が文字列を日付フィールドに変換するのに使用可能なマップを作成しており、このマップが形式と呼ばれます。
注:この関数を使用できるコネクタは、非レガシーの Excel およびテキスト ファイル接続、Amazon EMR の Hadoop Hive、Cloudera Hadoop、Google スプレッドシート、Hortonworks Hadoop Hive、MapR Hadoop Hive、MySQL、Oracle、PostgreSQL、および Tableau 抽出です。書式設定によってはすべての接続で使用できない場合があります。
注: DATEPARSE は Hive バリアントではサポートされていません。サポートされているのは、Denodo、Drill、Snowflake のみです。
DATEPARSE 計算を作成する
日付フィールドの現在の形式を点検します。月、年、時間、日がフィールドのどこに表示されるかに注目します。この情報は DATEPARSE 関数で必要になります。
A. 月の日
B. 月
C. 年
D. 時間、分、秒、ミリ秒、期間
[ディメンション] ペインで日付フィールドを右クリックし、[作成] > [計算フィールドの作成] を選択します。
ダイアログで DATEPARSE 関数を書きます。DATEPARSE 関数には 2 つの部分があります。形式と文字列です。文字列は変換したいフィールドで、文字列データ型にする必要があります。
A. 形式
B. 文字列
形式は、Tableau が文字列を日付として解釈するために使用するガイドとなります。日付または時刻の文字列の各部には、以下の表のとおり、対応する記号があります。形式は、日付の表示方法と正確にそろえる必要があります。たとえば、文字列が 2 桁の年コード ("97") の場合に単一の年コード ("Y") を使用すると、計算では Null 値が返されることがあります。
注: 表示文字列と形式を正確にそろえることの例外として、日付の長い部分 ("September") は 4 つの記号 ("September" = "MMMM") で書式設定することができます。
この形式には、文字列が正しく解釈されるよう、スペース、ハイフン、アルファベッドでない他の記号をすべて含める必要があります。
日付フィールド記号
日付部分 記号 文字列例 形式の例 年 y 97、2017 yy、y または yyyy "年の週" の年 Y 1997 Y タイム ゾーン Z、z -0800、PST-08:00、PST Z、ZZZZ、zzz 月 M 9、09、Sep、September M、MM、MMM、MMMM 年の週 (1 ~ 52) w 8、27 w、ww 四半期 Q Q2、第 2 四半期 QQQ、QQQQ 曜日 E 月曜日、月曜日 EEE、EEEE 月の日 d 1、15 d、dd 年の日 (1 ~ 365) D 23、143 D、DD、DDD 期間 (午前/午後のマーカー) a AM、am、PM aa、aaaa 時間 (1 ~ 12)、時間 (0 ~ 23) h、H 1、10、16 h、hh、HH 分 m 8、59 m、mm 1 分間の秒数 s 5、05 s、ss 不完全な秒 S 2、23、235、2350 S、SS、SSS、SSSS 1 日のミリ秒 A 34532 AAAAA 日付記号の一覧については、ユニコード ページの「国際コンポーネントに関する日付と時刻の概要の書式設定 (英語)」(新しいウィンドウでリンクが開く)を参照してください。
注:一部の日付形式は、すべてのデータベース ファイルやファイルの種類ではサポートされていません。
Tableau で表示される文字列と比較して形式を確認します。記号と書式設定が正しい場合は、[OK] を選択して新しい計算フィールドを作成します。計算フィールドはビューで日付フィールドとして動作します。
Hyper 抽出
.hyper 抽出データ ソースの場合、記号はユニコード コンソーシアムによって定義されています。.hyper 抽出内で DATEPARSE 関数と一緒に使用できるフィールド タイプと記号のサブセットの詳細については、 抽出データ ソースでの DATEPARSE 関数の形式構文を参照してください。
ロケールの考慮事項
DATEPARSE 関数は、変換する文字列を解釈かつ表示するために、コンピューター設定で指定されているロケールによって異なります。すなわち、ロケールは特定の書式設定を認識できるかどうかに影響を及ぼします。つまり、書式設定がロケールでサポートされていない場合、Null 値が表示されたり、返される値がない場合があります。たとえば、データ内に次の文字列があるとします。
12Sep2016:9:8:8.6546
この文字列に対して DATEPARSE 関数から返される値はロケールによって異なります。英語のロケールでは特定の値を取得しますが、日本語のロケールでは値を取得できません。この場合、日本語のロケールは “Sep” を認識しないため、返される値がありません。
日付時刻値
英語のロケール | 日本語のロケール |
---|---|
#9/12/2016 9:08:09 AM# | - |
すべての日付に該当することですが、既定では、DATEPARSE 関数を使用して文字列を日付時刻型に変換した後、Tableau はロケールの既定の書式設定で日付時刻値を表示します。ロケールを変更すると、DATEPARSE 関数の結果は新しい日付時刻値を別の書式設定で表示する可能性があります。
注:ジェット制限により、DATEPARSE 関数は、Access データ ソースから作成された抽出において、コンピューター設定で指定されたロケール情報を正しく識別することができません。この問題を解決するため、Access データを Excel にエクスポートすることを検討してください。
DATE 関数を使用して計算を作成する
作業中のデータで DATEPARSE 関数を使用できない場合や、変換を試みているフィールドが数値データ型の場合は、代わりに DATE 関数を使用できます。
DATE 関数は数字、文字列または日付式を日付タイプに変換します。DATE 関数を使用する計算を作成した場合、Tableau は Tableau データ ソースに日付データを日付として操作できる新しいフィールドを作成します。DATE 関数を使用して日付値から数時、文字列、または日付式を生成するには、Tableau が文字列のコンポーネントを日付部分に解釈できる必要があります。日付のコンポーネントが識別された後、Tableau はコンピューター ロケールを使用して日付の既定の書式設定を決定します。
たとえば、作業している表に、"元の日付" と呼ばれる日付データの列が含まれると想定します。""元の日付" 列は文字列タイプです。
元の日付 |
---|
03Jan2017 |
05Jan2017 |
07Mar2017 |
19Mar2017 |
30Apr2017 |
この場合は、"新しい日付"という名前の、DATE 関数で式を使用する計算フィールドを作成し、"元の日付" フィールドの文字列値を日付値に変換できます。
この例では、日付式は日コンポーネントを隔離する LEFT 関数、年コンポーネントを隔離する MID 関数、および年コンポーネントを隔離する RIGHT 関数で構成されます。
DATE (LEFT([Original Date], 2) + "/" + MID([Original Date],3,3) + "/" + RIGHT([Original Date],4))
"新しい日付" 計算により、次の列が生成されます。
新しい日付 |
---|
1/3/2017 |
1/5/2017 |
3/7/2017 |
3/19/2017 |
4/30/2017 |
この例では、新しい日付値は英語のロケールと既定の書式設定に基づいています。
関連項目
ISO-8601 の週や年を使用した日付の書式設定(新しいウィンドウでリンクが開く)
すべての関数 (カテゴリ別): 日付(新しいウィンドウでリンクが開く)
STR() 関数はデフォルトの日付および数値の書式設定を無視する (英語)(新しいウィンドウでリンクが開く) (Tableau ナレッジベース)