型変換
この記事では、型変換関数と Tableau でのこの関数の使用について説明します。また、例を使用して型変換計算を作成する方法について説明します。
型変換関数を使用する理由
型変換関数を使用すると、フィールドのデータ型を別のデータ型に変換できます (これは「キャスト」と呼ばれています)。たとえば、文字列データ型のフィールドに日付情報がある場合、フィールドを日付データ型にキャスト (変更) しなければ、そのフィールドを日付計算で使用することはできません。
たとえば、DATEDIFF 関数で文字列日付フィールドを使用するには、日付型変換も使用する必要があります。
DATEDIFF('day', [Date Field], DATE([String Date Field]) )
DATE 関数でデータ型を変更しなければ、「DATEDIFF が (文字列、日付、文字列) で呼び出されています」というエラーが発生します。
ヒント: [データ] ペインのフィールドには、デフォルトのデータ型が設定されています。多くの場合、型変換関数を使用する必要はありません。フィールドのデータ型はアイコンをクリックすることで変更できます。ただし、特定の計算に対してのみデータ型を変更すると便利な場合や、Tableau がフィールドの内容を目的のデータ型に正しくキャストできない場合 (日付形式が認識されないなど) があります。そのような場合、以下にリストされているような型変換関数を使用する必要があります。
Tableau で使用可能な型変換関数
DATE
構文 | DATE(expression) |
出力 | 日付 |
定義 | 指定された数値、文字列、または日付式に対する日付を返します。 |
例 | DATE([Employee Start Date]) DATE("September 22, 2018") DATE("9/22/2018") DATE(#2018-09-22 14:52#) |
注 | DATEPARSE(新しいウィンドウでリンクが開く) とは異なり、DATE は多くの標準的な日付形式を自動的に認識するため、パターンを指定する必要はありません。ただし、DATE が入力を認識しない場合は、DATEPARSE を使用して形式を指定してみてください。 MAKEDATE(新しいウィンドウでリンクが開く) も同様の関数ですが、MAKEDATE は年、月、日の数値を入力する必要があります。 |
DATETIME
構文 | DATETIME(expression) |
出力 | 日時 |
定義 | 指定された数値、文字列、または日付式に対する日付時刻を返します。 |
例 | DATETIME("April 15, 2005 07:59:00") = April 15, 2005 07:59:00 |
FLOAT
構文 | FLOAT(expression) |
出力 | 浮動小数点数 (10進数) |
定義 | 引数を浮動小数点数としてキャストします。 |
例 | FLOAT(3) = 3.000 |
注 | 整数を返す INT も参照してください。 |
INT
構文 | INT(expression) |
出力 | 整数 |
定義 | 引数を整数としてキャストします。引数が式の場合、この関数は結果をゼロに最も近い整数に丸めます。 |
例 | INT(8/3) = 2 INT(-9.7) = -9 |
注 | 文字列が整数に変換される場合、この文字列はまず浮動小数点数に変換されてから、丸められます。 小数を返す FLOAT も参照してください。 |
MAKEDATE
構文 | MAKEDATE(year, month, day) |
出力 | 日付 |
定義 | 指定した数値の年、月、日から構成された日付値を返します。 |
例 | MAKEDATE(1986,3,25) = #1986-03-25# 値を誤って入力した場合、4 月 31 日は存在しないというエラーが返されるのではなく、MAKEDATE(2020,4,31) = May 1, 2020 のように日付が調整されることに注意してください。 |
注 | Tableau のデータ抽出で利用できます。他のデータ ソースで利用可能か確認します。 MAKEDATE では、暦の各単位に数値を入力する必要があります。日付であるべきデータが文字列である場合は、DATE 関数を試してください。DATE は、多くの標準的な日付形式を自動的に認識します。DATE が入力を認識しない場合は、DATEPARSE を使用してみてください。 |
MAKEDATETIME
構文 | MAKEDATETIME(date, time) |
出力 | 日時 |
定義 | 日付と時刻を組み合わせた日付時刻を返します。日付は、日付、日付時刻、または文字列の種類になることがあります。時刻は日付時刻である必要があります。 |
例 | MAKEDATETIME("1899-12-30", #07:59:00#) = #12/30/1899 7:59:00 AM# MAKEDATETIME([Date], [Time]) = #1/1/2001 6:00:00 AM# |
注 | この関数は、MySQL 互換の接続 (Tableau では MySQL および Amazon Aurora) でのみ使用できます。 MAKETIME は、Tableau データ抽出およびその他のデータ ソースで使用できる類似の関数です。 |
MAKELINE
構文 | MAKELINE(<Spatial Point1>,<Spatial Point2>) |
出力 | ジオメトリ空間オブジェクト (線) |
定義 | 2 点間に線のマークを生成します。 |
例 | MAKELINE(OriginPoint, DestinationPoint) MAKELINE( MAKEPOINT(OriginLat],[OriginLong]) , MAKEPOINT([DestinationLat],[DestinationLong] ) |
注 | 出発地と目的地のマップを作成したり、MAKEPOINT を使用して緯度と経度を空間オブジェクトに変換したりする場合に便利です。 |
MAKEPOINT
構文 | MAKEPOINT(<latitude>, <longitude>) |
出力 | ジオメトリ空間オブジェクト (点) |
定義 | 緯度列および経度列のデータを、空間オブジェクトに変換します。 |
例 | MAKEPOINT([AirportLatitude],[AirportLongitude]) |
注 | MAKEPOINT を使用すると、データ ソースを空間的に有効化し、空間結合を使用している空間ファイルと結合することができます。詳細については、Tableau で空間ファイルを結合するを参照してください。 MAKEPOINT を使用するには、データに緯度と経度の座標を含める必要があります。 |
MAKETIME
構文 | MAKETIME(hour, minute, second) |
出力 | 日付時刻注を参照してください。 |
定義 | 指定した時、分、秒から構成された日付値を返します。 |
例 | MAKETIME(14, 52, 40) = #1/1/1899 14:52:40# |
注 | Tableau は時刻データ型をサポートしておらず、日時のみをサポートしているため、出力は日時になります。フィールドの日付部分は 1899 年 1 月 1 日になります。 MYSQL 互換の接続でのみ使用できる MAKEDATETIME に類似の関数。 |
STR
構文 | STR(expression) |
出力 | 文字列 |
定義 | 引数を文字列としてキャストします。 |
例 | STR([ID]) |
ブール式のキャスト
ブール値は整数、浮動小数点数、文字列にキャストできますが、日付にはキャストできません。
True
は 1、1.0、「1」にマッピングされますFalse
は 0、0.0、「0」にマッピングされますUnknown
はNull
にマッピングされます
型変換計算の作成
次の手順に従って、型変換計算を作成する方法について学習します。
- Tableau Desktop で、Tableau に付属のサンプル - スーパーストア保存済みデータ ソースに接続します。
- ワークシートに移動します。
- [分析] > [計算フィールドの作成] を選択します。
- 開いた計算エディターで、[郵便番号] フィールドを数値から文字列に変換します。
- 計算フィールドに "Postal Code String (郵便番号文字列)" という名前を付けます。
- 次の式を入力します。
STR([Postal Code])
- 終了したら、[OK] をクリックします。
新しい計算フィールドは、[データ] ペインの [ディメンション] に表示されます。他のフィールドと同様に、このフィールドを 1 つ以上のビジュアライゼーションで使用できます。
このフィールドを数値から文字列に変更すると、Tableau は数値ではなく文字列として処理します (そのため、集計されません)。