類型轉換
本文介紹 Tableau 中的類型轉換函數及其用法。另外還示範了如何使用範例建立類型轉換計算。
為什麼使用類型轉換函數
類型轉換函數允許您將欄位從一種資料類型轉換為另一種資料類型(這稱為「轉換」)。例如,如果字串資料類型的欄位中有日期資訊,則您將無法在日期計算中使用該欄位,除非將該欄位轉換(變更)為日期資料類型。
例如,要在 DATEDIFF 函數中使用字串日期欄位,您還需要使用日期類型轉換:
DATEDIFF('day', [Date Field], DATE([String Date Field]) )
如果 DATE 函數不變更資料類型,您會收到錯誤訊息「正在使用 (string, date, string) 呼叫 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(expression) |
輸出 | 浮點數(十進位) |
定義 | 將其參數轉換為浮點數。 |
範例 | FLOAT(3) = 3.000 |
說明 | 另請參閱傳回整數的 INT。 |
INT
語法 | INT(expression) |
輸出 | 整數 |
定義 | 將其參數轉換為整數。對於運算式,此函數將結果截斷為最接近於 0 的整數。 |
範例 | INT(8/3) = 2 INT(-9.7) = -9 |
說明 | 字串轉換為整數時會先轉換為浮點數,然後舍入。 另請參閱傳回小數的 FLOAT。 |
MAKEDATE
語法 | MAKEDATE(year, month, day) |
輸出 | 日期 |
定義 | 傳回一個依據指定數字年份、月份和日期構造的日期值。 |
範例 | MAKEDATE(1986,3,25) = #1986-03-25# 請注意,輸入錯誤的值將被調整為日期,例如 MAKEDATE(2020,4,31) = May 1, 2020,而不是傳回沒有 4 月 31 日的錯誤。 |
說明 | 可用於 Tableau 擷取。檢查在其他資料來源中的可用性。 MAKEDATE 需要日期部分的數字輸入。如果您的資料是一個應該是日期的字串,請嘗試使用 DATE 函式。DATE 自動識別許多標準日期格式。如果 DATE 無法識別輸入,請嘗試使用 DATEPARSE。 |
MAKEDATETIME
語法 | MAKEDATETIME(date, time) |
輸出 | 日期時間 |
定義 | 傳回合併日期和時間的日期時間。日期可以是 date、datetime 或 string 類型。時間必須是 datetime。 |
範例 | 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>) |
輸出 | 幾何空間物件(線) |
定義 | 在兩點之間產生線標記。 |
範例 | 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 不支援時間資料類型,僅支援日期時間,因此輸出為日期時間。該欄位的日期部分將是 1/1/1899。 與 MAKEDATETIME 類似的功能,僅適用於 MYSQL 兼容的連線。 |
STR
語法 | STR(expression) |
輸出 | 字串 |
定義 | 將其參數轉換為字串。 |
範例 | STR([ID]) |
轉換布林值運算式
可以將布林值轉換為整數、浮點數或字串,但不能將其轉換為日期。
True
對應到 1、1.0 或“1”False
對應到 0、0.0 或“0”Unknown
對應到Null
。
建立一個類型轉換計算
請按照以下步驟學習如何建立一個類型轉換計算。
- 在 Tableau Desktop 中,連線到 Tableau 附帶的[範例 - 超級市場]已儲存資料來源。
- 巡覽到工作表。
- 選取 [分析] > [建立計算欄位]。
- 在開啟的計算編輯器中,將郵遞區號欄位從數字轉換為字串:
- 將計算欄位命名為 [Postal Code] (郵遞區號)字串。
- 輸入以下公式:
STR([Postal Code])
- 完成後,按一下 [確定]。
新的計算欄位將出現在 [資料] 窗格中的 [維度] 下。就像其他欄位一樣,您可以在一個或多個視覺效果中使用該欄位。
將此欄位從數字轉換為字串可確保 Tableau 將其視為字串而不是數字(因此不會將其彙總)。