Tableau Prep 函數參考

Tableau Prep 計算函數可讓您使用計算欄位來使用資料來源中已存在的資料建立新資料。

數位函數

語法說明
ABS(number)返回給定數字的絕對值。

範例:

ABS(-7) = 7

ABS([Budget Variance])

傳回「預算差異」欄位中包含的所有數字的絕對值。
ACOS(number)返回給定數字的反余弦。結果以弧度表示。

範例:

ACOS(-1) = 3.14159265358979

ASIN(number)返回給定數字的反正弦。結果以弧度表示。

範例:

ASIN(1) = 1.5707963267949

ATAN(number)返回給定數字的反正切。結果以弧度表示。

範例:

ATAN(180) = 1.5652408283942

ATAN2(y number, x number)傳回兩個給定數字(xy)的反正切。結果以弧度表示。

範例:

ATAN2(2, 1) = 1.10714871779409

CEILING(number)將數字舍入為值相等或更大的最近整數。

範例:

CEILING(3.1415) = 4

COS(number)返回角度的余弦。以弧度為單位指定角度。

範例:

COS(PI( ) /4) = 0.707106781186548

COT(angle)返回角度的餘切。以弧度為單位指定角度。

範例:

COT(PI( ) /4) = 1

DIV(integer1, integer2)傳回將 integer1 除以 integer2 的除法運算的整數部分。

範例:

DIV(11,2) = 5

EXP(number)返回 e 的給定數字次冪。

範例:

EXP(2) = 7.389 EXP(-[Growth Rate]*[Time])

FLOOR(number)將數字舍入為值相等或更小的最近整數。

範例:

FLOOR(3.1415) = 3

HEXBINX(number, number)將 x、y 座標對應到最接近的六邊形資料桶的 x 座標。資料桶的邊長為 1,因此,可能需要相應地縮放輸入。

範例:

HEXBINX([Longitude], [Latitude])

HEXBINY(number, number)將 x、y 座標對應到最接近的六邊形資料桶的 y 座標。資料桶的邊長為 1,因此,可能需要相應地縮放輸入。

範例:

HEXBINY([Longitude], [Latitude])

LN(number)

返回數位的自然對數。如果數字小於或等於 0,則傳回 Null。

範例:

LN(EXP(5)) = 5

LOG(number [, base])

返回數字以給定底數為底的對數。如果省略了底數值,則使用底數 10。

範例:

LOG(256, 2) = 8

MAX(number, number)返回兩個引數(必須為相同類型)中的較大值。如果任何參數為 Null,則傳回 Null。MAX 也可套用於彙總計算中的單個欄位。

範例:

MAX(4,7)
MAX(Sales,Profit)
MAX([First Name],[Last Name])

MIN(number, number)返回兩個引數(必須為相同類型)中的較小值。如果任何參數為 Null,則傳回 Null。MIN 也可套用於彙總計算中的單個欄位。

範例:

MIN(4,7)

MIN(Sales,Profit)

MIN([First Name],[Last Name])

PI( )

返回數字常量 pi:3.14159。

範例:

PI() = 3.14159265358979

POWER(number, power)計算數字的指定次冪。

範例:

POWER(5,2) = 52 = 25 POWER(Temperature, 2)

也可以使用 ^ 符號:

5^2 = POWER(5,2) = 25

RADIANS(number)將給定數位從度數轉換為弧度。

範例:

RADIANS(180) = 3.14159

ROUND(number, [decimals])將數字舍入為指定位元數。可選小數引數指定要在最終結果中包含的小數位數精度。如果省略小數,則數字舍入為最接近的整數。

範例:

此範例將每個銷售額值舍入為整數:

ROUND(Sales)

SIGN(number)返回數位的符號:可能的返回值為:在數位為負時為 -1,在數字為零時為 0,在數字為正時為 1。

範例:

如果 profit 欄位的平均值為負值,則

SIGN(AVG(Profit)) = -1

SIN(number)返回角度的正弦。以弧度為單位指定角度。

範例:

SIN(0) = 1.0

SIN(PI( )/4) = 0.707106781186548

SQRT(number)返回數字的平方根。

範例:

SQRT(25) = 5

SQUARE(number)返回數字的平方。

範例:

SQUARE(5) = 25

TAN(number)

返回角度的正切。以弧度為單位指定角度。

範例:

TAN(PI ( )/4) = 1.0

ZN(expression)

如果運算式不為 Null,則返回該運算式,否則返回零。使用此函數可使用零值而不是 Null 值。

範例:

ZN([Profit]) = [Profit]

字串函數

語法說明
ASCII(string)傳回字串的第一個字元的 ASCII 碼。

範例:

ASCII('A') = 65

CHAR(number)傳回透過 ASCII 碼編號編碼的字元。

範例:

CHAR(65) = 'A'

CONTAINS(string, substring)如果給定字串包含指定子字串,則返回 true。

範例:

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

ENDSWITH(string, substring)如果給定字串以指定 substring 結尾,則傳回 true。會忽略尾隨空格。

範例:

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

FIND(string, substring, [start])傳回 substring 在字串中的索引位置,如果未找到子字串則傳回 0。如果新增可選引數 start,則函數將忽略出現在索引位置 start 之前的任何 substring 執行個體。字串中第一個字元的位置為 1。

範例:

FIND("Calculation", "alcu") = 2

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

範例:

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

ISDATE(string)

如果給定字串為有效日期,則傳回 true。

範例:

ISDATE("2004-04-15") = True

LEFT(string, number)返回字串最左側一定數量的字元。

範例:

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

LEN(string)返回字串長度。

範例:

LEN("Matador") = 7

LOWER(string)傳回字串,其所有字元為小寫。

範例:

LOWER("ProductVersion") = "productversion"

LTRIM(string)返回移除了所有前導空格的字串。

範例:

Example: LTRIM(" Sales") = "Sales"

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

範例:

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

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

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

範例:

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

REGEXP_EXTRACT(string, pattern)傳回與正規表式模式中的捕獲群組相符的給定字串的子字串。正規表式模式只需要一個捕獲群組

範例:

REGEXP_EXTRACT('abc 123', '[a-z]+\\s+(\\d+)') = '123'

REGEXP_EXTRACT_NTH(string, pattern, index)使用正規表式模式傳回給定字串的子字串。子字串匹配到第 n 個捕獲群組,其中 n 是給定的索引。

範例:

REGEXP_EXTRACT_NTH('abc 123', '([a-z]+)\\s+(\\d+)', 2) = '123'

REGEXP_MATCH(string, pattern)如果提供的字串的子字串與正規表式模式相符,則傳回 true。

範例:

REGEXP_MATCH('-([1234].[ The.Market ])-', '\\[\\s*(\\w*\\.)(\\w*\\s*\\])') = true

REGEXP_REPLACE(string, pattern, replacement)傳回給定字串的副本,其中配對模式被取代字串替換。

範例:

REGEXP_REPLACE('abc 123', '\\s', '-') = 'abc--123'

REPLACE(string, substring, replacement)在字串中搜尋子字串並將其取代為取代內容。如果未找到子字串,則不會變更該字串。

範例:

REPLACE("Calculation", "ion", "ed") = "Calculated"

RIGHT(string, number)傳回字串中最右邊的字元數。

範例:

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

RTRIM(string)傳回刪除所有尾端空格的字串。

範例:

Example: RTRIM("Market ") = "Market"

SPACE(number)傳回由指定數量的重複空格組成的字串。

範例:

SPACE(1) = " "

SPLIT(string, delimiter, token number)

傳回字串中的子字串,由從字串開頭或結尾擷取字元的分隔符號決定。

範例:

SPLIT('a-b-c-d', '-', 2) = 'b'

STARTSWITH(string, substring)如果字串以 substring 開頭,則傳回 true。會忽略前導空格。

範例:

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

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

範例:

TRIM(" Calculation ") = "Calculation"

UPPER(string)返回字串,其所有字元為大寫。

範例:

UPPER("Calculation") = "CALCULATION"

彙總函式

語法說明
AVG(expression)返回運算式中所有值的平均值。AVG 只能用於數位欄位。會忽略 Null 值

範例;

AVG([Profit])

COUNT(expression)返回群組中的項目數。不對 Null 值計數。

範例:

COUNT([Customer ID])

COUNTD(expression)返回群組中不同項目的數量。不對 Null 值計數。每個唯一值僅計算一次。

範例:

COUNTD([Region])

MEDIAN(expression)傳回單一運算式的中位數。MEDIAN 只能用於數位欄位。會忽略 Null 值。

範例:

MEDIAN([Profit])

PERCENTILE(expression, number)從與指定數字相對應的給定運算式傳回百分位數的彙總計算。該數字的有效值為 0 到 1。PERCENTILE([運算式], 0.50) 將始終傳回運算式中的中位數。

範例:

PERCENTILE([Sales], 0.90)

STDEV(expression)傳回運算式的樣本標準差。

範例:

STDEV([Profit])

STDEVP(expression)

傳回運算式的母體標準差。

範例:

STDEVP([Profit])

SUM(expression)

返回運算式中所有值的總計。SUM 只能用於數位欄位。會忽略 Null 值。

範例:

SUM([Profit])

VAR(expression)

基於群體樣本返回給定運算式中所有值的統計變異數。

範例:

VAR([Profit])

VARP(expression)

基於群體樣本返回給定運算式中所有值的統計變異數。

範例:

VARP([Profit])

ZN(expression)

如果運算式不為 Null,則返回該運算式,否則返回零。使用此函數可使用零值而不是 Null 值。

範例:

ZN([Profit]) = [Profit]

類型轉換函數

語法說明
DATE在指定數字、字串或日期運算式的情況下傳回日期。

範例:

DATE("2006-06-15 14:52") = 2006-06-15

請注意,引號是必需的。

DATETIME(expression)在給定數位、字串或日期運算式的情況下返回日期時間。

範例:

DATETIME("April 15, 2004 07:59:00")

請注意,引號是必需的。

FLOAT(expression)給定任何類型的運算式,傳回一個浮點數。此函數需要未格式化的數字,這代表排除逗號和其他符號。

範例:

FLOAT("3")= 3.000

INT(expression)傳回給定運算式的整數。此函數將結果截斷為最接近於 0 的整數。

範例:

INT(8.0/3.0) = 2 or INT(-9.7) = -9

MAKEDATE(year, month, day)傳回由年、月和該月中的某一天所建構的日期值。

範例:

MAKEDATE(2014, 3, 18)

MAKEDATETIME(date, time)

給定日期運算式和時間運算式,傳回日期和時間值。

範例:

MAKEDATETIME(#2012-11-12#, #07:59:00#)

MAKETIME(hour, minute, second)

傳回由小時、分鐘和秒構成的時間值。

範例:

MAKETIME(14, 52, 40)

STR(expression)

傳回給定運算式的字串。

範例:

STR([Age])

以字串形式傳回 Age 度量的所有值。

日期函數

語法說明
DATEADD(date_part, interval, date)在指定日期新增增量並傳回新日期。增量由間隔和 date_part 定義。

範例:

DATEADD('month', 3, #2004-04-15#) = 2004-07-15 12:00:00 AM

DATEDIFF(date_part, start_date, end_date, [start_of_week])

傳回兩個日期之間的差值,其中從結束日期減去開始日期。差異以 date_part 為單位表示。如果省略 start_of_week,則週開始日由為資料來源設定的開始日決定。

範例:

DATEDIFF('month', #2004-07-15#, #2004-04-03#, 'sunday') = -3

DATENAME(date_part, date, [start_of_week])傳回給定日期字串的組成部分(由 date_part 定義)。如果省略 start_of_week,則週開始日由為資料來源設定的開始日決定。

範例:

DATENAME('month', #2004-04-15#) = "April"

DATEPARSE(format, string)將字串轉換為指定格式的日期。

範例:

DATEPARSE ("dd.MMMM.yyyy", "15.April.2004") = 2004-04-15 12:00:00 AM

DATEPARTT(date_part, date, [start_of_week])以整數形式傳回給定日期的一部分,其中該部分由 date_part 定義。如果省略 start_of_week,則週開始日由為資料來源設定的開始日決定。

範例:

DATEPART('month', #2004-04-15#) = 4

DATETRUNC(date_part, date, [start_of_week])將指定日期截斷為 date_part 指定的精確度並傳回新日期。如果省略 start_of_week,則週開始日由為資料來源設定的開始日決定。

範例:

DATETRUNC('quarter', #2004-08-15#) = 2004-07-01 12:00:00 AM

DAY(date)以整數的形式傳回指定日期的天。

範例:

DAY(#2004-04-12#) = 12

ISDATE(string)如果給定字串為有效日期,則傳回 true。

範例:

ISDATE("2004-04-15") = True

MONTH(date)

以整數的形式傳回指定日期的月份。

範例:

MONTH(#2004-04-12#) = 4

NOW()返回目前日期和時間。

範例:

NOW() = 2004-05-12 1:08:21 PM

TODAY()返回目前日期。

範例:

TODAY() = 2004-05-12

YEAR(date)以整數的形式傳回指定日期的年份。

範例:

YEAR(#2004-04-12#) = 2004

邏輯函數

語法說明
IFNULL(expr1, expr2)如果 <expr1> 不為 Null,則傳回該運算式,否則傳回 <expr2>

範例:

IFNULL([Profit], 0)

IIF(test, then, else, [unknown])檢查某個條件是否得到滿足,如果為 TRUE 則返回一個值,如果為 FALSE 則返回另一個值,如果未知,則返回可選的第三個值或 NULL。

範例:

IIF([Profit] > 0, 'Profit', 'Loss')

ISDATE(string)如果給定字串為有效日期,則傳回 true。

範例:

ISDATE("2004-04-15") = True

ISNULL(expression)如果運算式未包含有效資料 (Null),則傳回 true。

範例:

ISNULL([Profit])

ZN(expression)

如果運算式不為 Null,則返回該運算式,否則返回零。使用此函數可使用零值而不是 Null 值。

範例:

ZN([Profit]) = [Profit]

分析函數

語法說明
LAST_VALUE(expression, [return_last_non-null_value])傳回給定運算式的最後一個值,從分割中的第一列到目前列。接受可選的第二個布林值參數以傳回最後一個非 Null 值。

範例:

{ ORDERBY [Row ID] ASC: LAST_VALUE([Category], true) } = returns the last non-null value of [Category]

LOOKUP(expression, [offset])

傳回目標列(指定為與目前列的相對偏移)中運算式的值。如果無法確定目標列,則傳回 NULL。

LOOKUP 函數的 [offset] 參數只能採用常值整數,例如 1。

範例:

{ORDERBY [DATE] ASC : LOOKUP([SALES], -1)}

傳回上一列的 SALES 值。

NTILE(number)將選取範圍中的列分佈到指定數量的群組或動態磚中。使用此函數,指派給 3 個動態磚的值集 (6,9,9,14) 將遞增指派給動態磚 (1,2,2,3)。

範例:

{PARTITION [Customer]: {ORDERBY [Sales] ASC: NTILE(3) }}

RANK()返回分區中目前列的標準競爭排名。為相同的值指派相同的排名。

範例:

{PARTITION [Customer]: {ORDERBY [Sales] ASC: RANK() }}

RANK_DENSE()返回分區中目前列的密集排名。為相同的值指派相同的排名,但不會向數字序列中插入間距。

範例:

{PARTITION [Customer]: {ORDERBY [Sales] ASC: RANK_DENSE() }}

RANK_MODIFIED()返回分區中目前列的調整後競爭排名。為相同的值指派相同的排名。

範例:

{PARTITION [Customer]: {ORDERBY [Sales] ASC: RANK_MODIFIED() }}

RANK_PERCENTILE()返回分區中目前列的百分位排名。

範例:

{PARTITION [Customer]: {ORDERBY [Sales] ASC: RANK_PERCENTILE() }}

ROW_NUMBER()傳回每列的唯一連續列 ID。

範例:

{PARTITION [Customer]: {ORDERBY [Sales] ASC: ROW_NUMBER() }}

RUNNING_AVG(expression)返回給定運算式從分區中第一列到目前列的執列平均值。

範例:

{ PARTITION [Category] : { ORDERBY [Row ID] ASC : RUNNING_AVG([Sales]) } } = running average of Sales, per Category.

RUNNING_SUM(expression)返回給定運算式從分區中第一列到目前列的執行總計。

範例:

{ ORDERBY [Row ID] ASC : RUNNING_SUM([Sales]) } = running sum of all Sales

關鍵字

函數說明
AND對兩個運算式執行邏輯接合運算

範例:

IF (ATTR([Market]) = "New Business" AND SUM([Sales]) > [Emerging Threshold] )THEN "Well Performing"

ASC定義遞增 ORDERBY 運作。

範例

{ORDERBY [Sales] ASC:RANK()}

CASE查找第一個與 <expr> 相符的 <value>,並傳回對應的 <return>。

範例:

CASE [RomanNumeral] WHEN "|" THEN 1 WHEN "II" THEN 2 ELSE 3 END

DESC定義遞減 ORDERBY 運作。

範例:

{ORDERBY [Sales] DESC:RANK()}

ELSE測試一系列傳回第一個 true<expr> 的 <then> 值的運算式。

範例:

IF [Profit] > 0 THEN 'Profitable' ELSE 'Loss' END

ELSEIF測試一系列傳回第一個 true<expr> 的 <then> 值的運算式。相當於將 if 陳述式放入 ELSE 運作中。

範例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Breakeven' ELSE 'Loss' END

END終止由對應指令引入的運作。

範例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Breakeven' ELSE 'Loss' END

{ FIXED }FIXED 詳細資料層級運算式使用指定維度計算值,而不參考檢視詳細資料層級。

範例:

{FIXED[Customer ID]:MIN([Order Date])}

IF建立條件陳述式(IF 陳述式),並且允許僅在條件為 True 時執行。

範例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Breakeven' ELSE 'Loss' END

NOT對一個運算式執行邏輯非運算。

範例:

IF NOT [Profit] > 0 THEN "Unprofitable" END

OR對一個運算式執行邏輯析取。

範例:

IF [Profit] < 0 OR [Profit] = 0 THEN "Needs Improvement" END

{ ORDERBY }定義套用分析函數的順序。使用可選的 asc | desc 引數指定每個欄位的遞增或遞減。

範例:

{ORDERBY [Customer Name] ASC, [Sales] DESC: RANK() }

{ PARTITION }將群組定義為分析函數。ORDERBY 必須位於分割內。

範例:

{PARTITION [Customer]: {ORDERBY [Sales]: RANK()}}

THEN測試一系列傳回第一個 true<expr> 的 <then> 值的運算式。

範例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Break even' ELSE 'unprofitable' END

WHEN查找第一個與 <expr> 相符的 <value>,並傳回對應的 <return>。

範例:

CASE [RomanNumberal] WHEN 'I' THEN 1 WHEN 'II' THEN 2 ELSE 3 END

感謝您的意見反應!已成功提交您的意見回饋。謝謝!