定義公式對話方塊 (報表產生器 1.0)
用於建立包含公式的新欄位。
選項
欄位
使用此索引標籤尋找您要在運算式中包含之報表模型內的欄位。按兩下欄位將其加入至運算式。函數
使用此索引標籤選取您要在運算式中使用的函數。按兩下函數將其加入至運算式。如需每個函數的描述,請參閱下列章節。欄位名稱
輸入您要建立的運算式名稱。公式
用於寫入和編輯公式。搜尋
按一下以啟動 [搜尋] 對話方塊。函數快速鍵
按一下以將運算子加入至 [公式] 方塊中顯示的公式。[定義公式] 對話方塊會提供您最常使用之函數的快速鍵;但是您也可以從 [函數] 索引標籤中選取這些運算子。以下是每個快速鍵的說明。+ 用來加總兩個值。
- 用於從一個值減去另一個值。
* 用於乘上兩個文字值。
/ 用來將兩個值相除。
& 用來串連兩個值。
( 用來開始計算。
) 用來結束計算。
以滑鼠右鍵按一下選項
若要查看這些功能表選項,請以滑鼠右鍵按一下 [公式] 方塊中或展開之公式區域中的公式。
展開
按一下以顯示公式以及其與內容實體的關聯性。只有在想要篩選或表示彙總層級時,您才需要這樣做。重新命名
按一下以重新命名 [公式] 對話方塊中顯示的公式。彙總到此處
按一下欄位名稱以變更彙總層級。此選項只在展開公式之後才可用。未套用篩選
如果您按兩下 [公式] 方塊中顯示的欄位名稱,其上定義有公式之實體與欄位本身之間的關聯性隨即出現。您可以將篩選套用至運算式中模型路徑上的任何位置。按一下以將篩選套用至運算式,然後再按 [建立新篩選]。此時會開啟 [篩選資料] 對話方塊。
函數
下列資訊描述每個可在 [定義公式] 對話方塊之 [函數] 索引標籤上找到的函數。
彙總
若要摘要某個範圍的數值,請使用下列函數。
SUM
傳回值集合中所有非 Null 值的總和。語法
SUM(aggregate)
SUM 只能用於包含數值的欄位。系統會忽略 Null 值。
AVERAGE
傳回值集合中所有非 Null 值的平均值 (算術平均值)。語法
AVERAGE(aggregate)
AVERAGE 只能用於包含數值的欄位。系統會忽略 Null 值。
MAX
傳回值集合中所有非 Null 值的最大值。語法
MAX(aggregate)
如果是字元資料行,MAX 會在定序順序中尋找最高值。系統會忽略 Null 值。
MIN
傳回值集合中所有非 Null 值的最小值。語法
MIN(aggregate)
如果是字元資料行,MIN 會以定序順序尋找最低的值。系統會忽略 Null 值。
COUNT
傳回值集合中所有非 Null 值的數目。語法
COUNT(aggregate)
COUNT 一律會傳回 Int 資料類型值。
COUNTDISTINCT
傳回值集合中所有非 Null 值的數目。語法
COUNTDISTINCT(aggregate)
STDev
傳回值集合中所有非 Null 值的標準差。語法
STDEV(aggregate)
STDevP
傳回值集合中所有非 Null 值的母體擴展標準差。語法
STDEVP(aggregate)
VAR
傳回值集合中所有非 Null 值的變異數。語法
VAR(aggregate)
VARP
傳回值集合中所有非 Null 值的母體擴展變異數。語法
VARP(aggregate)
條件式
若要測試條件,請使用下列函數。
IF
如果您指定評估為 TRUE 的條件,就傳回某個值,如果您指定評估為 FALSE 的條件,就傳回另一個值。語法
IF(condition, value_if_true, value_if_false)
條件必須評估為 TRUE 或 FALSE。Value_if_true 代表條件為 True 時傳回的值。Value_if_false 代表條件為 False 時傳回的值。
IN
判斷某個值是否存在於值集合中。語法
IN(item, set)
Switch
評估運算式的清單,並傳回與清單中第一個為 True 之運算式相關聯的運算式值。「參數」可以有一或多個條件/值配對。語法
Switch(condition1, value1, …)
轉換
若要將值從一種資料類型轉換成另一種資料類型,請使用下列函數。
INT
將值轉換成整數。語法
INT(value)
DECIMAL
將值轉換成十進位數。語法
DECIMAL(value)
FLOAT
將值轉換成浮點資料類型。語法
FLOAT(value)
TEXT
將數值轉換成文字。語法
TEXT(value)
日期和時間
若要顯示日期或時間,請使用下列函數。
DATE
傳回提供指定的年、月、日之在上午 12:00:00 的日期/時間值。語法
DATE(year, month, day)
DATEONLY
傳回提供指定之年、月、日的日期/時間值。語法
DATEONLY(datetime)
DATETIME
傳回提供指定之年、月、日、小時、分鐘與秒的日期/時間值。語法
DATETIME(year, month, day, hour, minute, second)
YEAR
傳回日期時間中的年份值。語法
YEAR(datetime)
QUARTER
傳回日期時間的日曆季 (1-4)。語法
QUARTER(datetime)
MONTH
傳回日期時間中的月份 (1-12)。語法
MONTH(datetime)
DAY
擷取日期時間的日期。語法
DAY(datetime)
HOUR
擷取日期時間中的小時 (0-23)。語法
HOUR(datetime)
MINUTE
擷取日期時間的分鐘。語法
MINUTE(datetime)
SECOND
擷取日期時間的秒。語法
SECOND(datetime)
DAYOFYEAR
傳回日期時間之一年中的第幾天。1 月 1 日 = 1,依此類推,12 月 31 日 = 366 (假設是閏年)。語法
DAYOFYEAR(datetime)
WEEK
傳回日曆年中該週的數值。語法
WEEK(datetime)
DAYOFWEEK
傳回一週中的星期幾,從星期一開始。星期一 = 1,依此類推,星期日 = 7。語法
DAYOFWEEK(datetime)
NOW
傳回目前的日期和時間。語法
NOW( )
TODAY
傳回目前的日期。語法
TODAY( )
DATEDIFF
傳回開始時間日期和結束時間日期的差異。語法
DATEDIFF(interval, datetime, datetime)
DATEADD
傳回將指定的時間間隔單位數加上原始日期時間的結果日期時間。語法
DATEADD(interval, units, datetime)
邏輯
若要測試條件的邏輯,請使用下列函數。
AND
如果所有引數均為 TRUE,則傳回 TRUE;如果有一或多個引數為 FALSE,則傳回 FALSE。語法
AND(logical, logical)
引數必須評估為邏輯值 (如 TRUE 或 FALSE),或必須是包含邏輯值的陣列或參考。如果陣列或參考引數包含文字或空的資料格,就會忽略這些值。
OR
如果有任何引數為 TRUE,則傳回 TRUE;如果所有引數均為 FALSE,則傳回 FALSE。語法
OR(logical, logical)
引數必須評估為邏輯值 (例如 TRUE 或 FALSE),或位於包含邏輯值的陣列或參考中。如果陣列或參考包含文字或空的資料格,就會忽略這些值。
NOT
反轉其引數的值。當您想要確定子句不等於某一特定值時,請使用 NOT。語法
NOT(logical)
如果值為 FALSE,則 NOT 會傳回 TRUE;如果值為 TRUE,NOT 就會傳回 FALSE。
數學
若要操作數值,請使用下列函數。
MOD
傳回數字除以除數之後的餘數。除數不能為 0。語法
MOD(number, divisor)
TRUNC
依指定的位數截斷數字。如果數字是正數,會將數字截斷至小數點的右邊。如果數字是負數,會將數字截斷至小數點的左邊。語法
TRUNC(number, digits)
ROUND
將數字四捨五入至指定位數。語法
ROUND(number, digits)
如果位數大於 0 (零),就會將數字四捨五入至指定的小數位數。如果位數為 0,就會將數字四捨五入至最接近整數。如果位數小於 0,就會將數字四捨五入至小數點左邊。
運算子
算術運算子
若要執行基本數學運算 (例如加法、減法或乘法)、結合數字,以及產生數值結果,請使用下列運算子。
+ 加
用來加總兩個或以上的項目。語法
值 + 值
- 減
用來從另一個項目中扣除某項目。語法
值 - 值
* 乘
用來將項目相乘。語法
值 * 值
/ 除
用來將項目相除。除數不能為 0。語法
值/除數
- 否定
變更值的正負號。語法
-值
^ 乘冪
用於將值自乘為乘冪 (乘冪)。語法
值^乘冪
比較運算子
若要比較兩個值,並傳回 TRUE 或 FALSE 的邏輯值,請使用下列運算子。
= 等於
用來判斷兩個值是否相等。當 value1 等於 value2 時為 True。語法
value1= value2
<> 不等於
用來表示兩個值互不相等。當 value1 不等於 value2 時為 True。語法
value1 <> value2
> 大於
用來表示一個值大於另一值。當 value1 大於 value2 時為 True。語法
value1 > value2
>= 大於或等於
用來表示一個值大於或等於其他值。當 value1 大於或等於 value2 時為 True。語法
value1 >= value2
< 小於
用來表示一個值是否小於另一值。當 value1 小於 value2 時為 True。語法
value1 < value2
<= 小於或等於
用來表示一個值小於或等於另一值。當 value1 小於或等於 value2 時為 True。語法
value1 <= value2
Text
若要操作報表中的文字,請使用下列函數。
Concat (&)
將兩個字串結合為一。第二個字串會附加至第一個字串。語法
string & string
Find
字串之第一個執行個體的位置。語法
FIND(string, substring)
Left
傳回字串最左方的字元。語法
LEFT(string, length)
Length
傳回字串中的字元數。語法
LENGTH(string)
Lower
將字串從大寫字元轉換成小寫字元。語法
LOWER(string)
LTrim
傳回已移除開頭空白之後的字串。語法
LTRIM(string)
Replace
傳回以其他子字串取代了子字串的所有執行個體之後的字串。語法
REPLACE(find, replace, string)
Right
傳回字串最右方的字元。語法
RIGHT(string, length)
RTrim
傳回已移除尾端空白之後的字串。語法
RTRIM(string)
Text
將數值轉換成字串。語法
TEXT(value)
Substring
傳回字串中的子字串。語法
SUBSTRING(string, start, length)
Upper
將字串從小寫字元轉換成大寫字元。語法
UPPER(string)
資訊
若要傳回有關使用者的全域資訊,請使用下列函數。
GetUserID
傳回使用者用來存取資料的識別碼。語法
GETUSERID()
GetUserCulture
傳回使用者的語言或地區設定。Syntax
GETUSERCULTURE()