本文介紹字串函數及其在 Tableau 中的用法。它還示範了如何使用範例建立字串計算。

為何使用字串函數

字串函數允許您操作字串資料(即由文字組成的資料)。Tableau 使用當前的國際 Unicode 組件 (ICU) 程式庫比較字串。字串的排序和比較方式基於語言和地區設定,且隨著 ICU 不斷更新以獲得更好的語言支持,可視化可能會發生變化。

例如,可能有一個包含所有客戶的名字和姓氏的欄位。一個成員可能為:Jane Johnson。您可以使用字串函數將姓氏從所有客戶拉取到一個新欄位中。

計算可能如下所示:

SPLIT([Customer Name], ' ', 2)

因此,SPLIT('Jane Johnson' , ' ', 2) = [Johnson] 。

Tableau 中的可用字串函數

函數

語法

定義

ASCII

ASCII(string)

返回 string 的第一個字元的 ASCII 碼。

範例:

ASCII('A') = 65

字元

CHAR(number)

返回透過 ASCII 代碼 number 編碼的字元。

範例:

CHAR(65) = 'A'

CONTAINS

CONTAINS(string, substring)

如果給定字串包含指定子字串,則返回 true。

範例:

CONTAINS(“Calculation”, “alcu”) = true

ENDSWITH

ENDSWITH(string, substring)

如果給定字串以指定子字串結尾,則返回 true。會忽略尾隨空格。

範例:

ENDSWITH(“Tableau”, “leau”) = true

FIND

FIND(string, substring, [start])

返回 substringstring 中的索引位置,如果未找到 substring,則返回 0。如果新增了可選引數 start,則函數會忽略在索引位置 start 之前出現的任何 substring 執行個體。字串中第一個字元的位置為 1。

範例:

FIND("Calculation", "alcu") = 2
FIND("Calculation", "Computer") = 0
FIND("Calculation", "a", 3) = 7
FIND("Calculation", "a", 2) = 2
FIND("Calculation", "a", 8) = 0
FIND("Calculation", "a", 3) = 7
FIND("Calculation", "a", 2) = 2
FIND("Calculation", "a", 8) = 0

FINDNTH

FINDNTH(string, substring, occurrence)

返回指定字串內的第 n 個子字串的位置,其中 n 由 occurrence 參數定義。

附註: 所有資料來源都不可使用 FINDNTH。

範例:

FINDNTH("Calculation", "a", 2) = 7

LEFT

LEFT(string, number)

返回字串最左側一定數量的字元。

範例:

LEFT("Matador", 4) = "Mata"

LEN

LEN(string)

返回字串長度。

範例:

LEN("Matador") = 7

LOWER

LOWER(string)

返回 string,其所有字元為小寫。

範例:

LOWER("ProductVersion") = "productversion"

LTRIM

LTRIM(string)

返回移除了所有前導空格的字串。

範例:

LTRIM(" Matador ") = "Matador "

MAX

MAX(a, b)

 

返回 ab(必須為相同類型)中的較大值。此函數常用於比較數位,但也對字串有效。對於字串,MAX 查找資料庫為該列定義的排序序列中的最高值。如果任一引數為 Null,則返回 Null

範例:

MAX ("Apple","Banana") = "Banana"

MID

(MID(string, start, [length])

返回從索引位置 start 開始的字串。字串中第一個字元的位置為 1。如果新增了可選參數 length,則返回的字串僅包含該數量的字元。

範例:

MID("Calculation", 2) = "alculation"
MID("Calculation", 2, 5) ="alcul"

MIN

MIN(a, b)

返回 ab(必須為相同類型)中的較小值。此函數常用於比較數位,但也對字串有效。對於字串,MIN 查找排序序列中的最低值。如果任一引數為 Null,則返回 Null

範例:

MIN ("Apple","Banana") = "Apple"

PROPERPROPER(string)

轉換文字字串,讓每個單詞的第一個字母大寫,其餘字母小寫。空格和非英數字元(如標點符號)也用作分隔符號。

範例:

PROPER("PRODUCT name") = "Product Name"

PROPER("darcy-mae") = "Darcy-Mae"

REPLACE

REPLACE(string, substring, replacement)

string 中搜尋 substring 並將其替換為 replacement。如果未找到 substring,則字串保持不變。

範例:

REPLACE("Version8.5", "8.5", "9.0") = "Version9.0"

RIGHT

RIGHT(string, number)

返回 string 中最右側一定數量的字元。

範例:

RIGHT("Calculation", 4) = "tion"

RTRIM

RTRIM(string)

返回移除了所有尾隨空格的 string

範例:

RTRIM(" Calculation ") = " Calculation"

SPACE

SPACE(number)

返回由指定 number 個重複空格組成的字串。

範例:

SPACE(1) = " "

SPLIT

SPLIT(string, delimiter, token number)

返回字串中的一個子字串,並使用分隔符號號字元將字串分為一系列標記。

字串將被解釋為分隔符號號和標記的交替序列。因此,對於字串 abc-defgh-i-jkl,分隔符號號字元為「-」,標記為 abc、defgh、i 和 jkl。將這些標記想像為標記 1 至 4。SPLIT 將返回與標記編號對應的標記。如果標記編號為正,則從字串的左側開始計算標記;如果標記編號為負,則從右側開始計算標記。

範例:

SPLIT (‘a-b-c-d’, ‘-‘, 2) = ‘b’
SPLIT (‘a|b|c|d’, ‘|‘, -2) = ‘c’


附註:可以為以下資料來源類型使用拆分和自訂拆分命令:Tableau 擷取、Microsoft Excel、文字檔、PDF 檔、Salesforce、OData、Microsoft Azure Market Place、Google Analytics (分析)、Vertica、Oracle、MySQL、PostgreSQL、Teradata、Amazon Redshift、Aster 資料、Google Big Query、Cloudera Hadoop Hive、Hortonworks Hive 和 Microsoft SQL Server。

某些資料來源在拆分字串時會有限制。下表顯示了哪些資料來源支援負標記數量(從右拆分),以及每個資料來源允許的拆分數是否有限制。指定負標記編號並且對其他資料來源合法的 SPLIT 函數對於這些資料來源將返回以下錯誤:「資料來源不支援從右拆分。」

 

資料來源左/右約束最大拆分數量版本限制
Tableau 擷取兩側無限 
Microsoft Excel兩側無限 
文字檔兩側無限 
Salesforce兩側無限 
OData兩側無限 
Google Analytics (分析)兩側無限 
Tableau Data server兩側無限在版本 9.0 中支援。
Vertica僅左側10 
Oracle僅左側10 
MySQL兩側10 
PostgreSQL在版本 9.0 之前僅左側;版本 9.0 及更高版本中為兩側10 
Teradata僅左側10版本 14 及更高版本
Amazon Redshift僅左側10 
Aster Database僅左側10 
Google BigQuery僅左側10 
Hortonworks Hadoop Hive僅左側10 
Cloudera Hadoop僅左側10版本 2.3.0 中開始支援 Impala。
Microsoft SQL Server兩側102008 及更高版本

STARTSWITH

STARTSWITH(string, substring)

如果 stringsubstring 開頭,則返回 true。會忽略前導空格。

範例:

STARTSWITH(“Joker”, “Jo”) = true

TRIM

TRIM(string)

返回移除了前導和尾隨空格的字串。

範例:

TRIM(" Calculation ") = "Calculation"

UPPER

UPPER(string)

返回字串,其所有字元為大寫。

範例:

UPPER("Calculation") = "CALCULATION"


建立字串計算

按照下面的步驟進行操作以瞭解如何建立字串計算。

  1. 在 Tableau Desktop 中,連線到 Tableau 附帶的 [Sample - Superstore] 已儲存資料來源。

  2. 巡覽到工作表。

  3. 從 [資料] 窗格中的 [維度] 下,將 [Order ID] (訂單 ID)拖到 [列] 架。

    請注意,每個訂單 ID 都包含國家/地區值(例如,CA 和 US)、年份值 (2011),以及訂單編號值 (100006)。對於此範例,您將建立一個計算以僅從欄位中拉取訂單編號。

  4. 選取 [分析] > [建立計算欄位]

  5. 在開啟的計算編輯器中,執行以下操作:

    • 將計算欄位命名為 [Order ID Numbers] (訂單 ID 編號)。

    • 輸入以下公式:

      RIGHT([Order ID], 6)

      此公式從字串的右側獲取指定位數 (6) 的數字,並將其拉取到新欄位中。

      因此,RIGHT('CA-2011-100006' , 6) = [100006] 。

    • 完成後,按一下 [確定]

      新的計算欄位將出現在 [資料] 窗格中的 [維度] 下。就像其他欄位一樣,您可以在一個或多個視覺效果中使用該欄位。

  6. 從 [資料] 窗格中,將 [Order ID Numbers] (訂單 ID 編號)拖到 [列] 架。將其放在 [Order Id] (訂單 Id)的右側。

    留意這些欄位現在的不同之處。

另請參閱

Tableau 中的函數

Tableau 函數(按字母順序)

Tableau 函數(按類別)

在 Tableau 中設定計算的格式

感謝您的意見回饋!