SAP Web Intelligence User Guide
Advertisement
Advertisement
在 Web Intelligence 中使用函式、公式和計算
■ SAP BusinessObjects Business Intelligence Suite 4.1 Support Package 1
2013-09-19
版權聲明 © 2013 SAP AG 或 SAP 附屬公司。保留所有權利。 未經 SAP AG 授權,任何人不得以任何形式或
根據任何用途進行重製或傳播此出版品的任何部份。此處所包含資訊如有變更,恕不提前通知。
SAP AG 與其經銷商所販售之部份軟體產品包含其他軟體供應商的專有軟體元件。國家產品規格可
能不同。 SAP AG 和其附屬公司 (「SAP Group」) 所提供的這些資料僅供參考之用,不具任何聲
明與保固。SAP Group 對資料中的錯誤和遺漏,概不負責。 SAP Group 產品和服務的唯一保固,
如這些產品和服務隨附之明示保固聲明中所述 (若有的話)。在此提供的任何資料不可推斷為附加
保固條款。 SAP 和此處所提及之其他 SAP 產品與服務,以及其相對應的標誌皆為 SAP AG 在德國
或 SAP 附屬公司的商標或註冊商標。 請登錄 http://www.sap.com/corporate-en/legal/copyright/index.epx#trademark,以了解其他商標資
訊和通告。
2013-09-19
目錄
3
文件記錄:Web Intelligence 函式、公式和計算...........................6
關於本指南............................................................7
使用標準與自訂計算....................................................8
瞭解計算內容.........................................................18
以智慧型計量計算值...................................................38
2013-09-19
目錄
4
函式、運算子和關鍵字.................................................47
疑難排解公式........................................................202
2013-09-19
5
目錄
使用函式比較值......................................................210
詳細資訊............................................................219
索引...............................................................................221
2013-09-19
6
文件記錄:Web Intelligence 函式、公式和計算
第1章 文件記錄:Web Intelligence 函式、公式和計算
下表提供最重要的文件變更總覽。
版本
SAP BusinessObjects Interactive Analysis 4.0
日期
2011 年 11
月 30 日
SAP BusinessObjects Interactive Analysis 4.0 Service Pack
1
2011 年 2
月 25 日
描述
最初更名的 Interactive Analysis。本文件的第一
版本。
支援套件 1
BusinessObjects Web Intelligence 4.0 Service Pack 2
BusinessObjects Web Intelligence 4.0 功能套件 3
BusinessObjects Web Intelligence 4.1
2011 年 6
月 15 日
2012 年 2
月 20 日
2013 年 5
月 10 日
支援套件 2,其更名回 Web Intelligence。
功能套件 3
包括阿拉伯文地區設定專用的 RTL (由右至左) 支
援,這會影響下列特定 RTL 地區設定字元功能的意
義:
• Left
• LeftPad
• LeftTrim
• Right
• RightPad
• RightTrim
2013-09-19
關於本指南
第2章 關於本指南
《在 Web Intelligence 中使用函式、公式和計算》指南在您執行資料分析時,提供可用進階計算功能
的詳細資訊。另外,還提供可用函式和運算子的語法參考。
7 2013-09-19
使用標準與自訂計算
第3章 使用標準與自訂計算
8
您可以使用標準的計算函數,以便對資料進行快速計算。
如果標準計算不能滿足您的需求,您還可以使用公式語言建立自訂計算。
3.1 標準計算
您可以使用標準的計算函數,以便對資料進行快速計算。
可用的標準計算如下:
計算
Sum
Count
Average
Minimum
Maximum
Percentage
描述
計算所選資料的總和。
計算計量物件的所有資料列計數,或計算維度或詳細資料物件的差異資料
列計數。
計算資料的平均值。
顯示所選資料的最小值。
顯示所選資料的最大值。
顯示所選資料佔總計的百分比。百分比的結果會顯示在表格的其他資料行
或資料列中。
附註:
百分比的計算是將選取的計量與該表格或分割上該計量的總結果進行比較。
若要計算某一計量與另一計量比較的百分比,需要建立一個自訂計算。
Default 對標準計量套用預設彙總函式,或對智慧型計量套用資料庫彙總函式。
當您將標準計算套用至表格資料行時,會在頁尾顯示計算結果。會為每個計算新增頁尾。
2013-09-19
9
使用標準與自訂計算
3.2 使用公式建立自訂計算
自訂計算能讓您除了使用報表基準物件及標準計算之外,為報表新增額外的計算。
您可以撰寫公式來新增自訂計算。公式可以由基底報表變數、函式、運算子和計算內容所組成。
自訂計算是由報表物件、函式與運算子所組成的公式。公式擁有您可明確指定的計算內容 (如果您選擇
的話)。
範例:顯示每筆銷售的平均營業收入
如果您有一份報表含有「營業收入」和「銷售量」的物件,您想要將每筆銷售的營業收入新增至報表。
計算 [營業收入]/[銷售量] 是用營業收入除以銷售項目的數量所得出的值來算出每筆項目的營業收
入。
相關主題
•
計算內容是指列入計算用以產生結果的資料。這表示計量指定的值是由用於計算計量的維度
所決定。
3.2.1 使用變數簡化公式
如果公式很複雜,可以使用變數加以簡化。
使用變數可以將複雜的公式分析成可以管理的部份,並使它更易於讀取以及減少建立公式的錯誤。
您可以在公式中使用先前建立的變數,方式與使用其他報表物件完全相同。變數會出現在公式編輯器的
[變數] 資料夾下。
您可以在公式中輸入這個變數名稱,或將變數拖曳至 [公式] 工具列,如同您拖曳任何報表物件一般。
相關主題
•
2013-09-19
使用標準與自訂計算
3.3 使用函式
標準差是一種統計詞彙。值集合的標準差可計量這些值在平均值附近的分佈情形。
自訂計算有時只包含報表物件,例如 [營業收入]/[銷售量]。除了報表物件,計算也能包含函式。
函式能接收零或多個值做為輸入,並根據這些值傳回輸出結果。例如,Sum 函式會加總計量中的所有值
並輸出結果。公式 Sum([營業收入]) 會輸出營業收入的總數。在此例中,函式輸入為 [營業收入] 計
量,而輸出則是所有 [銷售量] 的總數。
相關主題
•
運算子會連結公式中的各種元件。
•
公式函式細分為數個類別。
3.3.1 在儲存格中包含函式
報表儲存格中的文字都是以 '=' 開頭。
文字會出現在引號中,但公式的顯示則不加引號。例如,Average([營業收入]) 公式出現在儲存格中時
會是 =Average([營業收入])。「平均營業收入?」這些文字會顯示為 ="平均營業收入?"。
您可以在儲存格中只使用文字,或使用 '+' 運算子結合公式與文字。如果要讓儲存格在平均營業收入
的前面顯示「平均營業收入:」這段文字,則儲存格的文字將如下所示:="平均營業收入:" + Aver age([營業收入])。
請注意文字字串結尾的空格,才不會將文字與值直接並列在儲存格中。
3.3.2 函式語法
10 2013-09-19
使用標準與自訂計算
當您選取函式時,公式編輯器 會顯示函式語法。
若要使用函式,必須知道函式名稱、需要多少輸入值以及這些輸入值的資料類型。您也需要知道函式輸
出的資料類型。
例如,Sum 函式是以數字物件做為輸入 (例如,顯示營業收入的計量) 並輸出數字資料 (計量物件所有
值的總和)。
Abs 函式的語法如下: num Abs(number)
此語法說明 Abs 函式是以單一數字作為輸入,並傳回一個數字作為輸出。
3.3.3 函式範例
此主題提供公式中所使用的函式範例。
範例:使用 UserResponse 函式顯示提示輸入
您有一份顯示「年」、「季」與「營業收入」的報表。雖然沒有顯示「州」,但「州」物件也會出現
在報表資料中。當使用者執行報表時,會對使用者顯示提示並要使用者選擇一個州。您想要顯示使用
者在報表標題中所選擇的州。如果您的資料提供者名為 “eFashion",而且在提示中的文字為「選擇
一個州」,則該標題的公式為:
"Quarterly Revenues for " + UserResponse( "eFashion";"Choose a State")
在重新整理資料提供者時,如果使用者選擇「伊利諾州」作為州,則報表如下:
11 2013-09-19
使用標準與自訂計算
範例:使用 Percentage 函式計算百分比
Percentage 函式會計算百分比。此函式會根據數字的上下內容來計算百分比。例如,下列表格顯示依
年和季的收入。百分比資料行含有公式 Percentage ([營業收入])。
12
在此例中,函式會將每個收入計算為總收入的百分比。上下內容為總營業收入;這是唯一相關的營業
收入數字,不在表格中依年和依季的明細裏。
如果這份報表是依年分割為區段,則在表格之外的上下文會變成區段中的總收入。
2013-09-19
使用標準與自訂計算
如果 [百分比] 儲存格是放置在表格外面,但仍在區段裏面,則上下內容會變成總收入。在此例中,
Percentage 函式會將區段的總收入計算成整體總收入的百分比。
13
範例:使用 Sum 函式計算百分比
使用 Sum 函式計算百分比的內容,會比使用 Percentage 函式賦予您對內容擁有更多的控制權。如果
您將一組數字中的一個數字除以這些數字的總計,則可獲得該數字佔總計的百分比;例如,[營業收
入]/Sum([營業收入]) 公式會將營業收入計算成總收入的百分比。
在下表中,[總計百分比] 資料行的公式為:
[Sales revenue]/(Sum([Sales revenue] In Report))
而 [年百分比] 資料行的公式則為:
[Sales revenue]/(Sum([Sales revenue] In Section))
2013-09-19
使用標準與自訂計算
這些函式會利用延伸語法關鍵字 Report 和 Section,指示 Sum 函式分別計算整體總收入和每年收
入。
相關主題
•
延伸語法是使用可新增公式或計量的內容運算子來指定其計算內容。
3.3.3.1 使用變數簡化標準差公式
14
標準差是一種統計詞彙。值集合的標準差可計量這些值在平均值附近的分佈情形。
Var 函式只需要一個步驟即能計算變異數,但以手動方式計算變異數的範例更有助於您瞭解如何使用變
數來簡化複雜的公式。若要手動計算變異數,您必須:
• 計算銷售項目的平均數量
• 計算銷售項目數量與平均數量之間的差異值,然後將此值平方
• 將這些平方的差異值全部加總
• 以該組值的數量 -1,再與這個總計相除
您有一個依季顯示項目數量的報表,而且您想要包含標準差。如果沒有使用變數加以簡化,這個複雜的
公式將如下所示:
Sum((([Quantity sold] - Average([Quantity sold] ForEach [Quarter]) In Report)*([Quantity sold] - Average([Quantity sold] ForEach
[Quarter]) In Report)) In [Quarter])/(Count ([Quantity sold] ForEach [Quarter]) - 1)
建立標準差公式
建立標準差公式需要幾個步驟。您可以將這些步驟包含在一個變數中。您所建立的變數為:
• 銷售項目的平均數量
• 觀察所得的資料量 (也就是銷售項目數量的個別值數量)
• 觀察所得的資料量與平均值之間的差異平方
2013-09-19
使用標準與自訂計算
• 以觀察所得之資料量 - 1,再與這些差異總和相除
標準差公式如下所示:
變數
平均銷售量
觀察所得之資料量
差平方
變異數
公式
Average([銷售量] In ([季])) In Report
Count([銷售量] In ([季])) In Report
Power(([銷售量] - [平均銷售量]);2)
Sum([差平方] In ([季]))/([觀察所得之資料量]
- 1)
如今公式變成以下結果:
Sum ([Difference Squared])/[Number of Observations] - 1)
將更易於瞭解。公式的簡化版本讓您清楚瞭解公式所進行的計算,而不會讓您陷入令人混淆的詳細資料
中。接著您可以檢查在高階公式中所參考的變數公式,以瞭解高階公式的元件部份。
例如,該公式參考「差平方」變數,而該變數本身則是參考「平均銷售量」變數。藉由檢查銷售量「差
平方」與「平均銷售量」的公式,就能擷取公式細目,以便瞭解計算的詳細情況。
3.3.4 函式和公式運算子
運算子會連結公式中的各種元件。
公式可以包含數學、條件、邏輯、函式限定的運算子,或延伸語法運算子。
3.3.4.1 數學運算子
15
數學運算子就是日常生活常用的算數符號。
有四種運算子:加號 (+)、減號 (-)、乘號 (*)、除號 (/),讓您在公式中執行數學運算。公式 [營業
收入] - [銷售成本] 包含數學運算子,在本範例中為減法。
2013-09-19
使用標準與自訂計算
附註:
使用字元字串時,'+' 運算子會變成字串合併運算子。也就是說,它會聯結字元字串。例如,公式
"John" + "Smith" 會傳回 "John Smith"。
3.3.4.2 條件運算子
條件運算子可以決定兩個值之間要比較的類型。
<
>=
<=
<>
運算子
=
>
描述
等於
大於
小於
大於或等於
小於或等於
不等於
搭配 If 函式來使用條件運算子的方式如下:
If [Revenue]>10000 Then "High" Else "Low"
當所有資料列的營業收入大於或等於 10000 時會傳回「High」,並將所有其他資料列傳回「Low」。
3.3.4.3 邏輯運算子
邏輯運算子包括 And、Or、Not、Between 和 InList。
邏輯運算子是用於傳回 True 或 False 的布林運算式。
3.3.4.4 內容運算子
16 2013-09-19
使用標準與自訂計算
內容運算子是構成延伸計算語法的一部份。
延伸語法讓您定義計量或公式在計算中所估算的維度。
3.3.4.5 函式專用運算子
某些函式可接受特定運算子做為引數。
例如,Previous 函式可接受 Self 運算子。
所有函式使用「)」和「(」來包含函式引數。接受多重參數的函式使用「;」來分隔參數。
17 2013-09-19
瞭解計算內容
第4章 瞭解計算內容
4.1 定義的計算內容
計算內容是指列入計算用以產生結果的資料。這表示計量指定的值是由用於計算計量的維度所決定。
一份報表包含兩種物件:
• 維度代表產生數字的商務資料。商家、年度或地區都是維度資料的例子。例如,商家、年度或地區
都能產生收入:我們可以依商家、年度或地區類別來談論收入。
• 計量是由維度資料所產生的數值資料。計量的範例包括營業收入和銷售量。例如,我們可以談論特
定商家的銷售量。
計量也可由維度資料的組合所產生。例如,我們可以談論特定商家於 2005 年產生的收入。
計量的計算內容有兩個元件:
• 決定計量值的維度或維度清單
• 決定計量值的維度資料部分
計算內容也有兩個元件:
• 輸入內容
• 輸出內容
相關主題
•
計量或公式的輸入本文就是要列入計算的維度清單。
•
如果公式是放在含有分割的區塊表尾中,其輸出內容會促使公式輸出一個值。
4.1.1 輸入本文
18 2013-09-19
瞭解計算內容
計量或公式的輸入本文就是要列入計算的維度清單。
位於輸入內容中的維度清單列示在輸出值的函式括號內。維度清單也必須以括號括住 (即使清單只包含
一個維度),而且維度之間必須以分號分隔。
範例:指定輸入內容
假設報表具有「年」區段,每個區段中的區塊列有 [客戶] 和 [收入] 資料行,輸入內容即為:
報表組件
區段頁首和區塊頁尾
區塊中的資料列
輸入內容
年
年、客戶
換言之,區段頁首和區塊頁尾顯示依年度的彙總收入,而區塊內的每一個資料列則顯示依「年」和「客
戶」的彙總收入 (每位客戶在該年度產生的收入)。
在公式中明確指定時,這些輸入內容如下:
Sum ([Revenue] In ([Year]))
Sum ([Revenue] In ([Year];[Customer]))
也就是在輸入內容中的維度會出現在指定輸入內容的函式括弧內 (在此例為 Sum)。
4.1.2 輸出內容
如果公式是放在含有分割的區塊表尾中,其輸出內容會促使公式輸出一個值。
範例:指定輸出內容
下面的報表顯示依年和依季的營業收入,以年做分類小計 (分割),且包含依年計算的最小營業收入:
19 2013-09-19
瞭解計算內容
若是想要在沒有分割的區塊中顯示依年的最小營業收入,該如何呢?您可以在公式中指定輸出內容以
執行這個動作。在此例中,公式看起來會像這樣:
Min ([Revenue]) In ([Year])
也就是輸出內容會出現在指定輸出內容的函式括弧後面。在此例中,輸出內容會依年計算最小營業收
入。
如果您在區塊中新增一個包含此公式的額外資料行,則結果如下所示:
20
您將看到「依年度的最小值」資料行會包含顯示在上一份報表的分割表尾中的最小營業收入。
2013-09-19
瞭解計算內容
請注意,在此範例中並未指定輸入內容,因為輸入內容是區塊的預設內容 (年、季)。換言之,輸出內
容會依年與季輸出營業收入。若完整明確地指定輸入和輸出公式,公式看起來會像這樣:
Min ([Sales Revenue] In([Year];[Quarter])) In ([Year])
換言之,這個公式會依年和依季計算營業收入,然後輸出每年產生的最小營業收入。
如果您未在「依年度的最小值」資料行中指定輸出內容,會發生什麼事呢?在此情況下,這些數字將
與「營業收入」資料行中的數字相同。為什麼?請記住,在區塊中的預設內容包含該區塊中的維度。
依年和依季的最小營業收入與依年和依季的營業收入相同,這是因為每年/季的結合只有一個營業收
入。
4.2 預設計算內容
21
視在報表中的位置而定,計量具有預設計算內容。
計量所傳回的數字是根據相關聯的維度而定。這種維度的組合代表計算內容。
您可以使用延伸語法來變更預設內容。換言之,您可以決定要用哪一組維度產生計量。這就是定義計算
內容的用意。
範例:報表中的預設內容
本範例以一份簡單的報表說明計量的預設計算內容。此報表顯示客戶產生的營業收入,依年分割為區
段。
2005 總計:8000
客戶
Harris
Jones
Walsh
總計:
收入
1000
3000
4000
8000
報表總計:8000
下表列出此報表中各計量的計算內容:
2013-09-19
瞭解計算內容
計量
報表總計
區段頁首總計
客戶總計
區塊頁尾總計
值
20000
8000
1000、3000、4000
8000
內容
報表中所有收入的總計
年
年;客戶
年
相關主題
•
計算內容是指列入計算用以產生結果的資料。這表示計量指定的值是由用於計算計量的維度
所決定。
•
延伸語法是使用可新增公式或計量的內容運算子來指定其計算內容。
4.2.1 垂直表格中的預設內容
垂直表格是一種標準的報表表格:頁首在上方、資料由上而下、頁尾在下方。
下表是垂直表格中的預設內容:
當計算在...
輸入內容是 輸出內容是
頁首 用來產生區塊內文的維度與計量
彙總所有資料,接著計算函式會
傳回單一值
區塊內文
頁尾
用來產生目前資料列的維度與計
量
與輸入內文相同
用來產生區塊內文的維度與計量
彙總所有資料,接著計算函式會
傳回單一值
22 2013-09-19
瞭解計算內容
4.2.2 水平表格中的預設內容
水平表格的預設內容與垂直表格的預設內容相同。
水平表格即為垂直表格翻轉過來的表格。
水平表格的外觀視您在 BI Launch Pad 偏好設定中選取的慣用的檢視地區設定而定。英文地區設定等
地區設定使用由左至右 (LTR) 的介面定位,而阿拉伯文地區設定等,則使用由右至左 (RTL) 的介面定
位。
在 LTR 地區設定中,頁首顯示在左邊,資料由左至右,頁尾則顯示在右邊。在 RTL 地區設定中,頁首
顯示在右邊,資料由右至左,頁尾則顯示在左邊。
4.2.3 交叉表表格的預設內容
23
交叉表是以矩陣顯示資料並在維度的交叉點顯示計量。
下表是交叉表中的預設內容:
計算是在...
頁首
區塊內文
頁尾
VBody 頁尾
HBody 頁尾
VFooter
輸入內容是...
用來產生區塊內文的維度與計
量。
用來產生區塊內文的維度與計
量。
用來產生區塊內文的維度與計
量。
輸出內容是...
聚集所有資料,然後計算函式會
傳回單一值。
與輸入內容相同。
與頁尾相同。
聚集所有資料,然後計算函式會
傳回單一值。
用來產生目前資料行的維度與計
量。
聚集所有資料,然後計算函式會
傳回單一值。
用來產生目前資料列的維度與計
量。
聚集所有資料,然後計算函式會
傳回單一值。
聚集所有資料,然後計算函式會
傳回單一值。
2013-09-19
瞭解計算內容
計算是在...
HFooter
範例:交叉表中的預設內容
以下報表顯示交叉表中的預設內容:
輸入內容是...
與頁尾相同。
輸出內容是...
聚集所有資料,然後計算函式會
傳回單一值。
4.2.4 區段中的預設內容
區段是由頁首、內文和頁尾所構成。
下表是區段中的預設內容:
計算是在...
內文
輸入內容是...
在報表中的維度與計量,會經過
篩選以將資料限制為區段資料。
輸出內容是...
聚集所有資料,然後計算函式會
傳回單一值。
範例:區段中的預設內容
以下報表顯示交叉表中的預設內容:
24 2013-09-19
瞭解計算內容
4.2.5 分割中的預設內容
分割是由表頭、內文和表尾所構成。
分割中的預設內容如下所示:
計算是在...
輸入內容是...
頁首 分割目前的執行個體。
頁尾 分割目前的執行個體。
輸出內容是...
聚集所有資料,然後計算函式會
傳回單一值。
聚集所有資料,然後計算函式會
傳回單一值。
25 2013-09-19
瞭解計算內容
範例:分割中的預設內容
下表顯示分割中的預設內容:
4.3 使用延伸語法修改預設計算內容
延伸語法是使用可新增公式或計量的內容運算子來指定其計算內容。
計量或公式的內容是由輸入內容與輸出內容所組成。
4.3.1 延伸語法運算子
您可以用內容運算子,明確指定輸入和輸出內容。
下表列出內容運算子:
運算子
In
ForEach
描述
指定內容中要使用的明確維度清單。
將維度新增預設內容
26 2013-09-19
瞭解計算內容
運算子
ForAll
描述
從預設內容移除維度
當您的預設內容包含許多維度時,ForAll 與 ForEach 運算子便會十分實用。通常使用 ForAll 與
ForEach 從內容新增或減少會比使用 In 明確指定清單來得容易。
4.3.1.1 In 內容運算子
In 內容運算子可以在內容中明確指定維度。
範例:使用 In 在內容中指定維度
在此範例中,您有一份顯示「年」與「營業收入」的報表。您的資料提供者也包含「季」物件,但是
您不想將此維度包含在區塊中。您想要包含其他資料行以顯示每年依季的最大營業收入。您的報表看
起來會像這樣:
年
2001
2002
2003
營業收入
$8,096,123.60
$13,232,246.00
$15,059,142.80
季度最大收入
$2,660,699.50
$4,186,120.00
$4,006,717.50
您可以藉由檢查此區塊以及包含「Quarter」維度的區塊,以查看「Max Quarterly Revenue」資料行
中值的來源:
27 2013-09-19
瞭解計算內容
年
2001
2001
2001
2001
年
季
第 1 季
第 2 季
第 3 季
第 4 季
最大值:
季
第 1 季
第 2 季
第 3 季
第 4 季
最大值:
營業收入
$2,660,699.50
$2,279,003.00
$1,367,841.00
$1,788,580.00
$2,660,699.50
營業收入
$3,326,172.00
$2,840,651.00
$2,879,303.00
$4,186,120.00
$4,186,120.00
年 季
第 1 季
第 2 季
第 3 季
第 4 季
最大值:
營業收入
$3,742,989.00
$4,006,717.50
$3,953,395.00
$3,356,041.00
$4,006,717.50
「季度最大收入」資料行顯示每年最高季營業收入。例如,在 2002 年中第 4 季的收入最高,因此
「季度最大收入」會在顯示 2002 的資料列上顯示第 4 季的收入。
使用 In 運算子,「季度最大收入」的公式為
Max ([Sales Revenue] In ([Year];[Quarter])) In ([Year])
此公式會計算每次 (年,季) 結合的最大營業收入,然後依年將此數字輸出。
附註:
由於區塊的預設輸出內容為「年」,所以不需在此公式中明確指定輸出內容。
4.3.1.2 ForEach 內容運算子
28 2013-09-19
瞭解計算內容
ForEach 運算子會將維度新增至內容。
範例:使用 ForEach 將維度新增至內容
下表顯示報表中各「季」的最大收入,報表中包含 「季」維度,但不包括在此區塊中:
年
2001
2002
2003
營業收入
8096123.60
13232246.00
15059142.80
季度最大收入
2660699.50
4186120.00
4006717.50
您可以建立不包含 ForEach 運算子的「季度最大收入」資料行公式:
Max ([Sales Revenue] In ([Year];[Quarter])) In ([Year])
使用 ForEach 內容運算子可以算出與使用下列公式相同的結果:
Max ([Sales Revenue] ForEach ([Quarter])) In ([Year])
為什麼?因為「年」維度是區塊中的預設輸入內容。您可以使用 ForEach 運算子將「季」維度新增內
容中,以指定 ([年];[季]) 的輸入內容。
4.3.1.3 ForAll 內容運算子
ForAll 內容運算子會從內容中移除維度。
範例:使用 ForAll 將維度從內容移除。
您有一份顯示「年」、「季」和「營業收入」的報表,您想要新增一個資料行以顯示每年的總營業收
入,如下列區塊所示:
29 2013-09-19
瞭解計算內容
若要依年加總營業收入,則輸入內容必須為 (年);預設為 (年; 季)。因此,您可以在公式中指定
ForAll ([季]),以便從輸入內容中移除「季」,其公式如下:
Sum([Sales Revenue] ForAll ([Quarter]))
請注意,您可以使用 In 運算子算出相同的結果,在此例中公式為:
Sum([Sales Revenue] In ([Year]))
此版的公式明確地將「年」指定為內容,而非將「季」移除以留下「年」。
4.3.2 延伸語法關鍵字
延伸語法關鍵字是一種「速記」形式,讓您參考延伸語法中的維度,而不需明確指定這些維度。
這些關鍵字協助未來校對報表之用。若公式中未包含維度的固定參考,即使從報表中新增或移除維度,
公式仍可繼續執行。
有五個延伸語法關鍵字:Report、Section、Break、Block 和 Body。
4.3.2.1 Report 關鍵字
30 2013-09-19
瞭解計算內容
此主題說明 Report 關鍵字所參考的資料視其在報表中的位置而定。
當放置在...
一個區塊
區塊分割 (表頭或表尾)
區塊 (頁首、頁尾或在區塊外面)
在任何區塊或區段外面
參考此資料...
在報表中的所有資料
在報表中的所有資料
在報表中的所有資料
在報表中的所有資料
範例:Report 關鍵字
您有一份顯示「年」、「季」與「營業收入」的報表。該報表有一個 [報表總計] 資料行,可顯示報
表中所有營業收入的總計。
報表總計資料行公式如下所示:
Sum([Sales revenue]) In Report
若沒有 Report 關鍵字,則此資料行會因為使用預設的輸出內容 ([年];[季]) 而複製「營業收入」資
料行的數字。
4.3.2.2 Section 關鍵字
31 2013-09-19
瞭解計算內容
此主題說明 Section 關鍵字所參考的資料視其在報表中的位置而定。
當放置在...
一個區塊
區塊分割 (表頭或表尾)
區塊 (頁首、頁尾或在區塊外面)
在任何區塊或區段外面
參考此資料...
在區段中的所有資料
在區段中的所有資料
在區段中的所有資料
不適用
範例:Section 關鍵字
您有一份顯示「年」、「季」與「營業收入」的報表。
這個報表有一個依據「年」的區段。[區段總計] 資料行含有公式:
Sum ([Sales Revenue]) In Section
在 [區段總計] 資料行中的數字為 2001 年的總營業收入,這是因為區段分割發生在「年」物件。若
沒有 Section 關鍵字,則此資料行將會因為使用預設的輸出內容 ([年];[季]),而複製「營業收入」
資料行中的數字。
4.3.2.3 Break 關鍵字
32
下列表格說明 Break 關鍵字所參考的維度視其在報表中的位置而定。
當放置在...
一個區塊
區塊分割 (表頭或表尾)
區塊 (頁首、頁尾或在區塊外面)
參考此資料...
由分類小計所區隔之區塊部份中的資料
由分類小計所分割之區塊部份中的資料
不適用
2013-09-19
瞭解計算內容
當放置在...
在任何區塊或區段外面
參考此資料...
不適用
範例:Break 關鍵字
您有一份顯示「年」、「季」與「營業收入」的報表。
年
2001
季
第 1 季
第 2 季
第 3 季
第 4 季
營業收入
$2,660,700
$2,279,003
$1,367,841
$1,788,580
分割總計
$8,096,124
$8,096,124
$8,096,124
$8,096,124
這份報表的「年」區段含有分割。[分割總計] 資料行含有公式:
Sum ([Sales Revenue]) In Break
若沒有 Break 關鍵字,則此資料行將會因為使用預設的輸出內容 ([年];[季]),而複製「營業收入」
資料行中的數字。
4.3.2.4 Block 關鍵字
此主題說明 Block 關鍵字所參考的維度視其在報表中的位置而定,Block 關鍵字通常含有與 Section
關鍵字相同的資料。
唯一不同的是,Block 會說明區塊上的篩選器,而 Section 會予以忽略。
當放置在...
一個區塊
區塊分割 (表頭或表尾)
區塊 (頁首、頁尾或在區塊外面)
在任何區塊或區段外面
參考此資料...
在整個區塊中的資料、忽略分割、使用篩選器
在整個區塊中的資料、忽略分割、使用篩選器
不適用
不適用
33 2013-09-19
瞭解計算內容
範例:Block 關鍵字
您有一份顯示「年」、「季」與「營業收入」的報表。這個報表有一個依據「年」的區段。已篩選區
塊以排除第三或第四季。
[每年平均值] 資料行含有公式
Average([Sales revenue] In Section)
同時 [前半年平均值] 資料行也含有公式
Average ([Sales revenue]) In Block
您可以查看 Block 關鍵字如何使用區塊上的篩選器。
4.3.2.5 Body 關鍵字
此主題說明區塊 Body 中關鍵字所參考的維度視其在報表中的位置而定。
當放置在...
一個區塊
參考此資料...
區塊中的資料
34 2013-09-19
瞭解計算內容
當放置在...
區塊分割 (表頭或表尾)
區塊 (頁首、頁尾或在區塊外面)
在任何區塊或區段外面
參考此資料...
區塊中的資料
區塊中的資料
報表中的資料
範例:Body 關鍵字
您有一份顯示「年」、「季」與「營業收入」的報表,該報表中的「年」區段含有分割。這份報表具
有以「年」為基礎的區段,「季」區段則含有分割。
年
2001
2001
季
第 1 季
第 2 季
第 3 季
第 4 季
營業收入
2,660,700
2,279,003
1,367,841
1,788,580
8,096,123.6
Body
2,660,699.5
2,279,003
1,367,840.7
1,788,580.4
[Body] 資料行含有公式
Sum ([Sales Revenue]) In Body
[Body] 資料行的總計與 [營業收入] 資料行的總計相同,因為 Body 關鍵字是參考區塊中的資料。如
果您要移除「月」物件,則 [Body] 資料行中的數字將會變更,以便對應 [營業收入] 資料行中已變
更的數字。如果您是將公式放置在報表頁尾,公式會傳回內文的總營業收入。
4.3.2.6 使用關鍵字讓報表一般化
35
延伸語法關鍵字可針對變更供未來校對報表之用。
如果您明確地參考資料 (即使用 In、ForEach 或 ForAll 來指定維度),在新增或移除維度時,報表還
是有可能傳回不是您所預期的資料。以下表加以說明。
範例:使用 Report 關鍵字以顯示百分比
在此範例中,您有一個包含「年」、「季」與「營業收入」物件的區塊。您想要依年與季顯示營業收
入,並以報表中總營業收入的百分比表示每筆營業收入,如下表所示:
2013-09-19
瞭解計算內容
[總計百分比] 資料行的公式為:
([Sales revenue]/(Sum([Sales revenue]) In Report)) * 100
在區塊中,Report 包含報表的所有資料,因此這個公式可以寫成:
([Sales revenue]/Sum([Sales revenue] ForAll ([Year];[Quarter]))) * 100
這個公式會從輸出內容移除 「年」和「季」(換言之,即計算總計),因為報表中沒有其他的維度。公
式接著會將每筆營業收入除以總計,得到總計的百分比。
雖然您可以在此情況下使用 ForAll,不過使用 Report 關鍵字會比較好。為什麼?若是「月」維度接
著新增至報表該如何呢?使用 Report 關鍵字的此版本公式仍會正確計算每個百分比,但是明確指定
「年」和「季」維度的版本現在會變成不正確:
36 2013-09-19
瞭解計算內容
37
為什麼會這樣?問題在於:
Sum ([Sales Revenue] ForAll ([Year];[Quarter))
當「年」和「季」是報表中僅有的維度時,就相當於「所有營業收入的總計」。新增「月」維度之後,
此運算式會從預設的輸出內容中移除「年」和「季」,留下「月」。
公式在月上已有「分割」。換言之,在「月」為 1 的每一個資料列中,此運算式現在代表「所有月
1 的總營業收入」。在「月」為 2 的每一個資料列中,則代表「所有月 2 的總營業收入」。結果,
百分比並非您所預期的百分比。
2013-09-19
以智慧型計量計算值
第5章 以智慧型計量計算值
智慧型計量 是由語意層所依據的關聯式或 OLAP 資料庫計算其值的計量。
智慧型計量不同於典型計量,典型計量是由資料庫中傳回的詳細值計算計量。針對智慧型計量所傳回的
資料,SAP BusinessObjects Business Intelligence 平台的 Web Intelligence 元件並不會原生支援
其彙總方式。
包含智慧型計量的查詢會以依據報表所需的所有計算內容來計算該計量。這些內容可能由於變更報表而
變更。因此一旦所需的內容已變更,查詢便會在隨後重新整理資料時變更。
您在編輯這類報表時,報表中會自動插入 #TOREFRESH 訊息,提醒您應重新整理報表以反映變更。您可
以在「文件屬性」對話方塊中,選取「啟用自動重新整理」來選擇自動更新報表。
附註:
計量委派為靜態且在設計階段時以報表定義為基礎定義。在某些狀況 (公式依據 “if [choice]= 1 then [dimension 1) else [dimension 2]”) 維度內容在執行階段為變數。在此狀況時,系統無法委
派計量計算,且會傳回空白值。
智慧型計量的行為方式與典型計量不同,後者支援基本彙總函式 (Max、Min、Count、Sum 及 Average),
在所有內容中皆可計算而不必藉助資料庫。例如,如果您所建立的查詢含有 [國家] 和 [地區] 維度以
及 [收入] 計量 (計算收入總和),則起初會在區塊中顯示 [國家]、[地區] 和 [收入]。如果您隨後從
區塊中移除 [地區],則仍可藉由加總各國家境內所有地區的收入以計算出每個國家的總收入,且無需
重新整理資料。智慧型計量在此情況下必須重新整理資料。
計算內容是在產生的查詢中以 群組集 表示。
5.1 群組集和智慧型計量
38
群組集是產生計量結果的一組維度。
產生的 SQL 會傳回智慧型計量的資料並納入群組集,代表該計量包含在報表中的所有彙總結果。
範例:查詢中的群組集
假設查詢含有 [國家]、[地區] 和 [城市] 維度,以及 [收入] 智慧型計量。這些物件意味著會有下
列群組集,計算所有可能情況下的收入:
• 智慧型計量值總計
2013-09-19
以智慧型計量計算值
• 智慧型計量值依 (國家, 地區, 城市)
• 智慧型計量值依 (國家, 城市)
• 智慧型計量值依 (城市)
• 智慧型計量值依 (地區, 城市)
• 智慧型計量值依 (地區)
• 智慧型計量值依 (國家, 地區)
• 智慧型計量值依 (國家)
如果資料庫支援 UNION,則每個群組集都會在產生的 SQL 中以 UNION 子句表示。
群組集將依報表所需的計算內容 (可能隨著報表結構變更而改變) 更新。
5.1.1 管理群組集
當您第一次建立並執行含有智慧型計量的查詢時,產生的 SQL 將在查詢物件所隱含的最細微層級上,
納入計算智慧型計量所需的群組集。
例如,如果您建立了含有 [國家]、[地區] 和 [城市] 維度以及 [收入] 智慧型計量的查詢,便會在產
生的 SQL 中顯示 (國家, 地區, 城市) 群組集。最細微的群組集必定會出現在 SQL 中。系統將依報表
的變更,據以新增和移除其他群組集。
如果您從區塊中移除 [城市] 維度,則必須有 (國家, 地區) 群組集才能傳回收入值。由於查詢 SQL
中還沒有這個群組集,因此會在 [收入] 儲存格內顯示 #TOREFRESH。當您重新整理資料後,#TOREFRESH
將會取代為收入值。
若您隨後又將 [城市] 維度放回區塊中,便已不再需要 (國家, 地區) 群組集。在您下次重新整理資料
時,便會從查詢 SQL 中予以移除並捨棄其值。
每當您重新整理報表資料時,都將依據報表所需的計算內容,納入或捨棄群組集。
在某些情況下,無法顯示智慧型計量的值;屆時,會在計量儲存格內顯示 #UNAVAILABLE。
5.2 智慧型計量和分析範圍
當您建立具有分析範圍的查詢時,便會產生包含結果物件而非範圍物件的初始群組集。
查詢不會根據結果物件和範圍物件的組合,產生所有可能的群組集。
39 2013-09-19
以智慧型計量計算值
範例:具有分析範圍的查詢和智慧型計量
假設查詢具有 [國家] 和 [收入] 這兩個結果物件,而分析範圍則包含 [地區] 和 [城市] 維度。當
您執行查詢時,其 SQL 會包含 (國家) 群組集,並在區塊中顯示 [國家] 和 [收入]。
5.3 智慧型計量和 SQL
5.3.1 群組集和 UNION 運算子
40
有些資料庫明確支援使用 GROUPING SET 運算子的群組集。
當您建立包含智慧型計量的查詢時,產生的 SQL 會使用多個結果集和 UNION 運算子模擬 GROUPING
SETS 的效果。
範例:使用 UNION 運算子擷取群組集
本範例描述的查詢含有 [國家]、[地區] 和 [城市] 維度,以及 [收入] 智慧型計量。
附註:
為了簡化起見,智慧型計量將計算總和。在實際應用上,這類彙總計算並不需要智慧型計量,因為
Web Intelligence 原生支援總和。
第一次執行查詢時,所得到的群組集為 (國家, 地區, 城市)。既然整個 SQL 查詢傳回此群組集,SQL
也就不必使用 UNION 運算子。
如果您從表格移除 [城市] 維度,則必須有 (國家, 地區) 群組集才能顯示收入 (會顯示成
#TOREFRESH)。重新整理資料後,SQL 如下所示:
SELECT
SELECT
0 AS GID, country.country_name, region.region_name,
NULL, sum(city.revenue)
FROM country, region, city
WHERE
( country.country_id=region.country_id
)
AND ( region.region_id=city.region_id
)
GROUP BY
2013-09-19
以智慧型計量計算值
41 country.country_name, region.region_name
UNION
SELECT
1 AS GID, country.country_name, region.region_name, city.city_name, sum(city.revenue)
FROM country, region, city
WHERE
( country.country_id=region.country_id
)
AND ( region.region_id=city.region_id
)
GROUP BY country.country_name, region.region_name, city.city_name
每個群組集各以一個 SELECT 陳述式表示,而且都有自己的 ID (GID 資料行)。維度不完整的群組集
將包含空白資料行 (SELECT ''),因為 UNION 查詢中的每個 SELECT 陳述式必須有相同的資料行數。
如果您在報表中新增含有 [國家] 和 [收入] 的新區塊,則需要 (國家) 群組集。產生的 SQL 如今包
含三個群組集,如下所示:
SELECT
0 AS GID, country.country_name, region.region_name,
NULL, sum(city.revenue)
FROM country, region, city
WHERE
( country.country_id=region.country_id
)
AND ( region.region_id=city.region_id
)
GROUP BY country.country_name, region.region_name
UNION
SELECT
1 AS GID, country.country_name,
NULL,
NULL, sum(city.revenue)
FROM country, city, region
WHERE
( country.country_id=region.country_id
)
AND ( region.region_id=city.region_id
)
GROUP BY country.country_name
UNION
SELECT
2 AS GID, country.country_name, region.region_name, city.city_name, sum(city.revenue)
FROM country, region, city
WHERE
( country.country_id=region.country_id
)
AND ( region.region_id=city.region_id
)
GROUP BY country.country_name,
2013-09-19
以智慧型計量計算值 region.region_name, city.city_name
5.4 智慧型計量和公式
5.4.1 智慧型計量和包含公式的維度
若公式或變數顯示為智慧型計量計算內容中的維度,且該公式決定計量所需的群組集,則會顯示智慧型
計量的值。
例如,智慧型計量和維度目前傳回以下的值:
• 以超連結精靈建立的 URL。
• 維度 (或空白移除) 上的簡易串連。
• 在 [date] 使用 FormatDate 時。
附註:
下列函式仍然傳回 #UNAVAILABLE 訊息:ForEach、ForAll、In、Where、Rank、Previous、
RelativeValue、RelativeDate、TimeDim,且在彙總函式中當在公式中使用 Min、Max、Last 或 First
時:if ([selection] =1) then [dim1] else [dim2]
5.4.2 公式中的智慧型計量
如果智慧型計量包含在公式中,即使公式依其所在位置而需要不同的計算內容,智慧型計量仍可傳回
值。
例如,假設報表中包含以下區塊:
42 2013-09-19
以智慧型計量計算值
國家
美國
美國
美國
美國
地區
北部
南部
東部
西部
收入
10000
15000
14000
12000
如果您在此表格中新增另一資料行,內有下列公式:
[Revenue] ForAll ([Region])
資料行的初始值為 #TOREFRESH,因為公式從計算中排除地區,必須有群組集 (國家)。重新整理資料會
在查詢中新增 (國家) 群組集並顯示計量值。
相關主題
•
ForAll 內容運算子會從內容中移除維度。
5.5 智慧型計量和篩選器
5.5.1 與智慧型計量與篩選器有關的限制
43
如果表格或父系內容 (報表篩選器) 中沒有篩選器,則可在表格內文中驗算智慧型計量。
下列表格說明如何在篩選器存在時驗算智慧型計量。
表格5-2: 報表中的篩選器存在時智慧型計量的驗算方式
當篩選器的位置為...
計量
智慧型計量的驗算方式
系統會正確驗算智慧型計量,但會移除表格的某
些欄位。
2013-09-19
以智慧型計量計算值
當篩選器的位置為...
維度 (已屬於表格座標軸)
維度 (不屬於表格座標軸):並且當篩選器運算元
為單一值時 (篩選器會傳回一個值/資料列)。
智慧型計量的驗算方式
系統會正確驗算智慧型計量,但會移除表格的某
些欄位。由於篩選後沒有彙總,因此系統可驗算
智慧型計量。
系統會正確驗算智慧型計量。由於篩選後沒有彙
總,因此系統可驗算智慧型計量。
維度 (不屬於表格座標軸):並且當篩選器運算元
為多重值時 (篩選器會傳回許多值/資料列)。
由於在此情況下系統會先篩選再彙總,並且表格
的一個資料列需要彙總,因此無法驗算智慧型計
量 (顯示 #UNAVAILABLE)。
5.5.2 智慧型計量和維度上的篩選器
若您將多重值篩選器套用至智慧型計量值所依據的維度,但該維度並未明確顯示在計量的計算內容中,
則智慧型計量無法傳回值,因此儲存格會顯示 #UNAVAILABLE。
同時適用於來自輸入控制項的報表篩選器。
由於計量必須在報表中篩選,然後彙總,但智慧型計量在套用報表層級篩選器後無法彙總,因此會顯示
#UNAVAILABLE。透過將查詢篩選器套用於產生的 SQL,便可以計算計量,然而這樣做卻有可能影響到依
據相同查詢的其他報表。
附註:
• 多重值篩選器使用大於、In List 或小於運算子對多重值進行篩選。您可以套用 Equal To 等單一
值篩選器,且不會產生 #UNAVAILABLE 錯誤。
• 在不需要彙總的情況中可透過以下方式解決:將公式定義為變數,且其限定為一計量,並確定使用
的維度包含在變數的區塊中 (您可以隱藏該資料行以取得較佳的顯示品質)。
範例:智慧型計量和維度上的篩選器
假設查詢含有「國家」和「產品」維度,以及「收入」智慧型計量。[國家] 和 [收入] 顯示在區塊
中。如果您套用報表篩選器,將「產品」的值限制為「衣服」或「夾克」,則會在「收入」儲存格內
顯示 #UNAVAILABLE。
44 2013-09-19
以智慧型計量計算值
國家
法國
美國
總和:
收入
#UNAVAILABLE
#UNAVAILABLE
#UNAVAILABLE
如果您僅將「產品」限制為「夾克」,則會顯示值。
國家
美國
總和:
收入
971,444
971,444
附註:
由於篩選器位於表格中,因此「國家」的多重值篩選器將會傳回結果。
5.5.3 篩選智慧型計量
表格頁尾的值必須為使用者在表格中所見值的彙總。
若使用者在表格中所見為本機所篩選,則系統無法傳回本機篩選的委派彙總。
範例:篩選智慧型計量
國家
巴西
中國
法國
美國
總計:
總和:
OrderAmountDel
28,833.36
51,384.33
68,630.22
3,529,511.14
3,678,359.05
3,678,359.05
當以 OrderAmountDel 篩選下列表格中的資料 > 60,000
表格會顯示表格內容 (依據國家) 中 OrderAmountDel 大於 60,000 的資料列:
45 2013-09-19
以智慧型計量計算值
頁尾中的總和會計算可見的資料列總和;
由於計算將彙總推送至後端,因此總計傳回 #UNAVAILABLE,但 Web Intelligence 已執行本機篩選,
因此無法委派彙總。
國家
法國
美國
總計:
總和:
OrderAmountDel
68,630.22
3,529,511.14
#UNAVAILABLE
3,598,141.36
5.5.4 智慧型計量和擷取篩選器
擷取篩選器為單一值篩選器,
您可以直接使用擷取列進行擷取。
5.5.5 智慧型計量與巢狀 OR 篩選器
如果巢狀 OR 篩選器中,至少有一個篩選維度未出現在區塊中,則巢狀 OR 篩選器會因為區塊中的智慧
型計量產生 #UNAVAILBLE 錯誤。
這是因為智慧型計量必須在某些本機處理後進行本機彙總 (例如,篩選;某些特定 Web Intelligence
公式),且不是委派。
46 2013-09-19
函式、運算子和關鍵字
第6章 函式、運算子和關鍵字
6.1 函式
公式函式細分為數個類別。
類別
彙總
字元
日期與時間
文件
資料提供者
邏輯
數值
雜項
集合
6.1.1 自訂格式
描述
彙總資料 (例如,加總與平均值的集合)
操作字元字串
傳回日期或時間資料
傳回關於文件的資料
傳回關於文件資料提供者的資料
傳回 TRUE 或 FALSE
傳回數字資料
不適用於上述類別的函式
傳回階層中的成員集合
在表格中,您可以使用「自訂」格式類型定義任何儲存格的自訂格式。
在 Web Intelligence 函式中會套用以下字元定義的天/日期、行事曆和時間。
47 2013-09-19
函式、運算子和關鍵字
附註:
您無法在 Web Intelligence HTML 介面中將自訂格式套用至表格中的數字。
下表列出可用以建立自訂格式的字串:
字元
#
0
,
.
[%]%
%
1, 2, 3, a, b, c, $, £,
€ (等等)
顯示
對應的數字。如果數字的位數少
於指定格式所使用的 #字元數
目,則不會插入前置零。
範例
「12345」使用格式 #,##0 會產生
「12,345」(如果您的地區設定將分
隔符號定義為逗號) 或「12 345」(如
果您的地區設定將群組分隔符號定義
為空格)
對應的數字。如果數字的位數少
於指定格式所使用的 0 字元數
目,則會在數字前面插入前置
零。
「123」使用格式 #0,000會產生
「0,123」
群組分隔號將依照您的位置所定
義。
「1234567」使用格式 #,##0 會產生
「1,234,567」(如果您的地區設定將
分隔符號定義為逗號) 或「1 234
567」(如果您的地區設定將群組分隔
符號定義為不跳行空格)
小數點分隔號將依照您的位置所
定義。
「12.34」使用格式 #.#0 會產生
「12.34」(如果您的地區設定將小數
點分隔符號定義為句號) 或「12,34」
(如果您的地區設定將小數點分隔符
號定義為逗號)
顯示結果之後的百分比符號 (%)
會將結果乘以 100。
0.50 變成 50%。
在結果後面加上 % 符號,但是
不將結果乘以 100。
0.50 變成 0.50%
不跳行空格 ( )
英數字元。
「1234567」使用格式 # ##0 會產生
「1234 567」
「705.15」使用格式 $#.#0會產生
「$705.15」或使用格式 #,#0 € 會
產生「705,15 €」
[Red], [Blue], [Green],
[Yellow], [Gray],
[White], [Dark Red],
[Dark Blue], [Dark
Green]
日/日期字元
在指定顏色中的值。
(日、日期)
「150」使用格式 #,##0[Red] 會產
生「150」,#,##0[Blue] 會產生
「150」
48 2013-09-19
函式、運算子和關鍵字 mmm
Mmmm mmmm dddd
DDDD dddd dd
行事曆字元
M
MM
字元 d dd ddd
Dddd
顯示
每月的天數前不會以零為開頭。
如果天數的日期少於兩個字元,
則不會在日期的數字前顯示零。
天數會以零為開頭。如果天的日
期少於兩個字元,則會在日期的
數字前顯示零。
縮寫的星期名稱。如果選取的地
區設定使用首字母大寫的日名
稱,則首字母為大寫。
所有地區設定皆強制使用首字母
大寫日名稱。
範例
每月的第一天使用格式 d 會產生
「1」
每月的第一天使用格式 dd 會產生
「01」
英文的「Monday」使用格式 ddd 會
產生「Mon」;法文的「lundi」會產
生「lun」。
英文的「Monday」使用格式 Dddd 會
產生「Mon」;法文的「lundi」會產
生「Lun」。
完整的星期名稱。如果選取的地
區設定使用首字母大寫的日名
稱,則首字母為大寫。
大寫的完整星期名稱。
英文的「Monday」使用格式 dddd 會
產生「Monday」;法文則是「lundi」。
英文的「Monday」使用格式 DDDD 會
產生「MONDAY」;法文則是「LUN-
DI」。
星期的後面會接著空格,然後加
上天數。
(月、年)
「Monday」使用格式 dddddd 會產生
「Monday 01」
月份不會以零為開頭。如果月數
少於兩個字元,則不會在數字前
顯示零。
月份會以零為開頭。如果月數少
於兩個字元,則會在數字前顯示
零。
「January」使用格式 M 會產生「1」
「January」使用格式 MM 會產生 01
縮寫的月份名稱。如果選取的地
區設定使用首字母大寫,則首字
母為大寫。
縮寫的月份名稱。所有地區設定
的首字母為大寫。
完整的月份名稱。如果選取的地
區設定使用首字母大寫,則首字
母為大寫。
英文的「January」使用格式 mmm 會
產生「Jan」;法文則是「jan」。
英文的「January」使用格式 mmm 會
產生「Jan」;法文則是「Jan」。
英文的「January」使用格式 mmmm
會產生「January」;法文則是
「janvier」。
49 2013-09-19
函式、運算子和關鍵字
字元
MMMM yy yyyy
Time of day characters hh:mm:ss a
H
HH k kk hh
HH:mm
HH:mm:ss mm:ss
顯示
全部大寫的完整月份名稱。
西元年份的最後兩位數。
西元年份的全部四位數。
範例
英文的「January」使用格式 MMMM
會產生「JANUARY」;法文則是
「JANVIER」。
「2003」使用格式 yy 會產生「03」
「2003」使用格式 yyyy 會產生
「2003」
(小時、分鐘、秒數、上午/下
午)
小時不會以零為開頭,但分鐘與
秒鐘會以零為開頭。而「a」字
元表示後面會接著顯示的 AM 或
PM (如果可以使用)。
依據 24 小時的時制,開始於
0。單一數字小時無前置零。
「21:05:03」使用格式 hh:mm:ss a
會在英文地區設定中產生「9:05:03
PM」
依據 24 小時的時制,開始於
0。
依據 24 小時的時制,開始於
1。單一數字小時無前置零。
依據 24 小時的時制,開始於
01。
依據 12 小時的時制。
小時與分鐘都會以零為開頭。
小時、分鐘與秒鐘都會以零為開
頭。
分鐘與秒鐘會以零為開頭。
「21:00」使用格式 H 會產生
「21」。可能的值為 0-23。
「21:00」使用格式 HH 會產生
「21」。可能的值為 00-23。
「21:00」使用格式 k 會產生
「21」。可能的值為 1-24。
「21:00」使用格式 kk 會產生
「21」。可能的值為 01-24。
「21:00」使用格式 hh 會產生「09」
「7.15」使用格式 HH:mm 會產生
「07:15」
「7.15 am」使用格式 HH:mm:ss 會
產生「07:15:00」
「07:15:03」使用格式 mm:ss 會產
生「15:03」
6.1.2 彙總函式
50 2013-09-19
函式、運算子和關鍵字
6.1.2.1 Aggregate
51
描述
針對指定的成員集傳回計量的預設彙總
函式群組
彙總
語法 num Aggregate(measure[;member_set])
輸入
參數 measure member_set
描述
任何計量
類型
計量
用於計算彙總的成員集合 成員集合
必要
是
否
附註
• 您可以將延伸語法內容運算子與 Aggregate 函式一起使用。
• 如果包含 member_set,則 Aggregate 會傳回成員集合中所有成員的計量彙總值。
• member_set 可包含以分號 (;) 分隔的多個集合。
• 成員集清單必須以 {} 符號括住。
• 如果成員集運算式未明確指定成員或節點,則表格中必須有參考的階層,然後成員集運算式將參考
目前表格上階層中的成員。如果階層不在表格中,則函式會傳回 #MULTIVALUE 訊息。
• 如果查詢中無法使用所需的彙總,則委派的計量彙總會傳回 #TOREFRESH。使用者必須重新整理文
件,才能取得彙總的新層級。例如,在使用篩選列時,如果使用者先選取一個值,再選取「所有
值」;反之亦然,如果先選取「所有值」,再選取所選值,則會發生此情況。
範例
如果 [營業收入] 計量的預設彙總為 [總和],且 [加州] 為 [地理區] 階層的成員 (國家 > 州 > 城
市),則 Aggregate([營業收入];{Descendants([地理區]&[美國].[加州];1)}) 會傳回加州所有城市的
營業收入總計。
相關主題
•
您使用語法 [階層]&path.function,在函式中參考成員和成員集合。
2013-09-19
函式、運算子和關鍵字
6.1.2.2 Average
52
描述
傳回計量的平均值
函式群組
彙總
語法 num Average(measure[;member_set][;IncludeEmpty])
輸入
參數 measure member_set
IncludeEmpty
描述
任何計量
成員的集合
計算包含空白資料列
類型
計量
成員集合
關鍵字
必要
是
否
否
(預設為排除空白資料列)
附註
• 您可以將延伸語法內容運算子與 Average 函式一起使用。
• 如果包含 member_set,則 Average 會傳回成員集合中所有成員的計量平均值。
• member_set 可包含以分號 (;) 分隔的多個集合。
• 成員集清單必須以 {} 符號括住。
• 如果成員集運算式未明確指定成員或節點,則表格中必須有參考的階層,然後成員集運算式將參考
目前表格上階層中的成員。如果階層不在表格中,則函式會傳回 #MULTIVALUE 訊息。
• 如果查詢中無法使用所需的彙總,則委派的計量彙總會傳回 #TOREFRESH。使用者必須重新整理文
件,才能取得彙總的新層級。例如,在使用篩選列時,如果使用者先選取一個值,再選取「所有
值」;反之亦然,如果先選取「所有值」,再選取所選值,則會發生此情況。
• 由於群組提供的委派計量需要本機彙總 (群組數值的計量值彙總),因此會傳回 #UNAVAILABLE。
即使您在委派計量上透過「if then else」公式或群組數值強制本機彙總,仍會傳回 #MULTIVALUE
訊息。
範例
如果 [營業收入] 計量含有 41569、 30500、 40000 與 50138 的值,Average([營業收入) 會傳回
40552。
2013-09-19
函式、運算子和關鍵字
如果 [加州] 是 [地理區] 階層 (國家 > 州 > 城市) 中的成員,則 Average([營業收入];{[地理區]&[美
國].[加州].children}) 會傳回加州所有城市的平均營業收入。
相關主題
•
您使用語法 [階層]&path.function,在函式中參考成員和成員集合。
•
IncludeEmpty 運算子使用彙總函式。
6.1.2.3 Count
53
描述
傳回值集合的值數字
函式群組
彙總
語法 integer Count(aggregated_data[;member_set][;IncludeEmpty][;Distinct|All])
輸入
參數 aggregated_data member_set
IncludeEmpty
Distinct|All
描述
任何維度、計量、階層、層
級或成員集合
用於計算計數的成員集合
計算包含空白值
只計算不同的值 (維度預設
值) 或全部的值 (計量預設
值)
類型
維度、計量、階層、成
員集合
是
成員集合
關鍵字
關鍵字
必要
否
否
否
附註
• 您可以將延伸語法內容運算子與 Count 一起使用。
• 當您指定 IncludeEmpty 為第二個引數,時,函式會將空白 (Null) 值納入計算。
• 如果您未指定 Distinct|All 參數,則 Distinct 為維度的預設值,而 All 為計量的預設值。
• 如果包含 member_set,則 Count 會限制 member_set 中值數目的計算。
• member_set 可包含以分號 (;) 分隔的多個集合。
2013-09-19
函式、運算子和關鍵字
• 成員集清單必須以 {} 符號括住。
• 如果成員集運算式未明確指定成員或節點,則表格中必須有參考的階層,然後成員集運算式將參考
目前表格上階層中的成員。如果階層不在表格中,則函式會傳回 #MULTIVALUE 訊息。
• 如果查詢中無法使用所需的彙總,則委派的計量彙總會傳回 #TOREFRESH。使用者必須重新整理文
件,才能取得彙總的新層級。例如使用篩選列時,若使用者在選取 [所有值] 之前選取值,則會發
生此情況;反之亦然,若使用者在選取值之前先選取 [所有值],也會發生此種情況。
• 由於群組提供的委派計量需要本機彙總 (群組數值的計量值彙總),因此會傳回 #UNAVAILABLE。
即使您在委派計量上透過「if then else」公式或群組數值強制本機彙總,仍會傳回 #MULTIVALUE
訊息。
範例
Count("Test") 會傳回 1
如果城市清單中有 5 個不同的城市,Count([城市];Distinct) 會傳回 5,即使在清單中因為複製而有
5 列以上也是如此。
如果城市清單中有 10 個城市,Count([城市];All) 會傳回 10,即使有些城市是重複的。
如果在城市清單中有 5 個城市以及一行空白列,Count ([城市];IncludeEmpty) 會傳回 6。
Count([產品];{[地理區]&[州]}) 會傳回 [地理區] 階層中 [州] 層級的產品總數。
相關主題
•
IncludeEmpty 運算子使用彙總函式。
•
Dinstinct/All 運算子使用 Count 函式。
6.1.2.4 First
描述
傳回資料集的第一個值
函式群組
彙總
語法 input_type First(dimension|measure)
54 2013-09-19
函式、運算子和關鍵字
輸入
參數 dimension|measure
描述
任何維度或計量
類型
維度或計量
附註
• 置於分割表尾時,First 會傳回分割的第一個值。
• 置於區段頁尾時,First 會傳回區段的第一個值。
範例
置於表格頁尾時,First([收入]) 會傳回表格中 [收入] 的第一個值。
必要
是
6.1.2.5 Last
描述
傳回維度或計量中的最後一個值。
函式群組
彙總
語法 input_type Last(dimension|measure)
輸入
參數 dimension|measure
描述
任何維度或計量
類型
維度或計量
附註
• 置於分割表尾時,Last 會傳回分割的最後一個值。
• 置於區段頁尾時,Last 會傳回區段的最後一個值。
範例
置於表格頁尾時,First([收入]) 會傳回表格中 [收入] 的第一個值。
必要
是
6.1.2.6 Max
55 2013-09-19
函式、運算子和關鍵字
描述
傳回值集合的最大值
函式群組
彙總
語法 input_type Max(aggregated_data[;member_set])
輸入
參數 aggregated_data member_set
描述
任何維度、計量、階層、層
級或成員集合
成員的集合
類型 必要
維度、計量、階層、層
級或成員集合
是
成員集合 否
附註
• 您可以將延伸語法內容運算子與 Max 一起使用。
• 如果包含 member_set,則 Max 會傳回成員集合中所有成員之彙總資料的最大值。
• member_set 可包含以分號 (;) 分隔的多個集合。
• 成員集清單必須以 {} 符號括住。
• 如果成員集運算式未明確指定成員或節點,則表格中必須有參考的階層,然後成員集運算式將參考
目前表格上階層中的成員。如果階層不在表格中,則函式會傳回 #MULTIVALUE 訊息。
• 如果查詢中無法使用所需的彙總,則委派的計量彙總會傳回 #TOREFRESH。使用者必須重新整理文
件,才能取得彙總的新層級。例如,在使用篩選列時,如果使用者先選取一個值,再選取「所有
值」;反之亦然,如果先選取「所有值」,再選取所選值,則會發生此情況。
• 由於群組提供的委派計量需要本機彙總 (群組數值的計量值彙總),因此會傳回 #UNAVAILABLE。
即使您在委派計量上透過「if then else」公式或群組數值強制本機彙總,仍會傳回 #MULTIVALUE
訊息。
範例
如果 [營業收入] 計量含有 3000、60034 與 901234 的值,Max([營業收入]) 會傳回 901234。
如果 [城市] 維度含有 "Aberdeen" 與 "London" 的值,Max([城市]) 會傳回 "London"。
如果 [美國] 是 [地理區] 階層 (國家 > 州 > 城市) 中的成員,Max([營業收入];{[地理區].[美
國].Children}) 會傳回美國州的最高營業收入。
6.1.2.7 Median
56 2013-09-19
函式、運算子和關鍵字
描述
傳回計量的中位數 (中間值)
函式群組
彙總
語法 num Median(measure)
輸入
參數 measure
描述
任何計量
類型
計量
必要
是
附註
如果數字集合有偶數個值,Median 會取中間兩個數字的平均值。
範例
如果 [收入] 含有 835420、971444 和 1479660 三個值,Median([收入]) 會傳回 971,444。
6.1.2.8 Min
描述
傳回值集合的最小值
函式群組
彙總
語法 any_type Min(aggregated_data[;member_set])
57 2013-09-19
函式、運算子和關鍵字
輸入
參數 aggregated_data member_set
描述
任何維度、計量、階層、層
級或成員集合
類型 必要
維度、計量、階層、層
級或成員集合
是
成員的集合 成員集合 否
附註
• 您可以將延伸語法內容運算子與 Min 函式一起使用。
• 如果包含 member_set,則 Min 會傳回成員集合中所有成員之彙總資料的最小值。
• member_set 可包含以分號 (;) 分隔的多個集合。
• 成員集清單必須以 {} 符號括住。
• 如果成員集運算式未明確指定成員或節點,則表格中必須有參考的階層,然後成員集運算式將參考
目前表格上階層中的成員。如果階層不在表格中,則函式會傳回 #MULTIVALUE 訊息。
• 如果查詢中無法使用所需的彙總,則委派的計量彙總會傳回 #TOREFRESH。使用者必須重新整理文
件,才能取得彙總的新層級。例如,在使用篩選列時,如果使用者先選取一個值,再選取「所有
值」;反之亦然,如果先選取「所有值」,再選取所選值,則會發生此情況。
• 由於群組提供的委派計量需要本機彙總 (群組數值的計量值彙總),因此會傳回 #UNAVAILABLE。
即使您在委派計量上透過「if then else」公式或群組數值強制本機彙總,仍會傳回 #MULTIVALUE
訊息。
範例
如果 [營業收入] 計量含有 3000、60034 與 901234 的值,Min([營業收入]) 會傳回 3000。
如果 [城市] 維度含有 Aberdeen 與 London 的值,Min([城市]) 會傳回 "Aberdeen"。
如果 [美國] 是包含 [國家] > [州] > [城市] 層級之 [地理區] 階層中的成員,Min([營業收入];[地
理區]&[美國].children) 會傳回美國州的最低營業收入。
6.1.2.9 Mode
描述
傳回資料集合中最常出現的值
函式群組
彙總
語法 input_type Mode(dimension|measure)
58 2013-09-19
函式、運算子和關鍵字
輸入
參數 dimension|measure
描述
任何維度或計量
類型
計量
附註
• 如果資料集合沒有一個值的出現頻率比其他值高,Mode 會傳回 Null。
範例
如果 [收入] 值包含 100、200、300、200,Mode([收入]) 會傳回 200。
Mode([國家]) 會傳回最常出現的 [國家] 值。
必要
是
6.1.2.10 Percentage
描述
以內嵌內容百分比的方式表示計量值
函式群組
彙總
語法 num Percentage(measure[;Break][;Row|Col])
輸入
參數 measure
Break
Row|Col
描述
任何計量
表示表格分割
設定計算方向
類型
計量
關鍵字
關鍵字
範例
在下列表格中,[百分比] 資料行含有公式 Percentage ([營業收入])
年
2001
2002
營業收入
1000
5000
百分比
10
50
必要
是
否
否
59 2013-09-19
函式、運算子和關鍵字
2003
總和:
4000
10000
40
100
根據預設,內嵌內容是表格的計量總計。您可以使用選擇性的 Break 引數,使函式將表格中的分割納
入計算。在此案例中,預設的嵌入內容會變成表格區段。
在下表中,[百分比] 資料行含有公式 Percentage([營業收入];Break)
年
2001
2001
季
第 1 季
第 2 季
第 3 季
第 4 季
總和:
營業收入
1000
2000
5000
2000
10000
百分比
10
20
50
20
100
年
2002
2002
季
第 1 季
第 2 季
第 3 季
第 4 季
總和:
營業收入
2000
2000
5000
1000
10000
百分比
20
20
50
10
100
您可以跨資料行或資料列使用 Percentage 函式,就是使用選擇性的 Row|Col 引數明確指定。例如,
在下列交叉表中,[%] 資料行包含公式 Percentage([營業收入];Row)
第 1 季 % % % %
2001
2002
1000
2000
10
20
第 2
季
2000
2000
20
20
第 3
季
5000
5000
50
50
第 4
季
2000
1000
20
10
6.1.2.11 Percentile
60 2013-09-19
函式、運算子和關鍵字
描述
傳回計量的第 n 個百分位數
函式群組
數值
語法 num Percentile(measure;percentile)
輸入
參數 measure percentile
描述
任何計量
類型
計量
以小數點表達的百分位數 數字
必要
是
是
附註 n 百分位數是一個大於或等於一組數字內 n% 的數字。您可以用 0.n 的方式來表示 n%。
範例
如果 [計量] 有一組數字 (10;20;30;40;50),Percentile([計量];0.3) 會傳回 22,因為 22 大於或
等於這組數字中 30% 的數字。
6.1.2.12 Product
描述
計量值相乘
函式群組
彙總
語法 num Product(measure)
61 2013-09-19
函式、運算子和關鍵字
輸入
參數 measure
描述
任何計量
類型
計量
範例
如果 [計量] 含有 2、3、5 三個值,Product([計量]) 會傳回 30。
6.1.2.13 RunningAverage
必要
是
62
描述
傳回計量的執行平均值
函式群組
彙總
語法 num RunningAverage(measure[;Row|Col][;IncludeEmpty][;(reset_dims)])
輸入
參數 measure
Row|Col
IncludeEmpty reset_dims
描述
任何計量
設定計算方向
計算包含空白值
重設指定維度的計算
類型
計量
關鍵字
關鍵字
維度清單
必要
是
否
否
否
附註
• 您可以將延伸語法內容運算子與 RunningAverage 函式一起使用。
• 您可以使用 Row 和 Col 運算子來設定計算方向。
• 如果您在一個 RunningAverage 函式所參考的計量上套用排序,則會先排序計量,然後計算執行平
均值。
• 您必須永遠把維度放在括號內,即使重設維度清單裡只有一個維度。
• 當您指定一組重設維度時,必須以分號分隔。
• RunningAverage 不會在區塊分割之後或新區段之後自動重設平均值。
範例
RunningAverage([收入]) 會傳回下表的結果:
2013-09-19
函式、運算子和關鍵字
國家
美國
美國
法國
度假勝地
夏威夷俱樂部
巴哈馬海灘
法國里維耶拉
收入
1,479,660
971,444
835,420
執行平均值
835,420
1,225,552
1,095,508
RunningAverage([收入];([國家])) 會傳回下表的結果:
國家
美國
美國
法國
度假勝地
夏威夷俱樂部
巴哈馬海灘
法國里維耶拉
收入
1,479,660
971,444
835,420
執行平均值
835,420
1,225,552
835,420
相關主題
•
IncludeEmpty 運算子使用彙總函式。
•
Row 運算子會計算該資料列裡的每個值,當作在內嵌內容中所有資料列之總和值的百分比。
Col 運算子會計算該資料行裡的每個值,當作在內嵌內容中所有資料行之總和值的百分比。
6.1.2.14 RunningCount
描述
傳回數字集合的執行計數
函式群組
彙總
語法 num RunningCount(dimension|measure[;Row|Col][;IncludeEmpty][;(reset_dims)])
63 2013-09-19
函式、運算子和關鍵字
輸入
參數 dimension|measure
Row|Col
IncludeEmpty reset_dims
描述
任何維度或計量
設定計算方向
計算包含空白值
重設指定維度的計算
類型
維度或計量
關鍵字
關鍵字
維度清單
必要
是
否
否
否
附註
• 您可以將延伸語法內容運算子與 RunningCount 一起使用。
• 您可以使用 Row 和 Col 運算子來設定計算方向。
• 如果您在一個 RunningCount 函式所參考的計量上套用排序,則會先排序計量,然後計算執行計數。
• 您必須永遠把維度放在括號內,即使重設維度清單裡只有一個維度。
• 當您指定一組重設維度時,必須以分號分隔。
• RunningCount 不會在區塊分割之後或新區段之後自動重設計數。
範例
RunningCount([收入]) 會傳回下表的結果:
國家
美國
美國
法國
度假勝地
夏威夷俱樂部
巴哈馬海灘
法國里維耶拉
收入
1,479,660
971,444
835,420
2
3
執行計數
1
RunningCount([收入];([國家])) 會傳回下表的結果:
國家
美國
美國
法國
度假勝地
夏威夷俱樂部
巴哈馬海灘
法國里維耶拉
收入
1,479,660
971,444
835,420
2
1
執行計數
1
相關主題
•
IncludeEmpty 運算子使用彙總函式。
•
Row 運算子會計算該資料列裡的每個值,當作在內嵌內容中所有資料列之總和值的百分比。
Col 運算子會計算該資料行裡的每個值,當作在內嵌內容中所有資料行之總和值的百分比。
•
64 2013-09-19
函式、運算子和關鍵字
IncludeEmpty 運算子使用彙總函式。
•
IncludeEmpty 運算子使用彙總函式。
6.1.2.15 RunningMax
65
描述
傳回維度或計量的執行最大值
函式群組
彙總
語法 input_type RunningMax(dimension|measure[;Row|Col][;(reset_dims)])
輸入
參數 dimension|measure
Row|Col reset_dims
描述
任何維度或計量
設定計算方向
重設指定維度的計算
類型
維度或計量
關鍵字
維度清單
必要
是
否
否
附註
• 您可以將延伸語法內容運算子與 RunningMax 一起使用。
• 您可以使用 Row 和 Col 運算子來設定計算方向。
• 如果您在一個 RunningMax 函式所參考的計量上套用排序,則會先排序計量,然後計算執行最大值。
• 您必須永遠把維度放在括號內,即使重設維度清單裡只有一個維度。
• 當您指定一組重設維度時,必須以分號分隔。
• RunningMax 不會在區塊分割之後或新區段之後自動重設最大值。
範例
RunningMax([收入]) 會傳回下表的結果:
國家
法國
度假勝地
法國里維耶拉
收入
835,420
執行最大值
835,420
2013-09-19
函式、運算子和關鍵字
美國
美國
巴哈馬海灘
夏威夷俱樂部
971,444
1,479,660
971,444
1,479,660
相關主題
•
IncludeEmpty 運算子使用彙總函式。
•
Row 運算子會計算該資料列裡的每個值,當作在內嵌內容中所有資料列之總和值的百分比。
Col 運算子會計算該資料行裡的每個值,當作在內嵌內容中所有資料行之總和值的百分比。
6.1.2.16 RunningMin
66
描述
傳回維度或計量的執行最小值
函式群組
彙總
語法 input_type RunningMin(dimension|measure;[Row|Col];[(reset_dims)])
輸入
參數 描述 dimension|detail|measure
任何維度或計量
Row|Col reset_dims
設定計算方向
重設指定維度的計算
類型
維度或計量
關鍵字
維度清單
必要
是
否
否
附註
• 您可以將延伸語法內容運算子與 RunningMin 函式一起使用。
• 您可以使用 Row 和 Col 運算子來設定計算方向。
• 如果您在一個 RunningMin 函式所參考的計量上套用排序,则會先排序計量,然後計算執行最小值。
• 您必須永遠把維度放在括號內,即使重設維度清單裡只有一個維度。
• 當您指定一組重設維度時,必須以分號分隔。
2013-09-19
函式、運算子和關鍵字
• RunningMin 不會在區塊分割之後或新區段之後自動重設最小值。
範例
RunningMin([收入]) 會傳回下表的結果:
國家
法國
美國
美國
度假勝地
法國里維耶拉
巴哈馬海灘
夏威夷俱樂部
收入
835,420
971,444
1,479,660
執行最小值
835,420
835,420
835,420
相關主題
•
IncludeEmpty 運算子使用彙總函式。
•
Row 運算子會計算該資料列裡的每個值,當作在內嵌內容中所有資料列之總和值的百分比。
Col 運算子會計算該資料行裡的每個值,當作在內嵌內容中所有資料行之總和值的百分比。
6.1.2.17 RunningProduct
描述
傳回計量的執行產品
函式群組
彙總
語法 num RunningProduct(measure[;Row|Col][;(reset_dims)])
67 2013-09-19
函式、運算子和關鍵字
輸入
參數 measure
Row|Col reset_dims
描述
任何計量
設定計算方向
重設指定維度的計算
類型
計量
關鍵字
維度清單
必要
是
否
否
附註
• 您可以將延伸語法內容運算子與 RunningProduct 一起使用。
• 您可以使用 Row 和 Col 運算子來設定計算方向。
• 如果您在一個 RunningProduct 函式所參考的計量上套用排序,則會先排序計量,然後計算執行產
品。
• 您必須永遠把維度放在括號內,即使重設維度清單裡只有一個維度。
• 當您指定一組重設維度時,必須以分號分隔。
• RunningProduct 不會在區塊分割之後或新區段之後自動重設產品。
範例
RunningProduct([房客人數]) 會傳回下表的結果:
來源國家
日本
日本
美國
縣/市
神戶
大阪
芝加哥
房客人數
6
4
241
執行產品
6
24
5,784
RunningProduct([房客人數];([來源國家])) 會傳回下表的結果:
來源國家
日本
日本
美國
縣/市
神戶
大阪
芝加哥
房客人數
6
4
241
執行產品
6
24
5784
相關主題
•
IncludeEmpty 運算子使用彙總函式。
•
Row 運算子會計算該資料列裡的每個值,當作在內嵌內容中所有資料列之總和值的百分比。
Col 運算子會計算該資料行裡的每個值,當作在內嵌內容中所有資料行之總和值的百分比。
68 2013-09-19
函式、運算子和關鍵字
6.1.2.18 RunningSum
69
描述
傳回計量的執行總和
函式群組
彙總
語法 num RunningSum(measure[;Row|Col][;(reset_dims)])
輸入
參數 measure
Row|Col reset_dims
描述
任何計量
設定計算方向
重設指定維度的計算
類型
計量
關鍵字
維度清單
必要
是
否
否
附註
• 您可以搭配 RunningSum 函式來使用延伸的語法內容運算子。
• 您可以使用 Row 和 Col 運算子來設定計算方向。
• 如果您在一個 RunningSum 函式所參考的計量上套用排序,則會先排序計量,然後計算執行總和。
• 您必須永遠把維度放在括號內,即使重設維度清單裡只有一個維度。
• 當您指定一組重設維度時,必須以分號分隔。
• RunningSum 不會在區塊分割之後或新區段之後自動重設總和。
範例
RunningSum([收入]) 會傳回下表的結果:
國家
法國
美國
美國
度假勝地
法國里維耶拉
巴哈馬海灘
夏威夷俱樂部
收入
835,420
971,444
1,479,660
執行總和
835,420
1,806,864
3,286,524
RunningSum([收入];([國家])) 會傳回下表的結果:
2013-09-19
函式、運算子和關鍵字
國家
法國
美國
美國
度假勝地
法國里維耶拉
巴哈馬海灘
夏威夷俱樂部
收入
835,420
971,444
1,479,660
執行總和
835,420
971,444
2,451,104
相關主題
•
IncludeEmpty 運算子使用彙總函式。
•
Row 運算子會計算該資料列裡的每個值,當作在內嵌內容中所有資料列之總和值的百分比。
Col 運算子會計算該資料行裡的每個值,當作在內嵌內容中所有資料行之總和值的百分比。
6.1.2.19 ServerValue
描述
傳回計量的資料庫值
函式群組
彙總
語法 num ServerValue([measure])
輸入
參數 measure
描述
任何計量
類型
計量
附註
• ServerValue 會忽略套用至維度或階層 (用來計算計量) 的所有本機篩選器
範例
ServerValue([網路銷售金額] 會傳回計量 [網路銷售金額] 的資料庫值
必要
是
70 2013-09-19
函式、運算子和關鍵字
6.1.2.20 StdDev
描述
傳回計量的標準差
函式群組
彙總
語法 num StdDev(measure)
輸入
參數 measure
描述
任何計量
類型
計量
附註
標準差是數字集合中一種統計分佈程度計量。它是以下列方式計算:
• 找出數字集合的平均值
• 把集合內的每一個數字減去平均值,然後計算這些差的平方
• 加總所有平方差
• 將總和除以 (該集合內數字的數目 - 1)
• 找出其結果的平方根
範例
如果 measure 有一組值 (2、4、6、8),StdDev([計量]) 會傳回 2.58。
相關主題
•
必要
是
6.1.2.21 StddevP
71 2013-09-19
函式、運算子和關鍵字
描述
傳回計量的母體標準差
函式群組
彙總
語法 num StdDevP(measure)
輸入
參數 measure
描述
任何計量
類型
計量
附註
母體標準差是數字集合中一種統計分佈程度計量。它是以下列方式計算:
• 找出數字集合的平均值;
• 把集合內的每一個數字減去平均值,然後計算這些差的平方;
• 加總所有平方差;
• 將總和除以 (該集合內數字的數目);
• 找出其結果的平方根。
您可以將延伸語法內容運算子與 StdDevP 函式一起使用。
範例
如果 measure 有一組值 (2、4、6、8),StdDevP([計量]) 會傳回 2.24。
必要
是
6.1.2.22 Sum
描述
傳回計量的總和
函式群組
彙總
語法 num Sum(measure[;member_set])
72 2013-09-19
函式、運算子和關鍵字
輸入
參數 measure member_set
描述
任何計量
成員的集合
類型
計量
成員集合
必要
是
否
附註
• 您可以將延伸語法內容運算子與 Sum 一起使用。
• 如果包含 member_set,則 Sum 會傳回成員集合中所有成員的計量總和。
• member_set 可包含以分號 (;) 分隔的多個集合。
• 成員集清單必須以 {} 符號括住。
• 如果成員集運算式未明確指定成員或節點,則表格中必須有參考的階層,然後成員集運算式將參考
目前表格上階層中的成員。如果階層不在表格中,則函式會傳回 #MULTIVALUE 訊息。
• 如果查詢中無法使用所需的彙總,則委派的計量彙總會傳回 #TOREFRESH。使用者必須重新整理文
件,才能取得彙總的新層級。例如,在使用篩選列時,如果使用者先選取一個值,再選取「所有
值」;反之亦然,如果先選取「所有值」,再選取所選值,則會發生此情況。
• 從 XIR2 移轉至 XIR3 時,則應使用括號,將在 XI2 查詢中包含 IN 與 WHERE 子句的彙總函式應
明確納入 Sum 函式中,如下所示:
在 XIR2 中,公式:=Sum([Measure] In ([Dim 1];[Dim 2])) In ([Dim 1]) Where ([Dim
3]="Constant")
XI3 之後,修改宣告:=Sum(([Measure] In ([Dim 1];[Dim 2])) In ([Dim 1]) Where ([Dim
3]="Constant"))
• 由於群組提供的委派計量需要本機彙總 (群組數值的計量值彙總),因此會傳回 #UNAVAILABLE。
即使您在委派計量上透過「if then else」公式或群組數值強制本機彙總,仍會傳回 #MULTIVALUE
訊息。
範例
如果 [營業收入] 計量含有 2000、3000、4000 與 1000 四個值,Sum([營業收入]) 會傳回 10000。
如果 [加州] 是 [地理區] 階層 (國家 > 州 > 城市) 中的成員,Sum([營業收入];{Descendants([地
理區]&[美國]。[加州];1)}) 會傳回加州所有城市的總營業收入。
6.1.2.23 Var
描述
傳回計量的變異數
73 2013-09-19
函式、運算子和關鍵字
函式群組
彙總
語法 num Var(measure)
輸入
參數 measure
描述
任何計量
類型
計量
附註
變異數是數字集合中一種統計分佈程度計量。它是以下列方式計算:
• 找出數字集合的平均值
• 把集合內的每一個數字減去平均值,然後計算這些差的平方
• 加總所有平方差
• 將總和除以 (該集合內數字的數目 - 1)
變異數是標準差的平方。
您可以將延伸語法內容運算子與 Var 函式一起使用。
範例
如果 measure 有一組值 (2, 4, 6, 8),Var([計量]) 會傳回 6.67。
相關主題
•
必要
是
6.1.2.24 VarP
描述
傳回計量的母體變異數
函式群組
彙總
語法 num VarP(measure)
74 2013-09-19
函式、運算子和關鍵字
輸入
參數 measure
描述
任何計量
類型
計量
附註
母體變異數是數字集合中一種統計分佈程度計量。它是以下列方式計算:
• 找出數字集合的平均值
• 把集合內的每一個數字減去平均值,然後計算這些差的平方
• 加總所有平方差
• 將總和除以 (該集合內數字的數目)
母體變異數是母體標準差的平方。
您可以將延伸語法內容運算子與 VarP 函式一起使用。
範例
如果 measure 有一組值 (2, 4, 6, 8),VarP([計量]) 會傳回 5。
相關主題
•
必要
是
6.1.3 字元函式
6.1.3.1 Asc
描述
傳回字元的 ASCII 值
函式群組
字元
75 2013-09-19
函式、運算子和關鍵字
語法 int Asc(string)
輸入
參數 string
描述
任何字串
類型
字串
必要
是
附註
如果 string 包含一個以上的字元,則函式會傳回字串第一個字元的 ASCII 值。
範例
Asc("A") 會傳回 65。
Asc("ab") 會傳回 97。
當 [國家] 值為 "US" 時,Asc([國家]) 會傳回 85。
6.1.3.2 Char
描述
傳回與 ASCII 碼相關聯的字元
函式群組
字元
語法 string Char(ascii_code)
輸入
參數 ascii_code
描述
ASCII 碼
附註
如果 number 是小數,則函式會忽略小數部位。
範例 s
Char(123) 會傳回 "{"。
類型
數字
必要
是
76 2013-09-19
函式、運算子和關鍵字
6.1.3.3 Concatenation
描述
將兩個字元字串合併 (聯結)
函式群組
字元
語法 string Concatenation(first_string;second_string)
輸入
參數 first_string second_string
描述
第一個字串
第二個字串
類型
字串
字串
必要
是
是
附註
您也可以使用「+」運算子來合併字串。
"First " + "Second" 會傳回 "First Second"。
"First " + "Second" + " Third" 會傳回 "First Second Third"。
您可以使用合併來包含彙總函式中的多個維度。例如,Count([銷售人員]+[季]+[度假勝地]) 等同於
Desktop Intelligence 所容許的語法 Count(<銷售人員>,<季>,<度假勝地>)。
範例
Concatenation("First ";"Second") 會傳回 "First Second"。
Concatenation("First ";Concatenation("Second ";"Third")) 會傳回 "First Second Third"。
6.1.3.4 Fill
77 2013-09-19
函式、運算子和關鍵字
描述
重複字串 n 次來建立字串
函式群組
字元
語法 string Fill(repeating_string;num_repeats)
輸入
參數 repeating_string num_repeats
描述
要重複的字串
重複次數
類型
字串
數字
範例
Fill ("New York";2) 會傳回 "New York New York"。
6.1.3.5 FormatDate
必要
是
是
描述
根據指定的格式格式化日期
函式群組
字元
語法 string FormatDate(date;format_string)
輸入
參數 date format_string
描述
格式化日期
套用的格式
類型
日期
字串
附註
• 輸出的格式視套用至儲存格的日期格式而定。
• 顏色格式設定字串 (例如:[紅色]、[藍色] 等) 無法套用至 FormatDate。
必要
是
是
78 2013-09-19
函式、運算子和關鍵字
範例
如果目前日期是 2005 年 12 月 15 日,FormatDate(CurrentDate();"dd/MM/yyyy") 會傳回
"15/12/2005"。
6.1.3.6 FormatNumber
描述
根據指定的格式格式化數字
函式群組
字元
語法 string FormatNumber(number;format_string)
輸入
參數 number format_string
描述
格式化數字
套用的格式
類型
數字
字串
必要
是
是
附註
• 輸出的格式視套用至儲存格的數字格式而定。
• 顏色格式設定字串 (例如:[紅色]、[藍色] 等) 無法套用至 FormatNumber。
範例
如果 [收入] 是 835,420,FormatNumber([收入];"#,##.00") 會傳回 835,420.00。
6.1.3.7 HTMLEncode
描述
將 HTML 編碼規則套用於字串
79 2013-09-19
函式、運算子和關鍵字
函式群組
字元
語法 string HTMLEncode(html)
輸入
參數 html
描述
HTML 字串
類型
字串
必要
是
範例
HTMLEncode("http://www.sap.com") 會傳回 "http%3A%2F%2Fwww%2Esap%2Ecom "。
6.1.3.8 InitCap
描述
將字串的第一個字母以大寫表示。
函式群組
字元
語法 string InitCap(string)
輸入
參數 string
描述
以大寫表示的字串
類型
字串
必要
是
範例
InitCap("we hold these truths to be self-evident") 會傳回「We hold these truths to be self-evident」。
6.1.3.9 Left
80 2013-09-19
函式、運算子和關鍵字
描述
傳回字串最左邊的字元。
附註:
選取的介面地區設定為阿拉伯文 (由右至左顯示/讀取) 時,此函式可傳回字串邏輯開頭的第一個字元。
函式群組
字元
語法 string Left(string;num_chars)
輸入
參數 string num_chars
描述
輸入字串
類型
字串
從字串開頭傳回的字元數 數字
範例
如果 [國家] 是 "France",Left([國家];2) 會傳回 "Fr"。
必要
是
是
6.1.3.10 LeftPad
81
描述
在字串左側以另一個字串填補。
附註:
選取的介面地區設定為阿拉伯文 (由右至左顯示/讀取) 時,此函式會以另一個字串填滿字串邏輯開頭
前的位置。
函式群組
字元
語法 string LeftPad(padded_string;length;left_string)
2013-09-19
函式、運算子和關鍵字
輸入
參數 padded_string length left_string
描述
原有的字串
輸出字串的長度
新增至 padded_string 開
頭的字串
類型
字串
數字
字串
必要
是
是
是
附註
• 如果 length 小於 left_string 和 padded_string 加起來的長度,則會截斷 left_string。
• 如果 length 少於或等於 padded_string 的長度,則函式會傳回 padded_string。
• 如果 length 大於 padded_string 和 left_string 加起來的長度,則left_string 會重複或部分
重複以填滿長度。
範例
LeftPad("York";8;"New ") 會傳回 "New York"
LeftPad("York";6;"New ") 會傳回 "NeYork"
LeftPad("York";11;"New ") 會傳回 "New NewYork"
LeftPad("New ";2;"York") 會傳回 "New"。
6.1.3.11 LeftTrim
描述
修剪字串的前置空格。
附註:
選取的介面地區設定為阿拉伯文 (由右至左顯示/讀取) 時,此函式可移除字串邏輯開頭的第一個空格
字元。
函式群組
字元
語法 string LeftTrim(trimmed_string)
82 2013-09-19
函式、運算子和關鍵字
輸入
參數 trimmed_string
描述
要修剪的字串
類型
字串
範例
如果 [國家] 是「 France」,LeftTrim([國家]) 會傳回「France」。
必要
是
6.1.3.12 Length
描述
傳回字串的字元數
函式群組
字元
語法 int Length(string)
輸入
參數 string
描述
輸入字串
類型
字串
範例
如果 [姓氏] 為 "Smith",Length([姓氏]) 會傳回 5。
6.1.3.13 Lower
描述
將字串轉換為小寫字母
函式群組
字元
83
必要
是
2013-09-19
函式、運算子和關鍵字
語法 string Lower(string)
輸入
參數 string
描述
要轉換成小寫的字串
範例
Lower("New York") 會傳回 "new york"。
類型
字串
6.1.3.14 Match
必要
是
描述
判斷字串是否符合模式
函式群組
字元
語法 bool Match(test_string;pattern)
輸入
參數 test_string pattern
描述 類型
要與文字圖樣進行測試的
字串
字串
文字圖樣 字串
必要
是
是
附註
• 模式可以包含萬用字元「*」(取代任何字元的集合) 或「?」(取代任何單一字元)。
範例
如果 [國家] 是 "France",Match ([國家];"F*") 會傳回 True。
如果 [國家] 是 "USA",Match ([國家];"?S?") 會傳回 True。
Match("New York";"P*") 會傳回 False。
84 2013-09-19
函式、運算子和關鍵字
6.1.3.15 Pos
描述
傳回字串中文字模式的開始位置
函式群組
字元
語法 int Pos(test_string;pattern)
輸入
參數 test_string pattern
描述
要與文字圖樣進行測試的
字串
字串
文字圖樣
類型
字串
附註
• 如果圖樣出現超過一次,Pos 會傳回第一次出現的位置。
範例
Pos("New York";"Ne") 會傳回 1。
Pos("New York, New York";"Ne") 會傳回 1。
Pos("New York"; "York") 會傳回 5。
6.1.3.16 Replace
描述
以另一個字串取代字串的一部份
函式群組
字元
85
必要
是
是
2013-09-19
函式、運算子和關鍵字
語法 string Replace(replace_in;replaced_string;replace_with)
輸入
參數 replace_in replaced_string replace_with
描述
文字被取代的字串
被取代的文字
取代 replaced_string
的文字
類型
字串
字串
字串
範例
Replace("New YORK";"ORK";"ork") 會傳回 "New York"。
6.1.3.17 Right
必要
是
是
是
描述
傳回字串最右邊的字元 (字串末端的字元)。
附註:
選取的介面地區設定為阿拉伯文 (由右至左顯示/讀取) 時,此函式可傳回字串邏輯開頭的第一個字元。
函式群組
字元
語法 string Right(string;num_chars)
輸入
參數 string num_chars
描述
任何字串
類型
字串
要從字串右邊傳回的字元
數
數字
範例
如果 [國家] 是「France」,Right([國家];2) 會傳回「ce」。
必要
是
是
86 2013-09-19
函式、運算子和關鍵字
6.1.3.18 RightPad
描述
在字串右側以另一個字串填補 (將字串新增至原有字串的開頭)。
附註:
選取的介面地區設定為阿拉伯文 (由右至左顯示/讀取) 時,此函式可將字串新增至字串邏輯開頭的第
一個字元。
函式群組
字元
語法 string RightPad(padded_string;length;right_string)
輸入
參數 padded_string length right_string
描述
原有的字串
輸出字串的長度
新增至 padded_string 末
端的字串
類型
字串
數字
字串
必要
是
是
是
附註
• 如果 length 小於 right_string 和 padded_string 加起來的長度,則會截斷 right_string。
• 如果 length 少於或等於 padded_string 的長度,則函式會傳回 padded_string。
• 如果 length 大於 padded_string 和 right_string 加起來的長度,則right_string 會重複或部
分重複以填滿長度。
範例
RightPad("New ";8;"York") 會傳回 "New York"
RightPad("New "; 6;"York") 會傳回 "New Yo"
RightPad("New ";11;"York") 會傳回 "New YorkYor"
RightPad("New ";2;"York") 會傳回 "New"。
87 2013-09-19
函式、運算子和關鍵字
6.1.3.19 RightTrim
描述
修剪字串的尾隨空白。
附註:
選取的介面地區設定為阿拉伯文 (由右至左顯示/讀取) 時,此函式可修剪字串邏輯末端的尾隨空白。
函式群組
字元
語法 string RightTrim(trimmed_string)
輸入
參數 trimmed_string
描述
要修剪的字串
類型
字串
範例
如果 [國家] 是「France 」,RightTrim([國家]) 會傳回「France」。
必要
是
6.1.3.20 Substr
描述
傳回部分字串
函式群組
字元
語法 string SubStr(string;start;length)
88 2013-09-19
函式、運算子和關鍵字
輸入
參數 string start length
描述
任何字串
擷取字串的開始位置
擷取字串的長度
類型
字串
數字
數字
範例
SubStr ("Great Britain";1;5) 會傳回 「Great」。
SubStr ("Great Britain";7;7) 會傳回 「Britain」。
6.1.3.21 Trim
描述
修剪字串的前置與尾隨空白
函式群組
字元
語法 string Trim(trimmed_string)
輸入
參數 string
描述
要修剪的字串
類型
字串
範例
Trim(" Great Britain ") 會傳回 「Great Britain」。
6.1.3.22 Upper
必要
是
是
是
必要
是
89 2013-09-19
函式、運算子和關鍵字
描述
把字串轉換為大寫
函式群組
字元
語法 string Upper(string)
輸入
參數 string
描述
要轉換的字串
範例
Upper("New York") 會傳回「NEW YORK」。
6.1.3.23 UrlEncode
類型
字串
必要
是
描述
將 URL 編碼規則套用到字串
函式群組
字元
語法 string UrlEncode(html)
輸入
參數 html
描述
要編碼的 URL
類型
字串
必要
是
範例
UrlEncode("http://www.sap.com") 會傳回「http%3A%2F%2Fwww%2Esap%2Ecom」。
6.1.3.24 WordCap
90 2013-09-19
函式、運算子和關鍵字
描述
將字串內所有字的第一個字母以大寫表示
函式群組
字元
語法 string WordCap(string)
輸入
參數 string
描述
要大寫的字串
類型
字串
必要
是
範例
WordCap("Sales revenue for March") 會傳回「Sales Revenue For March」。
6.1.4 日期和時間函式
6.1.4.1 CurrentDate
描述
傳回根據區域設定格式化的目前日期
函式群組
日期與時間
語法 date CurrentDate()
91 2013-09-19
函式、運算子和關鍵字
範例
如果日期為 2002 年 9 月 10 日,CurrentDate() 會傳回 2002 年 9 月 10 日。
6.1.4.2 CurrentTime
描述
傳回根據區域設定格式化的目前時間
函式群組
日期與時間
語法 time CurrentTime()
範例
如果目前時間是 11:15,CurrentTime 會傳回 11:15。
6.1.4.3 DayName
描述
傳回日名稱
函式群組
日期與時間
語法 string DayName(date)
92 2013-09-19
函式、運算子和關鍵字
輸入
參數 date
描述
輸入日期
類型
日期
必要
是
範例
當 [訂房日期] 中的日期為 2001 年 12 月 15 日 (星期六) 時,DayName([訂房日期]) 會傳回「星期
六」。
附註
輸入日期必須是變數。您不能直接指定日期,例如 DayName("07/15/2001")。
6.1.4.4 DayNumberOfMonth
描述
傳回一個月內的第幾日
函式群組
日期與時間
語法 int DayNumberOfMonth(date)
輸入
參數 date
描述
輸入日期
類型
日期
必要
是
範例
當 [訂房日期] 中的日期為 2001 年 12 月 15 日時,DayNumberOfMonth([訂房日期]) 會傳回 15。
6.1.4.5 DayNumberOfWeek
93 2013-09-19
函式、運算子和關鍵字
描述
傳回星期幾
函式群組
日期與時間
語法 int DayNumberOfWeek(date)
輸入
參數 date
描述
輸入日期
類型
日期
必要
是
附註
該函式會將星期一視為一個星期的第一天。
範例
當 [訂房日期] 中的日期為 2005 年 5 月 2 日星期一時,DayNumberOfWeek([訂房日期]) 會傳回 1。
6.1.4.6 DayNumberOfYear
描述
傳回一年中的第幾日
函式群組
日期與時間
語法 int DayNumberOfYear(date)
輸入
參數 date
描述
輸入日期
類型
日期
必要
是
範例
當 [訂房日期] 中的日期為 2001 年 12 月 15 日時,DayNumberOfYear([訂房日期]) 會傳回 349。
94 2013-09-19
函式、運算子和關鍵字
6.1.4.7 DaysBetween
描述
傳回介於兩個日期間的天數
函式群組
日期與時間
語法 int DaysBetween(first_date;last_date)
附註:
您必須確認引數中給予的日期位於相同時區。這套用至所有日期作業:比較和計算。
輸入
參數 first_date last_date
描述
第一個日期
最後一個日期
類型
日期
日期
必要
是
是
範例
如果 [銷售日期] 為 2001 年 12 月 15 日而 [發票日期] 為 2001 年 12 月 17 日,則 DaysBe tween([銷售日期];[發票日期]) 會傳回 2。
6.1.4.8 LastDayOfMonth
描述
傳回月份的最後一日
函式群組
日期與時間
語法 date LastDayOfMonth(date)
95 2013-09-19
函式、運算子和關鍵字
輸入
參數 date
描述
月份中的任何日期
類型
日期
必要
是
範例
如果 [銷售日期] 是 2005 年 12 月 11 日,LastDayOfMonth([銷售日期]) 會傳回 2005 年 12 月 31
日。
6.1.4.9 LastDayOfWeek
描述
傳回一週的最後一日
函式群組
日期與時間
語法 date LastDayOfWeek(date)
輸入
參數
日期
描述
一週中的任何日期
類型
日期
必要
是
附註
該函式會將星期一視為一個星期的第一天。
範例
如果 [銷售日期] 是 2005 年 5 月 11 日,LastDayOfWeek([銷售日期]) 會傳回 2005 年 5 月 15
日 星期日。
6.1.4.10 Month
96 2013-09-19
函式、運算子和關鍵字
描述
傳回日期的月份名稱
函式群組
日期與時間
語法 string Month(date)
輸入
參數 date
描述
輸入日期
類型
日期
必要
是
範例
當 [訂房日期] 中的日期為 2005 年 12 月 15 日時,Month([訂房日期]) 會傳回「12 月」。
6.1.4.11 MonthNumberOfYear
97
描述
傳回日期的月份數目
函式群組
日期與時間
語法 int MonthNumberOfYear(date)
輸入
參數 date
描述
一年中的任何日期
類型
日期
必要
是
範例
當 [訂房日期] 中的日期為 2005 年 12 月 15 日時,MonthNumberOfYear([訂房日期]) 會傳回 12。
2013-09-19
函式、運算子和關鍵字
6.1.4.12 MonthsBetween
描述
傳回介於兩個日期間月的數字
函式群組
日期與時間
語法 int MonthsBetween(first_date;last_date)
輸入
參數 first_date last_date
描述
第一個日期
最後一個日期
類型
日期
日期
必要
是
是
範例
如果 [銷售日期] 是 2005 年 12 月 2 日,而 [發票日期] 為 2006年 1月 2日,MonthsBetween([銷
售日期];[發票日期]) 會傳回 1。
如果 [銷售日期] 是 2008 年 3 月 31 日,而 [發票日期] 為 2008 年 4 月 30 日,則 MonthsBe tween([銷售日期];[發票日期]) 會傳回 1。
如果 [銷售日期] 是 1993 年 1 月 7 日,而 [發票日期] 為 2002 年 11 月 6 日,則 MonthsBe tween([銷售日期];[發票日期]) 會傳回 118。
6.1.4.13 Quarter
描述
傳回日期的季度數目
函式群組
日期與時間
98 2013-09-19
函式、運算子和關鍵字
語法 int Quarter(date)
輸入
參數 date
描述
一季中的任何日期
類型
日期
必要
是
範例
當 [訂房日期] 中的日期為 2005 年 12 月 15 日時,Quarter([訂房日期]) 會傳回 4。
6.1.4.14 RelativeDate
描述
傳回相對於另一個日期的日期
函式群組
日期與時間
語法 date RelativeDate(start_date;num_days)
輸入
參數 start_date num_days
描述
開始日期
自開始日期起的日數
類型
日期
數字
必要
是
是
附註 num_days 參數可以是負數,以傳回 start_date 之前的日期。
範例
如果 [訂房日期] 是 2005 年 12 月 15 日,RelativeDate[訂房日期];2) 會傳回 2005 年 12 月 17
日。
如果 [訂房日期] 是 2007 年 1 月 12 日,RelativeDate[訂房日期];-3) 會傳回 2007 年 1 月 9
日。
99 2013-09-19
函式、運算子和關鍵字
6.1.4.15 TimeDim
100
描述
TimeDim 時間維度可讓您從日期類型語意層物件建立時間座標軸。TimeDim 會在指定為第二個參數的期
間內傳回指定為第一個參數的日期資料。針對不含任何資料的期間,則會傳回每個空白期間的第一天。
這將可確保指定期間內的座標軸完整無缺。同時保證:
• 座標軸會保留自然時間順序 (最舊的物件最先,最新的物件最後)。
• 座標軸會包含目前內容中最小和最大日期之間的所有期間。
附註:
您無法使用 TimeDim 函式來篩選公式 (例如,在篩選器、輸入控制項、元素連結、篩選/擷取列中),
您應該直接篩選放置的日期維度。
函式群組
日期與時間
語法
TimeDim([日期類型]; 期間類型)
輸入
參數
日期類型
期間類型
描述
報表的日期物件,例如 InvoiceDate。
類型
日期
下列各值的結果期間:
• DayPeriod
• MonthPeriod
• QuarterPeriod
• YearPeriod
若未選取任何值,依預設會使用 DayPeriod。此物件應為
資料提供者物件,它必須從報表物件提供,且不能是變
數。
預先定義的
必要
是
選擇性
搭配下列函式來使用以上函式:
• DayName
• DayNumberOfMonth
• DayNumberOfWeek
• DayNumberOfYear
• Month
2013-09-19
函式、運算子和關鍵字
• MonthNumberOfYear
• Quarter
• Year
• FormatDate
範例
下方的第一個表格包含僅與某些日期有關的資料。之後的查詢範例會顯示如何解譯這些結果。
發票日期
1/3/00
1/8/00
7/3/00
收入
31,607
31,244
38,154
下列公式 DayName(TimeDim([Invoice Date] ; QuarterPeriod) 會傳回上表中的每日值。
發票日期
1/3/00
1/8/00
4/1/00
7/3/00
收入
31,607
31,244
38,154
您應使用 Quarter 函式格式化 TimeDim 函式結果,來依 Quarter (Q1、Q2.. ) 傳回結果,以便提供
下列結果表格:
發票日期
第 1 季
第 2 季
第 3 季
收入
62,851
38,154
6.1.4.16 ToDate
101 2013-09-19
函式、運算子和關鍵字
描述
將字元字串轉為日期。提供日期格式作為參數,以表示 Web Intelligence 將字串轉換成日期的方式。
您提供的日期格式必須符合原始字串中的日期格式,請參閱下方連結以瞭解可能的日期格式。
函式群組
日期與時間
語法 date ToDate(date_string;format)
輸入
參數 date_string format
描述
要設定格式的日期
日期格式
類型
字串
字串
必要
是
是
範例
ToDate("15/12/2002";"dd/MM/yyyy") 會傳回 15/12/2002。
ToDate("15/12/02";"dd/MM/yy") 會傳回 15/12/02。
ToDate("15/12/02";"dd/MMMM/yy") 會傳回 15/DECEMBER/02。
相關主題
•
在表格中,您可以使用「自訂」格式類型定義任何儲存格的自訂格式。
6.1.4.17 週
描述
傳回一年中的週數
函式群組
日期與時間
語法 int Week(date)
102 2013-09-19
函式、運算子和關鍵字
輸入
參數 date
描述
輸入日期
類型
日期
必要
是
範例
當 [訂房日期] 中的日期是 2004 年 1 月 4 日 (位於 2004 年的第一個星期) 時,Week([訂房日期])
會傳回 1。
6.1.4.18 年
描述
傳回日期的年份。
函式群組
日期與時間
語法 int Year(date)
輸入
參數 date
描述
輸入日期
類型
日期
必要
是
範例
當 [訂房日期] 中的日期為 2005 年 12 月 15 日時,Year([訂房日期]) 會傳回 2005。
6.1.5 資料提供者函式
6.1.5.1 連線
103 2013-09-19
函式、運算子和關鍵字
描述
傳回資料提供者所用資料庫連線的參數
函式群組
資料提供者
語法 string Connection(dp)
輸入
參數 dp
描述
資料提供者
類型
資料提供者
必要
是
附註
• 您必須以方括號圍住資料提供者的名稱。
• 基於安全性原因,函式輸出並未包含資料庫主機名稱、使用者名稱和使用者密碼。
6.1.5.2 DataProvider
104
描述
傳回包含報表物件的資料提供者名稱
函式群組
資料提供者
語法 string DataProvider(obj)
輸入
參數 obj
描述
報表物件
類型
報表物件
必要
是
範例
如果 [總收入] 計量在稱為「銷售」的資料提供者中,DataProvider([總收入]) 會傳回 「銷售」。
2013-09-19
函式、運算子和關鍵字
6.1.5.3 DataProviderKeyDate
描述
傳回資料提供者的關鍵日期
函式群組
資料提供者
語法 date DataProviderKeyDate(dp)
輸入
參數 dp
描述
資料提供者
類型
資料提供者
必要
是
附註
• 您必須以方括號圍住資料提供者的名稱。
• 傳回的關鍵日期將根據文件地區設定來格式化。
範例
如果銷售資料提供者的關鍵日期是 2007 年 8 月 3 日,則 DataProviderKeyDate([銷售]) 會傳回
2007 年 8 月 3 日。
6.1.5.4 DataProviderKeyDateCaption
描述
傳回資料提供者的關鍵日期標題
函式群組
資料提供者
語法 string DataProviderKeyDateCaption(dp)
105 2013-09-19
函式、運算子和關鍵字
輸入
參數 dp
描述
資料提供者
類型
資料提供者
必要
是
附註
您必須以方括號圍住資料提供者的名稱。
範例
如果「銷售」資料提供者的關鍵日期標題是「目前的行事曆日期」,DataProviderKeyDateCaption([銷
售]) 將會傳回「目前的行事曆日期」。
6.1.5.5 DataProviderSQL
描述
傳回資料提供者產生的 SQL
函式群組
資料提供者
語法 string DataProviderSQL(dp)
輸入
參數 dp
描述
資料提供者
類型
資料提供者
必要
是
附註
您必須以方括號圍住資料提供者的名稱。
範例
如果資料提供者 SQL 是 SELECT country.country_name FROM country,則 DataProviderSQL([查詢
1]) 會傳回 SELECT country.country_name FROM country。
6.1.5.6 DataProviderType
106 2013-09-19
函式、運算子和關鍵字
描述
傳回資料提供者的類型
函式群組
資料提供者
語法 string DataProviderType(dp)
輸入
參數 dp
描述
資料提供者
類型
資料提供者
必要
是
附註
• DataProviderType 會針對語意層資料提供者傳回「語意層」,或針對個人資料提供者傳回 「個人
資料」。
• 您必須以方括號圍住資料提供者的名稱。
範例
如果銷售資料提供者以語意層為基礎,則 DataProviderType([銷售]) 會傳回「語意層」。
6.1.5.7 IsPromptAnswered
描述
判斷提示是否已有人回答
函式群組
資料提供者
語法 bool IsPromptAnswered([dp;]prompt_string)
107 2013-09-19
函式、運算子和關鍵字
輸入
參數 dp prompt_string
描述
資料提供者包含提示
提示文字
類型
資料提供者
字串
必要
否
是
附註
您必須以方括號圍住資料提供者的名稱。
範例
如果由「選擇一個城市」文字所識別的提示已回答,IsPromptAnswered("選擇一個城市") 會傳回 True。
如果由 [銷售] 資料提供者中「選擇一個城市」文字所識別的提示已回答,IsPromptAnswered ([銷
售];"選擇一個城市") 會傳回 True。
6.1.5.8 LastExecutionDate
108
描述
傳回上次重新整理資料提供者的日期
函式群組
資料提供者
語法 date LastExecutionDate(dp)
輸入
參數 dp
描述
資料提供者
類型
資料提供者
必要
是
附註
• 如果報表只有一個資料提供者,則可以省略 dp 參數。
• 您必須以方括號圍住資料提供者的名稱。
• 您可以使用 DataProvider 函式,將參考提供給資料提供者。
範例
如果上次重新整理 [銷售查詢] 資料提供者的日期是 2002 年 3 月 4 日,LastExecutionDate([銷售
查詢]) 會傳回「3/4/2002」。
2013-09-19
函式、運算子和關鍵字
相關主題
•
6.1.5.9 LastExecutionDuration
描述
傳回資料提供者最後一次重新整理時所花的時間 (秒數)
函式群組
資料提供者
語法 num LastExecutionDuration(dp)
輸入
參數 dp
描述
資料提供者
類型
資料提供者
必要
是
附註
您必須以方括號圍住資料提供者的名稱。
範例
LastExecutionDuration([銷售]) 傳回 3,表示「銷售」資料提供者最後一次傳回資料時花了 3 秒。
6.1.5.10 LastExecutionTime
描述
傳回上次重新整理資料提供者的時間
函式群組
資料提供者
109 2013-09-19
函式、運算子和關鍵字
語法 time LastExecutionTime(dp)
輸入
參數 dp
描述
資料提供者
類型
資料提供者
必要
是
附註
• 如果報表只有一個資料提供者,則可以省略 dp 參數。
• 您可以使用 DataProvider 函式,將參考提供給資料提供者。
• 您必須以方括號圍住資料提供者的名稱。
範例
如果上次重新整理 [銷售查詢] 資料提供者的時間是下午 2:48:00,LastExecutionTime([銷售查詢])
會傳回「2:48:00 PM」。
相關主題
•
6.1.5.11 NumberOfDataProviders
描述
傳回在報表裡資料提供者的數量
函式群組
資料提供者
語法 int NumberOfDataProviders()
範例
如果報表裡有兩個資料提供者,NumberOfDataProviders() 會傳回 2。
6.1.5.12 NumberOfRows
110 2013-09-19
函式、運算子和關鍵字
描述
傳回資料提供者裡的資料列數
函式群組
資料提供者
語法 int NumberOfRows(dp)
輸入
參數 dp
描述
資料提供者
類型
資料提供者
附註
• 您必須以方括號圍住資料提供者的名稱。
• 您可以使用 DataProvider 函式,將參考提供給資料提供者。
範例
如果「查詢1」資料提供者有 10 列,NumberOfRows([查詢 1]) 會傳回 10。
相關主題
•
必要
是
6.1.5.13 RefValueDate
描述
傳回用於資料追蹤的參考資料日期
函式群組
資料提供者
語法 date RefValueDate()
111 2013-09-19
函式、運算子和關鍵字
範例
如果參考日期為 2008 年 12 月 15 日,RefValueDate() 會傳回 2008 年 12 月 15 日。
6.1.5.14 RefValueUserReponse
描述
當參考資料是目前資料時,傳回提示的回應
函式群組
資料提供者
語法 string RefValueUserResponse([dp;]prompt_string[;Index])
輸入
參數 dp prompt_string
Index
描述
資料提供者
類型
資料提供者
提示文字 字串
指示函式傳回提示值的資
料庫主索引鍵
關鍵字
必要
否
是
否
附註
• 如果資料追蹤未啟動,此函式會傳回空白的字串。
• 您必須以方括號圍住資料提供者的名稱。
• 您可以使用 DataProvider 函式,將參考提供給資料提供者。
• 如果您在回答提示時選取一個以上的值,函式會傳回由分號分隔的值清單 (若有指定 Index 運算子
則為主索引鍵清單) 所組成的字串。
範例
如果您在「哪個城市?」提示中輸入「洛杉磯」,RefValueUserResponse( "哪個城市?" ) 會傳回「洛
杉磯」「洛杉磯」。
RefValueUserResponse([銷售查詢];"哪個城市?") 會傳回「洛杉磯」。
6.1.5.15 UniverseName
112 2013-09-19
函式、運算子和關鍵字
描述
傳回資料提供者所依據的語意層名稱
函式群組
資料提供者
語法 string UniverseName(dp)
輸入
參數 dp
描述
資料提供者
類型
資料提供者
必要
是
附註
• 如果資料提供者的名稱有所變更,則公式中的 dp 值也會自動更新。如果將資料提供者重新命名為
"Q1",則公式將變為 UniverseName([Q1])。
• 您必須以方括號圍住資料提供者的名稱。
• 您可以使用 DataProvider 函式,將參考提供給資料提供者。
範例
如果 [查詢 1] 資料提供者是以 eFashion 語意層為基礎,UniverseName([查詢 1]) 會傳回
「eFashion」。
相關主題
•
6.1.5.16 UserResponse
描述
傳回提示的回應
函式群組
資料提供者
113 2013-09-19
函式、運算子和關鍵字
語法 string UserResponse([dp;]prompt_string[;Index])
輸入
參數 dp prompt_string
Index
描述
資料提供者
提示文字
指示函式傳回提示值的
資料庫主索引鍵
類型
資料提供者
字串
關鍵字
必要
否
是
否
附註
• 您必須以方括號圍住資料提供者的名稱。
• 您可以使用 DataProvider 函式,提供資料提供者的參照。
• 如果您在答覆提示時選取一個以上的值,函式會傳回由分號分隔的值清單 (若有指定 Index 運算子
則為主索引鍵清單) 所組成的字串。
範例
如果您在「哪個城市?」提示中輸入「洛杉磯」,則 UserResponse("哪個城市?") 會傳回「洛杉磯」
提示。
如果您在「銷售查詢」資料提供者的「哪個城市?」提示中輸入「洛杉磯」,則 UserResponse([銷售
查詢];"哪個城市?") 會傳回「洛杉磯」。
UserResponse([銷售查詢];"哪個城市?";Index) 會傳回 23。
6.1.6 文件函式
6.1.6.1 DocumentAuthor
描述
傳回文件建立者的 InfoView 登入
114 2013-09-19
函式、運算子和關鍵字
函式群組
文件
語法 string DocumentAuthor()
範例
如果文件的作者以「gkn」登入,DocumentAuthor() 會傳回「gkn」。
6.1.6.2 DocumentCreationDate
描述
傳回文件建立日期
函式群組
文件
語法 date DocumentCreationDate
範例
如果文件的建立日期是 2008 年 12 月 15 日,DocumentCreationDate() 會傳回 2008 年 12 月 15
日。
6.1.6.3 DocumentCreationTime
描述
傳回文件建立時間
函式群組
文件
語法 time DocumentCreationTime()
115 2013-09-19
函式、運算子和關鍵字
範例
如果文件建立於 11:15,DocumentCreationTime() 會傳回 11:15。
6.1.6.4 DocumentDate
描述
傳回上次儲存文件的日期
函式群組
文件
語法 date DocumentDate()
範例
如果上次儲存文件的日期為 2005 年 8 月 8 日,DocumentDate() 會傳回 2005 年 8 月 8 日。
6.1.6.5 DocumentName
描述
傳回文件名稱
函式群組
文件
語法 string DocumentName()
範例
如果文件名稱為「銷售報表」,DocumentName() 會傳回「銷售報表」。
6.1.6.6 DocumentOwner
116 2013-09-19
函式、運算子和關鍵字
描述
傳回文件擁有人的 BI Launch Pad 登入/使用者名稱 (上一個儲存文件的人)。(若要傳回文件的原始作
者/建立者,請使用 DocumentAuthor 函式。)
函式群組
文件
語法
字串 DocumentOwner()
範例
DocumentOwner() 如果上一個儲存文件的人其使用者或登入名稱為「gkn」,則會傳回「gkn」。
6.1.6.7 DocumentPartiallyRefreshed
描述
判斷是否要部份重新整理文件
函式群組
文件
語法 bool DocumentPartiallyRefreshed()
附註
DocumentPartiallyRefreshed 會傳回布林值,以便您在 If 函式中使用。
範例
如果部份重新整理文件,DocumentPartiallyRefreshed() 會傳回 True。
6.1.6.8 DocumentTime
117 2013-09-19
函式、運算子和關鍵字
描述
傳回上次儲存文件的時間
函式群組
文件
語法 time DocumentTime()
附註
傳回時間的格式會依儲存格格式而有所不同。
範例
如果上次儲存文件的時間為 15:45,DocumentDate() 會傳回 15:45。
6.1.6.9 DrillFilters
描述
傳回套用至擷取模式下的宣告報表文件或物件的擷取篩選器結果。您可以宣告文件內的不同報表。若未
宣告報表,則會使用目前使用中的報表。
函式群組
文件
語法 string DrillFilters([obj|separator[;report]])
118 2013-09-19
函式、運算子和關鍵字
輸入
參數 obj separator
描述
報表物件
擷取篩選器分隔符號
類型
報表物件
字串
必要
需要 obj 或 separa tor
需要 obj 或 separa tor
需要 obj 或 separa tor report 選擇性。您要使用的報表名稱。必
須在文件中。若未宣告任何報表,
則會使用目前報表。
字串
附註
• 您可以直接插入 DrillFilters 函式,而無需透過插入 DrillFilters 儲存格來手動輸入公式。
• 如果沒有指定物件,函式會傳回所有套用至文件的擷取篩選器。
範例
如果文件含有將 [國家] 物件限制為 "US" 的擷取篩選器,DrillFilters() 會傳回 US。
如果文件含有將 [國家] 物件限制為 "US" 並將 [年] 限制為 1999 的篩選器,DrillFilters() 會傳
回 "US - 1999"。
如果文件含有將 [國家] 限制為 "US" 並將 [年] 限制為 1999 的篩選器,DrillFilters("/") 會傳回
"US / 1999"。
如果文件含有將 [季] 限制為 "Q3" 的擷取篩選器,DrillFilters ([季]) 會傳回 "Q3"。
6.1.6.10 PromptSummary
描述
傳回文件中所有提示的提示文字和使用者回應
函式群組
文件
語法 string PromptSummary()
範例
PromptSummary 函式的範例輸出如下所示:
Enter Quantity Sold: 5000
119 2013-09-19
函式、運算子和關鍵字
Enter value(s) for State (optional): California, Texas, Utah
Enter Customer (optional):
6.1.6.11 QuerySummary
描述
傳回文件中查詢的相關資訊
函式群組
文件
語法 string QuerySummary([dp])
輸入
參數 dp
描述
一個資料提供者
類型
資料提供者
附註
• 您必須以方括號圍住資料提供者的名稱。
範例
QuerySummary() 會傳回文件中所有查詢的相關資訊。
QuerySummary([查詢 1]) 會傳回 [查詢 1] 資料提供者的查詢相關資訊。
輸出範例:
Query 1:
Universe: eFashion
Last execution time: 1s
NB of rows: 34500
Result objects: State, Year, Sales Revenue
Scope of analysis: State, City, Year, Quarter, Month
Filters:
(State inlist{"US";"France";}
And (Sales Revenue Greater Than 1000000
Or Sales Revenue Less Than 10000))
Query 2:
Source file: D:\Data\datacar.xls
Result objects: State, Year, Sales Revenue
必要
否
6.1.6.12 ReportFilter
120 2013-09-19
函式、運算子和關鍵字
描述
傳回套用在物件或報表上的報表篩選器
函式群組
文件
語法 string ReportFilter(obj)
輸入
參數 obj
描述
報表物件
類型
報表物件
必要
是
範例
如果「國家」物件上套用了限制為「美國」的篩選器,ReportFilter([國家]) 會傳回「美國」。
6.1.6.13 ReportFilterSummary
121
描述
傳回文件或報表中的報表篩選器摘要
函式群組
文件
語法 string ReportFilterSummary(report_name)
輸入
參數 report_name
描述
報表名稱
類型
字串
必要
否
附註
如果省略了 report_name,ReportFilterSummary 會傳回文件中所有報表的所有報表篩選器摘要。
2013-09-19
函式、運算子和關鍵字
範例
ReportFilterSummary() 會傳回文件中所有報表篩選器的相關資訊。
ReportFilterSummary("報表1") 會傳回「報表1」報表中報表篩選器的相關資訊。
ReportFilterSummary 函式的範例輸出如下所示:
Filters on Report1:
(Sales Revenue Greater Than 1000000
Or (Sales Revenue Less Than 3000))
Filters on Section on City:
(City InList{"Los Angeles";"San Diego";})
Ranking Filter:
(Top 10 & Bottom 10 [Customer] Based on [Sales Revenue] (Count))
6.1.7 邏輯函式
6.1.7.1 Even
122
描述
判斷數字是否為偶數
函式群組
邏輯
語法 bool Even(number)
輸入
參數 number
描述
任何數字
類型
數字
必要
是
附註
• Even 會傳回布林值,以便讓您在 If 函式中使用。
• 如果您將 Even 直接放入資料行中,則該函式會傳回整數 (1 = True;0 = False)。您可以利用布
林值數字格式,將此整數格式化。
2013-09-19
函式、運算子和關鍵字
範例
Even(4) 會傳回 True。
Even(3) 會傳回 False。
Even(23.2) 會傳回 False。
Even(-4) 會傳回 True。
Even(-2.2) 會傳回 False。
6.1.7.2 IsDate
描述
判斷值是否為日期
函式群組
邏輯
語法 bool IsDate(obj)
輸入
參數 obj
描述
任何報表物件
類型
報表物件
必要
是
附註
• IsDate 會傳回布林值,以便讓您在 If 函式中使用。
• 如果您將 IsDate 直接放入資料行中,則該函式會傳回整數 (1 = True;0 = False)。您可以利用
布林值數字格式,將此整數格式化。
範例
如果 [訂房日期] 是日期,IsDate([訂房日期]) 會傳回 True。
如果 [訂房日期] 是日期,If(IsDate([訂房日期]) Then "日期" Else "非日期" 會傳回 「日期」。
相關主題
•
123 2013-09-19
函式、運算子和關鍵字
6.1.7.3 IsError
描述
判斷物件是否會傳回錯誤
函式群組
邏輯
語法 bool IsError(obj)
輸入
參數 obj
描述
任何報表物件
類型
報表物件
必要
是
附註
• IsError 會傳回布林值,以便讓您在 If 函式中使用。
• 如果您將 IsError 直接放入資料行中,則該函式會傳回整數 (1 = True;0 = False)。您可以利用
布林值數字格式,將此整數格式化。
範例
如果 [收入] 變數沒有傳回錯誤,IsError([收入]) 會傳回 False。
如果 [平均房客人數] 變數傳回除以零 (#DIV/0) 的錯誤,IsError([平均房客人數]) 會傳回 True。
如果 [平均房客人數] 變數傳回除以零 (#DIV/0) 的錯誤,If IsError([平均房客人數]) Then "錯誤"
Else "無錯誤" 會傳回「錯誤」。
相關主題
•
6.1.7.4 IsLogical
124 2013-09-19
函式、運算子和關鍵字
描述
判斷值是否為布林值
函式群組
邏輯
語法 bool IsLogical(obj)
輸入
參數 obj
描述
任何報表物件
類型
報表物件
必要
是
附註
• IsLogical 會傳回布林值,以便讓您在 If 函式中使用。
• 如果您將 IsLogical 直接放入資料行中,則該函式會傳回整數 (1 = True;0 = False)。您可以利
用布林值數字格式,將此整數格式化。
範例
IsLogical(IsString([國家])) 會傳回 True。
如果國家具有布林值以外的任何資料類型,IsLogical([國家]) 會傳回 False。
If IsLogical(IsDate([國家])) Then "布林值" Else "非布林值" 會傳回「布林值」。
相關主題
•
6.1.7.5 IsNull
描述
判斷值是否為 Null
函式群組
邏輯
語法 bool IsNull(obj)
125 2013-09-19
函式、運算子和關鍵字
輸入
參數 obj
描述
任何報表物件
類型
報表物件
必要
是
附註
• IsNull 會傳回布林值,以便讓您在 If 函式中使用。
• 如果您將 IsNull 直接放入資料行中,則該函式會傳回整數 (1 = True;0 = False)。您可以利用
布林值數字格式,將此整數格式化。
範例
如果 [收入] 變數不是 Null,IsNull([收入]) 會傳回 False。
如果 [平均房客人數] 變數是 Null,IsNull([平均房客人數]) 會傳回 True。
相關主題
•
6.1.7.6 IsNumber
126
描述
判斷值是否為數字
函式群組
邏輯
語法 bool IsNumber(obj)
輸入
參數 obj
描述
任何報表物件
類型
報表物件
必要
是
附註
• IsNumber 會傳回布林值,以便讓您在 If 函式中使用。
• 如果您將 IsNumber 直接放入資料行中,則該函式會傳回整數 (1 = True;0 = False)。您可以利
用布林值數字格式,將此整數格式化。
2013-09-19
函式、運算子和關鍵字
範例
如果 [收入] 變數為數字,IsNumber([收入]) 會傳回 True。
如果 [客戶姓名] 變數不是數字,IsNumber([客戶姓名]) 會傳回 False。
如果 [客戶姓名] 變數不是數字,If IsNumber([客戶姓名]) Then "數字" Else "不是數字" 會傳回
「不是數字」。
相關主題
•
6.1.7.7 IsString
描述
判斷值是否為字串
函式群組
邏輯
語法 bool IsString(obj)
輸入
參數 obj
描述
任何報表物件
類型
報表物件
必要
是
附註
• IsString 會傳回布林值,以便讓您在 If 函式中使用。
• 如果您將 IsString 直接放入資料行中,則該函式會傳回整數 (1 = True;0 = False)。您可以利
用布林值數字格式,將此整數格式化。
範例
如果 [收入] 變數不是字串,IsString([收入]) 會傳回 False。
如果 [客戶姓名] 變數為字串,IsString([客戶姓名]) 會傳回 True。
如果 [客戶名稱] 變數為字串,If IsString([客戶名稱]) Then "字串" Else "非字串" 會傳回「字
串」。
127 2013-09-19
函式、運算子和關鍵字
相關主題
•
6.1.7.8 IsTime
描述
判斷變數是否為時間變數。
函式群組
邏輯
語法 bool IsTime(obj)
輸入
參數 obj
描述
任何報表物件
類型
報表物件
必要
是
附註
• IsTime 會傳回布林值,以便讓您在 If 函式中使用。
• 如果您將 IsTime 直接放入資料行中,則該函式會傳回整數 (1 = True;0 = False)。您可以利用
布林值數字格式,將此整數格式化。
範例
如果 [訂房時間] 變數為時間變數,IsTime([訂房時間]) 會傳回 True。
如果 [平均房客人數] 變數為時間變數,IsTime([平均房客人數]) 會傳回 False。
如果 [平均房客人數] 不是時間變數,If IsTime([平均房客人數]) Then "時間" Else "不是時間" 會
傳回「不是時間」。
相關主題
•
6.1.7.9 Odd
128 2013-09-19
函式、運算子和關鍵字
描述
判斷一個數是否為奇數
函式群組
邏輯
語法 bool Odd(number)
輸入
參數 number
描述
任何數字
類型
數字
必要
是
附註
• Odd 會傳回一個布林值,以便讓您在 If 函式中使用。
• 如果您將 Odd 直接放入資料行中,則該函式會傳回整數 (1 = True;0 = False)。您可以利用布林
值數字格式,將此整數格式化。
• Odd 會忽略小數點數字的小數部份。
範例
Odd(5) 會傳回 True。
Odd(4) 會傳回 False。
Odd(23.2) 會傳回 True。
Odd(24.2) 會傳回 True。
Odd(-23.2) 會傳回 True。
Odd(-24.2) 會傳回 True。
相關主題
•
6.1.8 數值函式
129 2013-09-19
函式、運算子和關鍵字
6.1.8.1 Abs
描述
傳回數字的絕對值
函式群組
數值
語法 num Abs(number)
輸入
參數 number
範例
Abs(25) 會傳回 25。
Abs(-11) 會傳回 11。
描述
任何數字
6.1.8.2 Ceil
描述
傳回捨位至最接近整數的數字
函式群組
數值
語法 num Ceil(number)
類型
數字
必要
是
130 2013-09-19
函式、運算子和關鍵字
輸入
參數 number
範例
Ceil(2.4) 會傳回 3。
Ceil(3.1) 會傳回 4。
Ceil(-3.1) 會傳回 -3。
描述
任何數字
6.1.8.3 Cos
類型
數字
描述
傳回角度的餘弦值
函式群組
數值
語法 num Cos(angle)
輸入
參數 angle
範例
Cos(180) 會傳回 -0.6。
描述
以弧度為單位的角度
類型
數字
6.1.8.4 EuroConvertFrom
描述
將歐元金額換算為其他貨幣金額
131
必要
是
必要
是
2013-09-19
函式、運算子和關鍵字
132
函式群組
數值
語法 num EuroConvertFrom(euro_amount;curr_code;round_level)
輸入
參數 noneuro_amount curr_code round_level
描述
歐元金額
目標貨幣的 ISO 代碼
將結果捨入到小數位數
類型
數字
字串
數字
必要
是
是
是
ESP
FRF
IEP
ITL
BEF
DEM
GRD
LUF
NLG
ATS
PTS
FIM
附註
貨幣代碼必須是 12 個歐盟貨幣之一的代碼,因為在 2002 年 1 月廢止這些貨幣之前,其幣值與歐元
保持固定的關係。如果不是,則函式會傳回 #ERROR。 貨幣為:
比利時法郎
德國馬克
希臘德拉克馬
西班牙比塞塔
法國法郎
愛爾蘭磅
義大利里拉
盧森堡法郎
荷蘭盾
奧地利先令
葡萄牙埃斯庫多
芬蘭馬克
範例
EuroConvertFrom(1000;"FRF";2) 會傳回 6559.57。
EuroConvertFrom(1000;"FRF";1) 會傳回 6559.60。
EuroConvertFrom(1000.04;"DEM";2) 會傳回 1955.83。
EuroConvertFrom(1000.04;"DEM";1) 會傳回 1955.80。
2013-09-19
函式、運算子和關鍵字
相關主題
•
目前有多數函式皆包含可以決定函式傳回值的捨入或截斷程度的參數。
6.1.8.5 EuroConvertTo
133
描述
將金額換算為歐元
函式群組
數值
語法 num EuroConvertTo(noneuro_amount;curr_code;round_level)
輸入
參數 noneuro_amount curr_code round_level
描述
將結果捨入到小數位數
類型
非歐元貨幣的金額 數字
非歐元貨幣的 ISO 代碼 字串
數字
必要
是
是
是
範例
EuroConvertTo(6559;"FRF";2) 會傳回 999.91。
EuroConvertTo(6559;"FRF";1) 會傳回 999.90。
EuroConvertTo(1955;"DEM";2) 會傳回 999.58。
EuroConvertTo(1955;"DEM";1) 會傳回 999.60。
附註
貨幣代碼必須是 12 個歐盟貨幣之一的代碼,因為在 2002 年 1 月廢止這些貨幣之前,其幣值與歐元
保持固定的關係。如果不是,則函式會傳回 #ERROR。 貨幣為:
BEF
DEM
比利時法郎
德國馬克
2013-09-19
函式、運算子和關鍵字
IEP
ITL
LUF
NLG
GRD
ESP
FRF
ATS
PTS
FIM
希臘德拉克馬
西班牙比塞塔
法國法郎
愛爾蘭磅
義大利里拉
盧森堡法郎
荷蘭盾
奧地利先令
葡萄牙埃斯庫多
芬蘭馬克
相關主題
•
目前有多數函式皆包含可以決定函式傳回值的捨入或截斷程度的參數。
6.1.8.6 EuroFromRoundError
描述
傳回從歐元換算的捨位錯誤
函式群組
數值
語法 num EuroFromRoundError(euro_amount;curr_code;round_level)
134 2013-09-19
函式、運算子和關鍵字
135
輸入
參數 noneuro_amount curr_code round_level
描述
歐元金額
目標貨幣的 ISO 代碼
將結果捨入到小數位數
類型
數字
字串
數字
必要
是
是
是
ESP
FRF
IEP
ITL
BEF
DEM
GRD
LUF
NLG
ATS
PTS
FIM
輸出
計算中的捨位錯誤
範例
EuroFromRoundErr(1000;"FRF";2) 會傳回 0。(未捨入的轉換與捨入到兩個小數位數的轉換之間沒有差
異)。
EuroFromRoundErr(1000;"FRF";1) 會傳回 0.03。(未捨入的轉換值為 6559.57。捨入到一個小數位數
的轉換值為 6559.60。捨入錯誤為 0.03。)
EuroFromRoundErr(1000;"DEM";2) 會傳回 0。(未捨入的轉換與捨入到兩個小數位數的轉換之間沒有差
異)。
EuroFromRoundErr(1000;"DEM";1) 會傳回 -0.01。(未捨入的轉換值為 1955.83。捨入到一個小數位數
的轉換值為 1995.80。捨入錯誤為 -0.03。)
附註
貨幣代碼必須是 12 個歐盟貨幣之一的代碼,因為在 2002 年 1 月廢止這些貨幣之前,其幣值與歐元
保持固定的關係。如果不是,則函式會傳回 #ERROR。 貨幣為:
比利時法郎
德國馬克
希臘德拉克馬
西班牙比塞塔
法國法郎
愛爾蘭磅
義大利里拉
盧森堡法郎
荷蘭盾
奧地利先令
葡萄牙埃斯庫多
芬蘭馬克
2013-09-19
函式、運算子和關鍵字
相關主題
•
目前有多數函式皆包含可以決定函式傳回值的捨入或截斷程度的參數。
6.1.8.7 EuroToRoundError
136
描述
傳回換算為歐元的捨位錯誤
函式群組
數值
語法 num EuroToRoundError(noneuro_amount;curr_code;round_level)
輸入
參數 noneuro_amount curr_code round_level
描述
將結果捨入到小數位數
類型
非歐元貨幣的金額 數字
非歐元貨幣的 ISO 代碼 字串
數字
必要
是
是
是
範例
EuroToRoundErr(6559;"FRF";2) 會傳回 0。(未捨入的轉換與捨入到兩個小數位數的轉換之間沒有差
異)。
EuroToRoundErr(6559;"FRF";1) 會傳回 -0.01。(未捨入的轉換值為 999.91。捨入到一個小數位數的
轉換值為 999.90。捨入錯誤為 -0.01。)
EuroToRoundErr(1955;"DEM";2) 會傳回 0。(未捨入的轉換與捨入到兩個小數位數的轉換之間沒有差
異)。
EuroToRoundErr(1955;"DEM";1) 會傳回 0.02。(未捨入的轉換值為 999.58。捨入到一個小數位數的轉
換值為 999.60。捨入錯誤為 0.02。)
附註
貨幣代碼必須是 12 個歐盟貨幣之一的代碼,因為在 2002 年 1 月廢止這些貨幣之前,其幣值與歐元
保持固定的關係。如果不是,則函式會傳回 #ERROR。 貨幣為:
2013-09-19
函式、運算子和關鍵字
ESP
FRF
IEP
ITL
BEF
DEM
GRD
LUF
NLG
ATS
PTS
FIM
比利時法郎
德國馬克
希臘德拉克馬
西班牙比塞塔
法國法郎
愛爾蘭磅
義大利里拉
盧森堡法郎
荷蘭盾
奧地利先令
葡萄牙埃斯庫多
芬蘭馬克
相關主題
•
目前有多數函式皆包含可以決定函式傳回值的捨入或截斷程度的參數。
6.1.8.8 Exp
描述
傳回指數 (e 的乘方)
函式群組
數值
語法 num Exp(power)
137 2013-09-19
函式、運算子和關鍵字
輸入
參數 power
描述
乘方
附註
指數是常數 e (2.718...) 的乘方。
範例
Exp(2.2) 會傳回 9.03。
6.1.8.9 Fact
類型
數字
描述
傳回數字的乘階
函式群組
數值
語法 int Fact(number)
輸入
參數 number
描述
任何數字
附註 number 的乘階是所有 1 到 number 整數的乘積。
範例
Fact(4)會傳回 24。
Fact(5.9) 會傳回 120。
類型
數字
6.1.8.10 Floor
138
必要
是
必要
是
2013-09-19
函式、運算子和關鍵字
描述
傳回捨位至最接近整數的數字
函式群組
數值
語法 int Floor(number)
輸入
參數 number
描述
任何數字
範例
Floor(24.4) 會傳回 24。
6.1.8.11 Interpolation
描述
依據插補法計算空白計量值
函式群組
數值
語法 num Interpolation(measure[;PointToPoint|Linear]
[;NotOnBreak|(reset_dims)][;Row|Col])
類型
數字
必要
是
139 2013-09-19
函式、運算子和關鍵字
輸入
參數 measure
PointTo-
Point|Linear
描述
任何計量
類型
計量
關鍵字
必要
是
插補法:
• PointToPoint - 點對點插補
• Linear - 含最小平方插補的線性迴歸
否
(PointToPoint 為預
設值)
NotOnBreak| reset_dims
• NotOnBreak - 避免函式重設分區塊和分
區段符號的計算
• reset_dims - 用於重設插補的維度清單
Keyword| dimension list
否
Row|Col 設定計算方向 關鍵字
(預設為 Row)
日
星期一
星期二
星期三
星期四
星期五
星期六
星期日
附註
• Interpolation 非常適合用來建立包含遺漏值計量相關的線性圖。使用此函式可以確定圖形是由連
續的線構成,而非中斷的線和點。
• 含最小平方插補法的線性迴歸會以 f(x) = ax + b 形式計算盡可能接近通過所有計量值的線方程
式,計算遺漏的值。
• 點對點插補法會以 f(x) = ax + b 形式計算通過遺漏值的兩個鄰接值的線方程式,計算遺漏的值。
• 計量的排序順序會影響由 Interpolation 傳回的值。
• 您無法將排序或排名套用在一個包含 Interpolation 的公式上。
• 如果值清單中只有一個值,Interpolation 會使用此值提供所有遺漏值。
• 套用至插補計量的篩選器可以變更由 Interpolation 傳回的值 (依據篩選器影響的值而定)。
範例
Interpolation([Value]) 使用預設點對點插補方法提供下列遺漏值:
值
12
14
16
19
Interpolation([Value])
12
14
15
16
17
18
19
140 2013-09-19
函式、運算子和關鍵字
相關主題
•
Linear 運算子使用 Interpolation 函式。
•
PointToPoint 運算子告訴 Interpolation 函式使用點到點插補來提供遺失的計量值。
6.1.8.12 Ln
描述
傳回數字的自然對數
函式群組
數值
語法 num Ln(number)
輸入
參數 number
範例
Ln(10) 會傳回 2。
描述
任何數字
6.1.8.13 Log
描述
傳回一個數字的指定基準對數
函式群組
數值
141
類型
數字
必要
是
2013-09-19
函式、運算子和關鍵字
語法 num Log(number;base)
輸入
參數 number base
範例
Log(125;5) 會傳回 3。
描述
任何數字
對數的基礎
6.1.8.14 Log10
類型
數字
數字
描述
傳回數字的基準 10 對數
函式群組
數值
語法 num Log10(number)
輸入
參數 number
描述
任何數字
範例
Log10(100) 會傳回 2。
6.1.8.15 Mod
類型
數字
必要
是
是
必要
是
142 2013-09-19
函式、運算子和關鍵字
描述
傳回兩個數字之除數的所有餘數
函式群組
數值
語法 num Mod(dividend;divisor)
輸入
參數 dividend divisor
描述
被除數
除數
範例
Mod(10;4) 會傳回 2。
Mod (10.2;4.2) 會傳回 1.8。
6.1.8.16 Power
類型
數字
數字
描述
傳回乘方的數字
函式群組
數值
語法 num Power(number;power)
輸入
參數 number power
範例
Power(10;2) 會傳回 100。
描述
乘方的數字
乘方
類型
數字
數字
143
必要
是
是
必要
是
是
2013-09-19
函式、運算子和關鍵字
6.1.8.17 Rank
144
描述
依照維度排名計量
函式群組
數值
語法 int Rank(measure;[ranking_dims][;Top|Bottom][;(reset_dims)])
輸入
參數 measure ranking_dims
Top|Bottom
描述
要排名的計量
用來排名計量的維度
設定排名順序:
• Top - 遞減
• Bottom - 遞增 reset_dims 重設排名的維度
類型
計量
維度清單
關鍵字
維度清單
附註
• 如果您並未指定排名維度,則函式將使用預設計算內容來計算排名。
• 您必須永遠把維度放在括號裡,即使排名清單或重設維度裡只有一個維度。
• 當您指定一組排名或重設維度時,必須以分號分隔。
• 根據預設,排名會在區段或區塊分割上重設。
範例
下列的表格裡,該排名是由 Rank([收入];([國家])) 產生:
國家
法國
美國
收入
835,420
2,451,104
排名
2
1
必要
是
否
否 (Top 是預設值)
否
下列的表格裡,該排名是由 Rank([收入];([國家]);Bottom) 產生。Bottom 引數表示該計量以遞減順
序來排名。
2013-09-19
函式、運算子和關鍵字
國家
法國
美國
收入
835,420
2,451,104
下列表格裡,該排名是由 Rank([收入];([國家];[度假勝地])) 產生:
國家
法國
美國
美國
度假勝地
法國里維耶拉
巴哈馬海灘
夏威夷俱樂部
收入
835,420
971,444
1,479,660
排名
1
2
排名
3
2
1
國家
法國
法國
法國
美國
美國
美國
下列的表格裡,該排名是由 Rank([收入];([國家];[度假勝地];[年]);([國家])) 產生。該排名會以國
家維度重新設定。
年
FY1998
FY1999
FY2000
FY1998
FY1999
FY2000
收入
295,940
280,310
259,170
767,614
826,930
856,560
3
2
1
2
3
排名
1
相關主題
•
Bottom/Top 運算子使用 Rank 函式。
6.1.8.18 Round
145 2013-09-19
函式、運算子和關鍵字
描述
四捨五入一個數字
函式群組
數值
語法 num Round (number;round_level)
輸入
參數 number round_level
描述
要捨入的數字
將數字捨入到小數位數
類型
數字
數字
必要
是
是
範例
Round(9.44;1) 會傳回 9.4。
Round(9.45;1) 會傳回 9.5。
Round(9.45;0) 會傳回 9。
Round(9.45;-1) 會傳回 10。
Round(4.45;-1) 會傳回 0。
相關主題
•
目前有多數函式皆包含可以決定函式傳回值的捨入或截斷程度的參數。
6.1.8.19 Sign
描述
傳回數字的正負號
函式群組
數值
語法 int Sign(number)
146 2013-09-19
函式、運算子和關鍵字
輸入
參數 number
描述
任何數字
類型
數字
必要
是
附註
Sign 會傳回 -1,如果 number 是負數;會傳回 0,如果 number 是零;會傳回 1,如果 number 是正
數。
範例
Sign(3) 會傳回 1。
Sign(-27.5) 會傳回 -1。
6.1.8.20 Sin
描述
傳回角度的正弦值
函式群組
數值
語法 num Sin(angle)
輸入
參數 angle
描述
以弧度為單位的角度
範例
Sin(234542) 會傳回 -0,116992。
類型
數字
6.1.8.21 Sqrt
必要
是
147 2013-09-19
函式、運算子和關鍵字
描述
傳回數字的平方根
函式群組
數值
語法 num Sqrt(number)
輸入
參數 number
範例
Sqrt(25) 會傳回 5。
描述
任何數字
6.1.8.22 Tan
類型
數字
描述
傳回角度的正切值
函式群組
數值
語法 num Tan(angle)
輸入
參數 angle
範例
Tan(90) 會傳回 -2。
描述
以弧度為單位的角度
類型
數字
148
必要
是
必要
是
2013-09-19
函式、運算子和關鍵字
6.1.8.23 ToNumber
描述
將字串傳回成數字
函式群組
數值
語法 num ToNumber(string)
輸入
參數 string
描述
數字做為字串
附註
如果 string 不是數字,ToNumber 會傳回 #ERROR。
範例
ToNumber("45") 會傳回 45。
類型
字串
6.1.8.24 Truncate
描述
截斷數字
函式群組
數值
語法 num Truncate(number;truncate_level)
149
必要
是
2013-09-19
函式、運算子和關鍵字
輸入
參數 number truncate_level
描述
要捨入的數字
數字截斷的小數位數
類型
數字
數字
必要
是
是
附註
範例
Truncate(3.423;2) 會傳回 3.42。
相關主題
•
目前有多數函式皆包含可以決定函式傳回值的捨入或截斷程度的參數。
6.1.9 集合函式
6.1.9.1 Children
描述
傳回成員的子成員
函式群組
集合
語法 member_set member.Children
150 2013-09-19
函式、運算子和關鍵字
輸入
參數 member
描述
任何成員
類型
成員
必要
是
附註
• Children 不作為獨立函式使用,而是用於彙總函式內用於指定需彙總成員集合的輸入參數中。
• member 是明確指定的成員,或是階層的目前成員。如果要明確指定成員,則必須指定在階層中的完
整路徑。如果您指定階層,且階層不在公式的內容中,則公式會傳回空白值。
範例
[地理區].[美國].[加州].Children 會傳回 [洛杉磯]、[舊金山]、[聖地牙哥]。
如果 [加州] 是 [地理區] 階層中的目前成員,則 [地理區].Children 會傳回 [洛杉磯]、[舊金山]、
[聖地牙哥]。
相關主題
•
•
•
•
•
•
6.1.9.2 Depth
描述
傳回階層中成員的深度。
函式群組
集合
語法 int member.Depth
151 2013-09-19
函式、運算子和關鍵字
輸入
參數 member
描述
任何成員
類型
成員
必要
是
附註
• 深度是指成員與階層最上層的距離。
• 階層的最上層是層級 0。
• member 是明確指定的成員,或是階層的目前成員。如果要明確指定成員,則必須指定在階層中的完
整路徑。如果您指定階層,且階層不在公式的內容中,則公式會傳回空白值。
範例
[地理區].[美國].[加州].[洛杉磯].Depth 會傳回 2。
6.1.9.3 Descendants
152
描述
傳回成員的子代成員
函式群組
集合
語法 member_set Descendants(member[;level|distance][;desc_flag])
輸入
參數 member level
描述
任何成員
子代的層級
類型
成員
層級 distance 目前層級與子代層級的距
離 int
確定將傳回的子代成員 關鍵字
必要
是
否 (預設值為 member 層
級)
否 (預設值為 member 層
級)
否 (預設值為 Self) desc_flag
附註
• Descendants 不作為獨立函式使用。而是用於彙總函式內用於指定需彙總成員集合的輸入參數中。
• member 是明確指定的成員,或是階層的目前成員。如果要明確指定成員,則必須指定在階層中的完
整路徑。如果您指定階層,且階層不在公式的內容中,則公式會傳回空白值。
2013-09-19
函式、運算子和關鍵字
153
• desc_flag 中的 Self 參照 level|distance 參數指定的層級。
• desc_flag 中的 Before 參照 level|distance 參數指定層級以上的所有層級。
• desc_flag 中的 After 參照 level|distance 參數指定層級以下的所有層級。
• desc_flag 的值如下:
Self
Before
After
Self_Before
Self_After
Before_After
Self_Before_After
Leaves
傳回 level|distance 參數指定層級的子代,包括在此層級的目
前成員。
傳回 level|distance 參數指定層級以上的目前成員和所有子代。
傳回 level|distance 參數指定層級以下的子代。
傳回 level|distance 參數指定層級及該層級以上的目前成員和
所有子代。
傳回 level|distance 參數指定層級及該層級以下的目前成員和
所有子代。
傳回除 level|distance 參數指定層級外的目前成員和所有子代。
傳回目前成員和所有子代。
傳回介於目前成員與 level|distance 參數指定且沒有子成員的
層級之間的所有成員。
• distance 必須為正數。
範例
所有的範例皆以下列資料為基礎:
美國
洛杉磯
加州
聖地牙哥 舊金山 拉斯維加斯
內華達
雷諾市 卡森市
Descendants([地理區].[美國].[加州];[地理區]。[城市]) 會傳回 [San Francisco]、[San Diego]
和 [洛杉磯]。
如果目前的成員是 [美國],則 Descendants([地理區];1) 會傳回 [加州]、[內華達]。
Descendants([地理區].[美國];2;Before) 會傳回 [美國]、[加州]、[內華達]。
Descendants([地理區].[美國];[地理區].[城市],Self_Before) 會傳回 [美國]、[加州]、[內華達]、
[舊金山]、[聖地牙哥]、[洛杉磯]、[拉斯維加斯]、[雷諾市]、[卡森市]。
如果目前的成員是 [美國],則 Descendants([地理區];[地理區].[州];After) 會傳回 [舊金山]、[聖
地牙哥]、[洛杉磯]、[拉斯維加斯]、[雷諾市]、[卡森市]。
如果目前的成員是 [美國],則 Descendants([地理區];1;Self_After) 會傳回 [美國]、[加州]、[內
華達]、[舊金山]、[聖地牙哥]、[洛杉磯]、[拉斯維加斯]、[雷諾市]、[卡森市]。
2013-09-19
函式、運算子和關鍵字
Descendants([地理區].[美國];[地理區].[州];Before_After) 會傳回 [美國]、[舊金山]、[聖地牙
哥]、[洛杉磯]、[拉斯維加斯]、[雷諾市]、[卡森市]。
Descendants([地理區].[美國];[地理區].[州];Self_Before_After) 會傳回 [美國]、[加州]、[內華
達]、[舊金山]、[聖地牙哥]、[洛杉磯]、[拉斯維加斯]、[雷諾市]、[卡森市]。
Descendants([地理區].[美國];[地理區].[城市];Leaves) 會傳回 [舊金山]、[聖地牙哥]、[洛杉磯]、
[拉斯維加斯]、[雷諾市]、[卡森市]。
相關主題
•
•
•
•
•
•
6.1.9.4 IsLeaf
描述
判斷成員是否為分葉成員
函式群組
雜項
語法 bool member.IsLeaf
輸入
參數 member
描述
任何成員
類型
成員
必要
是
附註
• 分葉成員係指沒有任何子成員的成員。
• member 是明確指定的成員,或是階層的目前成員。如果要明確指定成員,則必須指定在階層中的完
整路徑。如果您指定階層,且階層不在公式的內容中,則公式會傳回空白值。
154 2013-09-19
函式、運算子和關鍵字
範例
如果 [加州] 擁有子成員 [洛杉磯]、[聖地牙哥]、[舊金山],則 [地理區].[美國].[加州].IsLeaf 會
傳回 False。
如果 [地理區] 階層的目前成員是 [內華達] 且 [內華達] 沒有子成員,則 [地理區].IsLeaf 會傳回
True。
6.1.9.5 Key
描述
傳回成員的索引鍵
語法 string member.Key
函式群組
集合
輸入
參數 member
描述
任何成員
類型
成員
必要
是
附註
• 索引鍵是成員的內部識別碼。
• member 是明確指定的成員,或是階層的目前成員。如果要明確指定成員,則必須指定在階層中的完
整路徑。如果您指定階層,且階層不在公式的內容中,則公式會傳回空白值。
範例
如果 [美國] 成員的索引鍵是「XYZ」,則 [地理區].[美國].Key 會傳回「XYZ」。
6.1.9.6 Lag
155 2013-09-19
函式、運算子和關鍵字
描述
傳回與目前成員層級相同且位於其之前特定距離的成員。
語法 member member.Lag(distance)
函式群組
集合
輸入
參數 member distance
描述
任何成員
目前成員與成員的距離
類型
成員 int
必要
是
是
附註
• Lag 不作為獨立函式使用,而是用於彙總函式內用於指定需彙總成員集合的輸入參數中。
• 如果 distance 為正,Lag 傳回 distance 位於 member 之前的成員。如果 distance 為負,Lag
傳回 distance 位於 member 之後的成員。
• member 是明確指定的成員,或是階層的目前成員。如果要明確指定成員,則必須指定在階層中的完
整路徑。如果您指定階層,且階層不在公式的內容中,則公式會傳回空白值。
• Lag 使用階層和查詢中的成員順序以傳回相關的成員。
範例
如果 [聖地牙哥] 是 [城市] 層級中 [舊金山] 的前一個成員,則 [地理區].[美國].[加州].[舊金
山].Lag(1) 會傳回 [聖地牙哥]。
相關主題
•
•
•
•
•
•
6.1.9.7 Parent
156 2013-09-19
函式、運算子和關鍵字
描述
傳回成員的父成員
函式群組
集合
語法 member member.Parent
輸入
參數 member
描述
任何成員
類型
成員
必要
是
附註
• Parent 不作為獨立函式使用,而是用於彙總函式內用於指定需彙總成員集合的輸入參數中。
• member 是明確指定的成員,或是階層的目前成員。如果要明確指定成員,則必須指定在階層中的完
整路徑。如果您指定階層,且階層不在公式的內容中,則公式會傳回空白值。
範例
[地理區].[美國].[加州].[洛杉磯].Parent 會傳回 [加州]。
相關主題
•
•
•
•
•
•
6.1.9.8 Siblings
描述
傳回成員和該成員的同層級成員。
函式群組
集合
157 2013-09-19
函式、運算子和關鍵字
語法 member_set member.Siblings
輸入
參數 member
描述
任何成員
類型
成員
必要
是
附註
• Siblings 不作為獨立函式使用。而是用於彙總函式內用於指定需彙總成員集合的輸入參數中。
• member 是明確指定的成員,或是階層的目前成員。如果要明確指定成員,則必須指定在階層中的完
整路徑。如果您指定階層,且階層不在公式的內容中,則公式會傳回空白值。
• 同層級成員是指具有相同層級且與 member 具有相同父系的成員。
範例
如果 [內華達] 和 [亞利桑那州] 與 [加州] 具有相同層級,[地理區].[美國].[加州].Siblings 會傳
回 [內華達]、[亞利桑那州]。
相關主題
•
•
•
•
•
•
6.1.10 雜項函式
6.1.10.1 Ancestor
描述
傳回成員的祖系成員
158 2013-09-19
函式、運算子和關鍵字
函式群組
雜項
語法 member Ancestor(member;level|distance)
輸入
參數 member level distance
描述
任何成員
祖系的層級
類型
成員
層級
目前層級與祖系層級的
距離 int
必要
是 level 或 distance 為必要
項目 level 或 distance 為必要
項目
附註
• Ancestor 不作為獨立函式使用,而是用於彙總函式內用於指定需彙總成員集合的輸入參數中。
• member 是明確指定的成員,或是階層的目前成員。如果要明確指定成員,則必須指定在階層中的完
整路徑。如果您指定階層,且階層不在公式的內容中,則公式會傳回空白值。
• distance 必須為正數。
範例
所有的範例皆以 [地理區] 階層 (國家 > 州 > 城市) 為基礎。 下表顯示階層中的資料子集。
美國
洛杉磯
加州
聖地牙哥 舊金山 拉斯維加斯
內華達
雷諾市 卡森市
Ancestor([地理區].[美國].[加州].[洛杉磯];1) 會傳回 [加州]。
如果目前的成員是 [聖地牙哥],則 Ancestor([地理區];[地理區].[州]) 會傳回 [加州]。
相關主題
•
•
•
•
•
•
159 2013-09-19
函式、運算子和關鍵字
6.1.10.2 BlockName
描述
傳回區塊名稱
函式群組
雜項
語法
字串 BlockName()
範例
如果將 BlockName() 置於稱為 「Block1」的區塊中,將會傳回「Block1」。
6.1.10.3 ColumnNumber
描述
傳回資料行數
函式群組
雜項
語法 int ColumnNumber()
範例
如果公式是放在表格的第二個資料行,ColumnNumber() 會傳回 2。
6.1.10.4 CurrentUser
160 2013-09-19
函式、運算子和關鍵字
描述
傳回目前使用者的 BI Launch Pad 登入
函式群組
雜項
語法 string CurrentUser()
範例
如果目前使用者的登入是「gkn」,則 CurrentUser() 會傳回「gkn」。
6.1.10.5 ForceMerge
161
描述
當維度不包含在計量的計算內容中時,在計量計算中包含同步化維度
函式群組
雜項
語法 num ForceMerge(measure)
輸入
參數 measure
描述
任何計量
類型
計量
必要
是
輸出
將會考慮含同步化維度的計算結果
附註
• 如果群組集合需要計算並不存在的智慧型計量,則將 ForceMerge 套用至智慧型計量後,將會傳回
#MULTIVALUE
• ForceMerge 函式等效於 BusinessObjects/Desktop Intelligence 中的 Multicube 函式。
2013-09-19
函式、運算子和關鍵字
範例
ForceMerge([收入]) 會傳回 [收入] 值,並會考慮任何未在相同區塊中顯示成 [收入] 計量的同步化
維度。
6.1.10.6 GetContentLocale
描述
傳回文件所含資料的地區設定 (文件地區設定)
函式群組
雜項
語法 string GetContentLocale()
附註
文件地區設定用於為文件中的資料設定格式。
範例
如果文件地區設定是「French (France)」,則 GetContentLocale() 會傳回 「fr_FR」。
6.1.10.7 GetDominantPreferredViewingLocale
描述
在使用者的慣用檢視地區設定群組中傳回主要地區設定
函式群組
雜項
語法 string GetDominantPreferredViewingLocale()
162 2013-09-19
函式、運算子和關鍵字
附註
• 每一個相關地區設定的群組都有一個主要地區設定,作為該群組中所有其他地區設定的基礎。例如,
美式英文 (「en_US」) 是「英文」地區設定群組的主要地區設定。紐西蘭式英文 (「en_NZ」) 也
是此群組的成員。
• 《Translation Manager 指南》列出所有主要慣用的檢視地區設定。
範例
當慣用的檢視地區設定是「English (New Zealand)」時,GetDominantPreferredViewingLocale 會傳
回 「en_US」。
相關主題
•
第 164 頁的「 GetPreferredViewingLocale 」
6.1.10.8 GetLocale
描述
傳回使用者用來設定使用者介面格式的地區設定 (產品地區設定)。
函式群組
雜項
語法 string GetLocale()
附註
產品地區設定是使用者介面 (例如功能表項目與按鈕文字) 的地區設定。
範例
如果使用者的產品地區設定是「English (US)」,則 GetLocale() 會傳回「en_US」。
6.1.10.9 GetLocalized
163 2013-09-19
函式、運算子和關鍵字
描述
根據使用者的慣用檢視地區設定傳回當地語系化的字串
語法 string GetLocalized(string[;comment])
輸入
參數 string comment
描述
要翻譯的字串
可幫助翻譯人員的註解
類型
字串
字串
必要
是
否
附註
• string 參數可以是任何公式中的字串 (例如:儲存格的警訊器訊息或變數定義)。
• 設計報表時,您可以使用 comment 參數提供進一步的資訊,來協助翻譯人員翻譯字串。註解會連同
字串一起出現在翻譯人員用來翻譯報表的 Translation Manager 工具中。
• 每一組 string + comment 都會在 Translation Manager 工具中產生要翻譯的個別字串。因此,
GetLocalized("產品總計";"上限 20 個字元") 和 GetLocalized("產品總計";"不要使用超過 20
個字元") 可能會傳回不同的翻譯。
範例
如果慣用檢視地區設定為「fr_FR",則 GetLocalized("所有產品總計") 會傳回「所有產品總計」的法
文翻譯。
如果慣用的檢視地區設定是「de_DE」,則 GetLocalized("所有產品總計";"嘗試使用 20 個以內的字
元") 會傳回「所有產品總計」的德文翻譯。此函式也會告訴報表翻譯人員,在翻譯字串時儘可能不要
使用超過 20 個字元。
相關主題
•
第 164 頁的「 GetPreferredViewingLocale 」
6.1.10.10 GetPreferredViewingLocale
描述
傳回用於檢視文件資料的使用者慣用地區設定 (慣用的檢視地區設定)
函式群組
雜項
164 2013-09-19
函式、運算子和關鍵字
語法 string GetPreferredViewingLocale()
範例
如果慣用檢視地區設定為「English (US)」,則 GetPreferredViewingLocale 會傳回 「en_US」。
相關主題
•
•
第 162 頁的「 GetDominantPreferredViewingLocale 」
6.1.10.11 If...Then...Else
165
描述
傳回根據運算式為 True 或 False 的值
函式群組
雜項
語法
If bool_value Then true_value [Else false_value]
輸入
參數 bool_value true_value false_value
描述
布林值
類型
布林值 bool_value 為 True 時
傳回的值
任何 bool_value 為 False
時傳回的值
任何
必要
是
是
如果包含 Else,則會傳
回 Yes
附註
• true_value 與 false_value 可以混合資料類型。
• 您可以將布林運算子 And、Between、InList、Or 和 Not 用於 If 函式中。
• 您可以使用 ElseIf 子句取代任何 Else 子句,以巢狀處理 If 條件。此語法會描述一層巢狀結構:
If bool_value Then true_value [ElseIf bool_value Then true_value Else false_value…]
• 同時也支援 If 函式的原始語法:If(bool_value;true_value;false_value)。
2013-09-19
函式、運算子和關鍵字
範例
If [營業收入]>1000000 Then "高收入" 會使所有含收入超過 1,000,000 的列傳回「高收入」,而所
有其他列則什麼都沒有。
If [營業收入] >1000000 Then "高收入" Else [收入] 會使所有含收入超過 1,000,000 的列傳回「高
收入」,所有其他列則傳回收入值。
If [營業收入]>1000000 Then "高收入" Else "低收入" 會使所有含收入超過 1,000,000 的列傳回「高
收入」,而含收入低於 1,000,000 的列則傳回「低收入」。
If [營業收入]>1000000 Then "高收入" ElseIf [營業收入] > 800000 Then "中等收入" Else "低收
入" 將使所有含收入高於 1000000 的列傳回「高收入」,所有含收入 800000 至 1000000 之間的列傳
回「中等收入」,而所有其他列則傳回「低收入」。
相關主題
•
•
And 運算子連結布林值。
•
•
•
Or 運算子會連結布林值。
•
6.1.10.12 If
描述
傳回根據運算式為 True 或 False 的值
函式群組
雜項
語法
If(bool_value;true_value;false_value)
166 2013-09-19
函式、運算子和關鍵字
輸入
參數 bool_value true_value false_value
描述
布林值
類型
布林值 bool_value 為 True 時
傳回的值
任何 bool_value 為 False
時傳回的值
任何
必要
是
是
是
附註
• true_value 與 false_value 可以混合資料類型。
• 您可以使用其他的 If 條件取代 false_value,以巢狀處理 If 條件。此語法會顯示一層巢狀結構:
If(bool_value;true_value;If(bool_value;true_value;false_value);false_value)
• 同時也支援 If...Then...Else 語法。
範例
If([營業收入]>1000000;"高收入";"低收入") 會對所有收入大於 1,000,000 的列傳回「高收入」,並
對所有收入小於 1,000,000 的列傳回「低收入」。
If([營業收入]>1000000;"高收入";[收入] 會使所有收入超過 1,000,000 的列傳回「高收入」,所有
其他列則傳回收入值。
相關主題
•
6.1.10.13 LineNumber
描述
傳回表格中的行號。
函式群組
雜項
語法 int LineNumber()
附註
表格內的行號是從頁首開始,頁首為第一行。
167 2013-09-19
函式、運算子和關鍵字
範例
當此函式出現在表格中第二行時,LineNumber() 傳回 2。
6.1.10.14 NameOf
描述
傳回物件的名稱
函式群組
雜項
語法 string NameOf(obj)
輸入
參數 obj
描述
任何報表物件
類型
報表物件
附註
NameOf 函式會出現在報表的資料行和資料列標頭中。
範例
NameOf([訂房日期]) 會傳回「訂房日期」。
6.1.10.15 NoFilter
168
描述
計算值時忽略篩選器
函式群組
雜項
語法 input_type NoFilter(obj[;All|Drill])
必要
是
2013-09-19
函式、運算子和關鍵字
輸入
參數 obj
All|Drill
描述
任何報表物件
• 未指定關鍵字 - 忽略報表和區塊篩選器
• All - 忽略所有篩選器
• Drill - 忽略報表和擷取篩選器
類型
報表物件
關鍵字
必要
是
否
附註
• NoFilter (obj;Drill) 在查詢細目模式中無法運作,因為擷取篩選器是新增至查詢,而非套用至報
表資料。
• 如果您結束擷取模式時套用了擷取篩選器,擷取篩選器會成為報表篩選器,並可以變更任何套用
NoFilter(obj;Drill) 之物件的值。
範例
當置於區塊頁尾時,NoFilter(Sum([銷售收入])) 會傳回區塊中所有可能列的總銷售收入,即使資料列
已被區塊篩除。
NoFilter(Sum([營業收入]);All) 會傳回所有國家 (包括法國) 的營業收入總和,即使篩選器已將法國
從報表篩除。
NoFilter(Sum([營業收入]);Drill) 會傳回所有國家的營業收入總和,即使 [國家] 維度有擷取篩選
器。
6.1.10.16 NumberOfPages
描述
傳回報表的頁數
函式群組
雜項
語法 integer NumberOfPages()
範例
如果報表有兩頁,NumberOfDataPages() 會傳回 2。
169 2013-09-19
函式、運算子和關鍵字
6.1.10.17 Page
描述
傳回報表的目前頁碼
函式群組
雜項
語法 integer Page()
範例
如果目前在報表的第二頁,Page() 會傳回 2。
6.1.10.18 Previous
描述
傳回物件的前一個值
函式群組
雜項
語法 input_type Previous(dimension|measure|Self [;Row|col][;(reset_dims)][;offset][;NoNull])
170 2013-09-19
函式、運算子和關鍵字
輸入
參數 dimension|measure|Self
Row/Col reset_dims offset
NoNull
描述
函式傳回的前一個維度或計量值,
或是 Self 關鍵字
類型
維度、計量或關鍵字 是
設定計算方向
用來重設計算之維度的清單
關鍵字
維度清單
指定 dimension 或目前資料列先前
的 offset 資料列的 measure
Integer
告訴函式傳回從 offset 開始的第
一個非 Null 值
關鍵字
必要
否
否
No (預設值為 1)
否
附註
• offset 的預設值是 1。Previous([收入];1) 和 Previous([收入]) 的功能相同。
• 當您包含 NoNull 引數時,該函式會傳回物件的第一個非 Null 值,並以倒數的順序從儲存格 offset
資料列開始直到目前的資料列。
• 您可以搭配使用 Previous 函式與延伸語法內容運算子。
• Self 運算子讓您可以參考前一個儲存格值,只要該儲存格包含的是內容而不是一個報表物件。
• 您必須永遠把維度放在括號內,即使重設維度清單裡只有一個維度。
• 當您指定一組重設維度時,必須以分號分隔。
• 套用所有報表、區段、區塊篩選器以及所有排序之後,便會接著套用 Previous。
• 您無法在使用 Previous 的公式上套用排序或篩選器。
• 如果 Previous 套用在會傳回未定義值的計量上,即使前一行已傳回值,Previous 也會傳回未定義
的值。
• 當放置在分割表頭或表尾之外時,Previous 會忽略中斷。
• 當放置在分割表尾裡時,Previous 會傳回表尾內前一個個體的值。
• 所有報表區段中的 Previous 皆會重新設定。
• 用於交叉表時,Previous 不會將資料列的最後一個值視為下一列第一個值的前一個值。
範例
Previous([國家];1) 會傳回下列表格:
國家
美國
英國
法國
收入
5,000,000
2,000,000
2,100,000
上一頁
美國
英國
Previous([收入]) 會傳回下列表格裡的值:
國家 收入 上一頁
171 2013-09-19
函式、運算子和關鍵字
172
美國
英國
法國
5,000,000
2,000,000
2,100,000
Previous([收入];([國家]) 會傳回下表的值:
國家
美國
英國
地區
北部
南部
北部
南部
收入
5,000,000
7,000,000
3,000,000
4,000,000
5,000,000
2,000,000
上一頁
5,000,000
3,000,000
Previous([收入]) 會傳回下列交叉表裡的值:
前一個
美國
英國
法國
2004
5,000,000
2,000,000
3,000,000
2005
6,000,000
2,500,000
2,000,000
Previous([收入]) 會傳回下表的值 (以 [國家] 做為分割的依據):
國家
美國
美國
地區
北部
南部
收入
5,000,000
7,000,000
12,000,000
上一頁
5,000,000
2,000,000
3,000,000
上一頁
5,000,000
國家
英國
地區
北部
南部
英國
Previous([收入]);2;NoNull) 會傳回下表的值:
收入
3,000,000
4,000,000
7,000,000
上一頁
7,000,000
3,000,000
12,000,000
2013-09-19
函式、運算子和關鍵字
年
2008
2008
2008
2008
2008
2008
2008
2008
季
第 1 季
第 2 季
第 3 季
第 4 季
第 1 季
第 2 季
第 3 季
第 4 季 200
2*Previous(Self) 會傳回序列 2、4、6、8、10...
相關主題
•
Previous 函式會傳回運算式的前一個比較值。
•
Self 運算子使用 Previous 函式。
收入
500
400
700
300
6.1.10.19 RefValue
描述
啟用資料追蹤時,傳回報表物件的參考值
函式群組
雜項
語法 input_type RefValue(obj)
173
上一頁
500
500
400
700
300
300
2013-09-19
函式、運算子和關鍵字
範例
如果參考資料中 [績效最佳的區域] 變數值是「西南」,RefValue([績效最佳的區域]) 會傳回「西
南」。
如果參考資料中的 [收入] 計量值是 1000,RefValue([收入]) 會傳回 1000。
6.1.10.20 RelativeValue
描述
傳回物件的上一個或下一個值
函式群組
雜項
語法 input_type RelativeValue(measure|detail;slicing_dims;offset)
輸入
參數 measure|detail slicing_dims offset
描述
區塊中的任何計量或維度詳細資料
類型
計量或詳細資料
提供計算內容的維度 維度清單
指定 measure 或 detail 的值,該值
即為自目前資料列中移除的 offset 資
料列
整數
必要
是
是
是
附註
• 物件必須是區塊中的計量或計量詳細資料。
• 切片維度之值清單的排序順序可用來決定函式的輸出結果。
排序順序是由兩個因素決定的:套用至切片維度的排序,以及切片維度列於函式中的順序。
• 當做區段主文件的維度可被指定為切片維度。
• 所有切片維度必須顯示於放置函式之區塊中或區塊中的區段標題中。如果切片維度之後從區塊移除
了,函式會傳回 #COMPUTATION 錯誤。
• 如果偏移超過切片維度值清單中的資料列數,函式會傳回 Null。
• RelativeValue 無法循環使用。
• 您必須永遠把維度放在括號內,即使切片維度清單裡只有一個維度。
174 2013-09-19
函式、運算子和關鍵字
範例
下表中的 RelativeValue 資料行包含下列公式:
RelativeValue([Revenue];([Year]);-1)
年
2007
2007
2007
2007
2008
2008
2008
2008
季
第 1 季
第 2 季
第 3 季
第 4 季
第 1 季
第 2 季
第 3 季
第 4 季
銷售人員
Smith
Jones
Wilson
Harris
Smith
Jones
Wilson
Harris
收入
1000
2000
1500
3000
4000
3400
2000
1700
RelativeValue
1000
2000
1500
3000
相關主題
•
當函式所在之區塊的計算內容中不再有 RelativeValue 函式中指定的切片維度時,會發生
#COMPUTATION。
•
第 210 頁的「 使用 RelativeValue 函式比較值 」
RelativeValue 函式會傳回運算式的比較值。函式傳回的值不受報表配置的限制。
6.1.10.21 ReportName
描述
傳回報表的名稱
函式群組
雜項
語法 string ReportName()
175 2013-09-19
函式、運算子和關鍵字
範例
如果置於名為「銷售報表」的報表中,ReportName() 會傳回「銷售報表」。
6.1.10.22 RowIndex
描述
傳回資料列數
函式群組
雜項
語法 integer RowIndex()
附註
• 資料列的編號從 0 開始。
• 放在表格的頁首或頁尾時,RowIndex 會傳回 #MULTIVALUE。
範例
出現在表格的第一個資料列時,RowIndex 會傳回 0。
6.1.10.23 UniqueNameOf
描述
傳回物件的唯一名稱
函式群組
雜項
語法 string UniqueNameOf(obj)
176 2013-09-19
函式、運算子和關鍵字
輸入
參數 obj
描述
任何報表物件
範例
UniqueNameOf([訂房日期]) 會傳回「訂房日期」。
類型
報表物件
6.2 函式和公式運算子
必要
是
運算子會連結公式中的各種元件。
公式可以包含數學、條件、邏輯、函式限定的運算子,或延伸語法運算子。
6.2.1 數學運算子
數學運算子就是日常生活常用的算數符號。
有四種運算子:加號 (+)、減號 (-)、乘號 (*)、除號 (/),讓您在公式中執行數學運算。公式 [營業
收入] - [銷售成本] 包含數學運算子,在本範例中為減法。
附註:
使用字元字串時,'+' 運算子會變成字串合併運算子。也就是說,它會聯結字元字串。例如,公式
"John" + "Smith" 會傳回 "John Smith"。
6.2.2 條件運算子
177 2013-09-19
函式、運算子和關鍵字
條件運算子可以決定兩個值之間要比較的類型。
>=
<=
<>
>
<
運算子
=
描述
等於
大於
小於
大於或等於
小於或等於
不等於
搭配 If 函式來使用條件運算子的方式如下:
If [Revenue]>10000 Then "High" Else "Low"
當所有資料列的營業收入大於或等於 10000 時會傳回「High」,並將所有其他資料列傳回「Low」。
6.2.3 邏輯運算子
邏輯運算子包括 And、Or、Not、Between 和 InList。
邏輯運算子是用於傳回 True 或 False 的布林運算式。
6.2.3.1 And 運算子
And 運算子連結布林值。
描述
如果任何由 And 連結的布林值傳回 True,則由所有值組合起來的值也會傳回 True。
語法 bool_value And bool_value [And bool_value...]
178 2013-09-19
函式、運算子和關鍵字
範例
如果 [度假勝地] =「巴哈馬海灘」,且 [收入] >100000,If [度假勝地] = "巴哈馬海灘" And [收
入]>100000 Then "巴哈馬高收入" 會傳回「巴哈馬高收入」。
6.2.3.2 Or 運算子
Or 運算子會連結布林值。
描述
如果任何由 Or 連結的布林值傳回 True,則由所有值組合起來的值也會傳回 True。
語法 bool_value Or bool_value [Or bool_value...]
範例
如果 [度假勝地]="巴哈馬海灘" 或 "夏威夷俱樂部",If [度假勝地] = "巴哈馬海灘" Or [度假勝
地]="夏威夷俱樂部" Then "美國" Else "法國" 會傳回「美國」,反之則會傳回「法國」。
6.2.3.3 Not 運算子
描述
Not 運算子會傳回布林值的相反值。
語法 bool Not(bool_value)
範例
如果 [國家] 是「美國」以外的任何值,If Not([國家] = "美國") Then "不是美國" 會傳回「不是美
國」。
6.2.3.4 Between 運算子
179 2013-09-19
函式、運算子和關鍵字
描述
Between 運算子決定變數是否介於兩個值之間。
語法 bool Between(first_value;second_value)
附註
• 您可以搭配 If 函式和 Where 運算子來使用 Between 運算子。
• 變更文件地區設定可能影響 Between 運算子傳回的結果。
範例
如果 [收入] 介於 800000 和 900000 之間,If [收入] Between(800000;900000) Then "中等收入"
會傳回「中等收入」。
如果營業收入介於 10000 和 20000 之間,[營業收入] Between (10000;20000) 會傳回 True。
如果 [營業收入] 為 300000,If ([營業收入] Between (200000;500000);"中等收入";"低/高收入")
會傳回「中等收入」。
相關主題
•
•
6.2.3.5 InList 運算子
180
描述
InList 運算子決定值是否在值清單中。
語法 bool test_value InList(value_list)
附註 test_value + InList 的組合會傳回布林值,而非由 InList 單獨傳回。
範例
如果 [國家] 不等於「英格蘭」、「蘇格蘭」和「威爾斯」,或不等於「英國」,If Not ([國家] In
List("英格蘭";"蘇格蘭";"威爾斯")) Then "不是英國" Else "英國" 會傳回「不是英國」。
2013-09-19
函式、運算子和關鍵字
如果 [度假勝地] 等於「巴哈馬海灘」或「夏威夷俱樂部」,If [度假勝地] InList("巴哈馬海灘";"夏
威夷俱樂部") Then "美國度假勝地" 會傳回「美國度假勝地」。
相關主題
•
•
6.2.4 函式專用運算子
某些函式可接受特定運算子做為引數。
例如,Previous 函式可接受 Self 運算子。
所有函式使用「)」和「(」來包含函式引數。接受多重參數的函式使用「;」來分隔參數。
6.2.4.1 All 運算子
All 運算子告訴 NoFilter 函式忽略 All 篩選器。
All 運算子也會告訴 Count 函式計算所有值,包含重複值。
相關主題
•
•
Dinstinct/All 運算子使用 Count 函式。
•
•
All/Drill 運算子使用 NoFilter 函式。
6.2.4.2 All/Drill 運算子
181 2013-09-19
函式、運算子和關鍵字
All/Drill 運算子使用 NoFilter 函式。
描述
All/Drill 運算子決定 NoFilter 函式忽略哪些篩選器。
• 未指定 - NoFilter 忽略報表和區塊篩選器
• All - NoFilter 忽略所有篩選器
• Drill - NoFilter 忽略報表篩選和擷取篩選器
6.2.4.3 Bottom/Top 運算子
Bottom/Top 運算子使用 Rank 函式。
描述
Bottom/Top 運算子會指定 Rank 函式以遞減或遞增順序排名。
• Top - 以遞減順序排名
• Bottom - 以遞增順序排名
範例
Rank([收入];([國家]);Top 會以最高收入到最低收入的順序排名國家。
相關主題
•
6.2.4.4 Break 運算子
182
Break 運算子使用 Percentage 函式。
描述
Break 運算子會告訴 Percentage 函式計入表格分割。
範例
Percentage([收入]) 公式導致下列表格裡的結果:(百分比是根據區塊內的全部收入加以計算)
2013-09-19
函式、運算子和關鍵字
年
2005
2005
2006
2006
季
第 1 季
第 2 季
第 1 季
第 2 季
收入
10000
20000
30000
40000
百分比
10%
20%
30%
40%
Percentage([收入];Break) 公式產生下列表格的結果 (百分比是根據區塊內各部分的全部收入加以計
算):
年
2005
2005
季
第 1 季
第 2 季
收入
10000
20000
百分比
33.3%
66.6%
2006
2006
第 1 季
第 2 季
相關主題
•
30000
40000
42.9%
57.1%
6.2.4.5 Distinct/All 運算子
Dinstinct/All 運算子使用 Count 函式。
Distinct/All 運算子會指定 Count 函式只計算不同的值,或是計算所有的值。
範例
如果 [收入] 的值為 (5;5;6;4),Count(收入];Distinct) 會傳回 3。
如果 [收入] 的值為 (5;5;6;4),Count(收入];All) 會傳回 4。
183 2013-09-19
函式、運算子和關鍵字
相關主題
•
6.2.4.6 IncludeEmpty 運算子
IncludeEmpty 運算子使用彙總函式。
描述
IncludeEmpty 運算子告訴某些彙總函式 (Average、Count、RunningAverage、RunningCount) 在計算
中包含空白值。
範例
如果 [收入] 的值為 (5;3;<empty>;4),Average([收入];IncludeEmpty) 會傳回 3。
相關主題
•
•
•
•
6.2.4.7 Index 運算子
Index 運算子使用 UserResponse 和 RefValueUserResponse 函式。
描述
Index 運算子會指示 UserResponse 和 RefValueUserResponse 函式傳回提示反應的資料庫主索引鍵。
相關主題
•
•
第 112 頁的「 RefValueUserReponse 」
184 2013-09-19
函式、運算子和關鍵字
6.2.4.8 Linear 運算子
Linear 運算子使用 Interpolation 函式。
描述
Linear 運算子告訴 Interpolation 函式使用含最小平方插補法的線性迴歸,提供遺漏的計量值。
含最小平方插補法的線性迴歸會以 f(x) = ax + b 形式計算盡可能接近通過所有計量值的線方程式,
計算遺漏的值。
相關主題
•
6.2.4.9 NoNull 運算子
NoNull 運算子使用 Previous 函式。
描述
NoNull 運算子告訴 Previous 函式忽略 Null 值。
使用 NoNull 時,Previous 會傳回物件的第一個 Null 值,從儲存格 offset 資料列開始,在目前的
資料列和倒數之前。
相關主題
•
6.2.4.10 NotOnBreak 運算子
185 2013-09-19
函式、運算子和關鍵字
NotOnBreak 運算子使用 Interpolation 函式。
描述
NotOnBreak 運算子告訴 Interpolation 函式忽略區段和區塊分割。
相關主題
•
6.2.4.11 PointToPoint 運算子
PointToPoint 運算子告訴 Interpolation 函式使用點到點插補來提供遺失的計量值。
描述
點對點插補法會以 f(x) = ax + b 形式計算通過遺漏值的兩個鄰接值的線方程式,計算遺漏的值。
相關主題
•
6.2.4.12 Row/Col 運算子
Row 運算子會計算該資料列裡的每個值,當作在內嵌內容中所有資料列之總和值的百分比。Col 運算子
會計算該資料行裡的每個值,當作在內嵌內容中所有資料行之總和值的百分比。
描述
Row/Col 運算子可設定下列函式計算方向:Percentage、Previous、RunningAverage、RunningCount、
RunningMax、RunningMin、RunningProduct、RunningSum。
附註
在交叉表中,會根據預設計算每個儲存格的值,當作交叉表內總和值的百分比。Row 運算子會計算資料
列內的值,當作該資料列之總和值的百分比。Col 運算子會計算資料行內的值,當作該資料行之總和值
的百分比。
186 2013-09-19
函式、運算子和關鍵字
範例
在交叉表裡,Percentage([計量]) 會產生下列結果:
計量
100
200
百分比
10%
20%
計量
500
200
百分比
50%
20%
Percentage([計量];Row) 會產生下列結果:
計量
100
200
百分比
16.7%
50%
Percentage([計量];Col) 會產生下列結果:
計量
100
200
百分比
33.3%
66.6%
計量
500
200
百分比
83.3%
50%
計量
500
200
百分比
83.3%
16.7%
ROW 運算子會依資料列來計算執行彙總。COL 運算子會依資料行來計算執行彙總。
在交叉表裡,RunningSum([計量]) 或 RunningSum([計量];Row) 會產生下列結果:
計量
100
400
RunningSum
100
700
計量
200
250
RunningSum
300
950
在交叉表裡,RunningSum([計量];Col) 會產生下列結果:
計量
100
400
RunningSum
100
500
計量
200
250
相關主題
•
RunningSum
700
950
187 2013-09-19
函式、運算子和關鍵字
•
•
•
•
•
•
6.2.4.13 Self 運算子
Self 運算子使用 Previous 函式。
描述
不含報表物件時,使 Previous 函式參照上一個儲存格。
範例
5 + Previous(Self) 會傳回序列 5、10、15、20、25、30...
1 + 0.5 * Previous(Self) 會傳回序列 1、1.5、1.75、1.88...
相關主題
•
6.2.4.14 Where 運算子
188
描述
Where 運算子限制用於計算計量的資料。
範例
公式 Average ([營業收入]) Where ([國家] = "美國") 會計算國家為「美國」的平均銷售。
公式 Average ([營業收入]) Where ([國家] = "美國" Or [國家] = "法國") 會計算國家為「美國」
或「法國」的平均銷售。
公式 [收入] Where (Not ([國家] Inlist ("美國"; "法國"))) 會計算美國和法國以外國家的收入。
2013-09-19
函式、運算子和關鍵字
變數 [高收入] 的公式為 [收入] Where [收入 > 500000]。置於區塊中時,[高收入] 會顯示值大於
500000 的收入或空白。當置於 [高收入] 資料行底部的頁尾時,公式 Average ([高收入]) 會傳回平
均值大於 500000 的所有收入。
相關主題
•
And 運算子連結布林值。
•
•
•
Or 運算子會連結布林值。
•
6.2.5 延伸語法運算子
您可以用內容運算子,明確指定輸入和輸出內容。
下表列出內容運算子:
運算子
In
ForEach
ForAll
描述
指定內容中要使用的明確維度清單。
將維度新增預設內容
從預設內容移除維度
當您的預設內容包含許多維度時,ForAll 與 ForEach 運算子便會十分實用。通常使用 ForAll 與
ForEach 從內容新增或減少會比使用 In 明確指定清單來得容易。
6.2.5.1 In 內容運算子
In 內容運算子可以在內容中明確指定維度。
189 2013-09-19
函式、運算子和關鍵字
範例:使用 In 在內容中指定維度
在此範例中,您有一份顯示「年」與「營業收入」的報表。您的資料提供者也包含「季」物件,但是
您不想將此維度包含在區塊中。您想要包含其他資料行以顯示每年依季的最大營業收入。您的報表看
起來會像這樣:
年
2001
2002
2003
營業收入
$8,096,123.60
$13,232,246.00
$15,059,142.80
季度最大收入
$2,660,699.50
$4,186,120.00
$4,006,717.50
您可以藉由檢查此區塊以及包含「Quarter」維度的區塊,以查看「Max Quarterly Revenue」資料行
中值的來源:
190 2013-09-19
函式、運算子和關鍵字
年
2001
2001
2001
2001
年
季
第 1 季
第 2 季
第 3 季
第 4 季
最大值:
季
第 1 季
第 2 季
第 3 季
第 4 季
最大值:
營業收入
$2,660,699.50
$2,279,003.00
$1,367,841.00
$1,788,580.00
$2,660,699.50
營業收入
$3,326,172.00
$2,840,651.00
$2,879,303.00
$4,186,120.00
$4,186,120.00
年 季
第 1 季
第 2 季
第 3 季
第 4 季
最大值:
營業收入
$3,742,989.00
$4,006,717.50
$3,953,395.00
$3,356,041.00
$4,006,717.50
「季度最大收入」資料行顯示每年最高季營業收入。例如,在 2002 年中第 4 季的收入最高,因此
「季度最大收入」會在顯示 2002 的資料列上顯示第 4 季的收入。
使用 In 運算子,「季度最大收入」的公式為
Max ([Sales Revenue] In ([Year];[Quarter])) In ([Year])
此公式會計算每次 (年,季) 結合的最大營業收入,然後依年將此數字輸出。
附註:
由於區塊的預設輸出內容為「年」,所以不需在此公式中明確指定輸出內容。
6.2.5.2 ForEach 內容運算子
191 2013-09-19
函式、運算子和關鍵字
ForEach 運算子會將維度新增至內容。
範例:使用 ForEach 將維度新增至內容
下表顯示報表中各「季」的最大收入,報表中包含 「季」維度,但不包括在此區塊中:
年
2001
2002
2003
營業收入
8096123.60
13232246.00
15059142.80
季度最大收入
2660699.50
4186120.00
4006717.50
您可以建立不包含 ForEach 運算子的「季度最大收入」資料行公式:
Max ([Sales Revenue] In ([Year];[Quarter])) In ([Year])
使用 ForEach 內容運算子可以算出與使用下列公式相同的結果:
Max ([Sales Revenue] ForEach ([Quarter])) In ([Year])
為什麼?因為「年」維度是區塊中的預設輸入內容。您可以使用 ForEach 運算子將「季」維度新增內
容中,以指定 ([年];[季]) 的輸入內容。
6.2.5.3 ForAll 內容運算子
ForAll 內容運算子會從內容中移除維度。
範例:使用 ForAll 將維度從內容移除。
您有一份顯示「年」、「季」和「營業收入」的報表,您想要新增一個資料行以顯示每年的總營業收
入,如下列區塊所示:
192 2013-09-19
函式、運算子和關鍵字
若要依年加總營業收入,則輸入內容必須為 (年);預設為 (年; 季)。因此,您可以在公式中指定
ForAll ([季]),以便從輸入內容中移除「季」,其公式如下:
Sum([Sales Revenue] ForAll ([Quarter]))
請注意,您可以使用 In 運算子算出相同的結果,在此例中公式為:
Sum([Sales Revenue] In ([Year]))
此版的公式明確地將「年」指定為內容,而非將「季」移除以留下「年」。
6.2.6 設定運算子
設定運算子適用於階層式資料中的成員
6.2.6.1 範圍運算子
描述
範圍運算子 (:) 會傳回介於同一層級兩個成員之間 (包括首尾兩個成員) 的成員集合。
語法 first_member:last_member
193 2013-09-19
函式、運算子和關鍵字
範例
如果層級成員的順序為...[洛杉磯]、[聖地牙哥]、[舊金山]...,則 [地理區]&[美國].[加州].[洛杉
磯]:[地理區]&[美國].[加州].[舊金山] 會傳回 [洛杉磯]、[聖地牙哥]、[舊金山]...
Sum([收入];{[地理區]&[美國].[加州].[洛杉磯]:[地理區]&[美國].[加州].[舊金山]}) 會傳回 [洛杉
磯]、[聖地牙哥] 和 [舊金山] 的總營業收入。
6.3 延伸語法關鍵字
延伸語法關鍵字是一種「速記」形式,讓您參考延伸語法中的維度,而不需明確指定這些維度。
這些關鍵字協助未來校對報表之用。若公式中未包含維度的固定參考,即使從報表中新增或移除維度,
公式仍可繼續執行。
有五個延伸語法關鍵字:Report、Section、Break、Block 和 Body。
6.3.1 Block 關鍵字
194
此主題說明 Block 關鍵字所參考的維度視其在報表中的位置而定,Block 關鍵字通常含有與 Section
關鍵字相同的資料。
唯一不同的是,Block 會說明區塊上的篩選器,而 Section 會予以忽略。
當放置在...
一個區塊
區塊分割 (表頭或表尾)
區塊 (頁首、頁尾或在區塊外面)
在任何區塊或區段外面
參考此資料...
在整個區塊中的資料、忽略分割、使用篩選器
在整個區塊中的資料、忽略分割、使用篩選器
不適用
不適用
範例:Block 關鍵字
您有一份顯示「年」、「季」與「營業收入」的報表。這個報表有一個依據「年」的區段。已篩選區
塊以排除第三或第四季。
2013-09-19
函式、運算子和關鍵字
[每年平均值] 資料行含有公式
Average([Sales revenue] In Section)
同時 [前半年平均值] 資料行也含有公式
Average ([Sales revenue]) In Block
您可以查看 Block 關鍵字如何使用區塊上的篩選器。
6.3.2 Body 關鍵字
此主題說明區塊 Body 中關鍵字所參考的維度視其在報表中的位置而定。
當放置在...
一個區塊
區塊分割 (表頭或表尾)
區塊 (頁首、頁尾或在區塊外面)
參考此資料...
區塊中的資料
區塊中的資料
區塊中的資料
195 2013-09-19
函式、運算子和關鍵字
當放置在...
在任何區塊或區段外面
參考此資料...
報表中的資料
範例:Body 關鍵字
您有一份顯示「年」、「季」與「營業收入」的報表,該報表中的「年」區段含有分割。這份報表具
有以「年」為基礎的區段,「季」區段則含有分割。
年
2001
2001
季
第 1 季
第 2 季
第 3 季
第 4 季
營業收入
2,660,700
2,279,003
1,367,841
1,788,580
8,096,123.6
Body
2,660,699.5
2,279,003
1,367,840.7
1,788,580.4
[Body] 資料行含有公式
Sum ([Sales Revenue]) In Body
[Body] 資料行的總計與 [營業收入] 資料行的總計相同,因為 Body 關鍵字是參考區塊中的資料。如
果您要移除「月」物件,則 [Body] 資料行中的數字將會變更,以便對應 [營業收入] 資料行中已變
更的數字。如果您是將公式放置在報表頁尾,公式會傳回內文的總營業收入。
6.3.3 Break 關鍵字
下列表格說明 Break 關鍵字所參考的維度視其在報表中的位置而定。
當放置在...
一個區塊
區塊分割 (表頭或表尾)
區塊 (頁首、頁尾或在區塊外面)
在任何區塊或區段外面
參考此資料...
由分類小計所區隔之區塊部份中的資料
由分類小計所分割之區塊部份中的資料
不適用
不適用
196 2013-09-19
函式、運算子和關鍵字
範例:Break 關鍵字
您有一份顯示「年」、「季」與「營業收入」的報表。
年
2001
季
第 1 季
第 2 季
第 3 季
第 4 季
營業收入
$2,660,700
$2,279,003
$1,367,841
$1,788,580
分割總計
$8,096,124
$8,096,124
$8,096,124
$8,096,124
這份報表的「年」區段含有分割。[分割總計] 資料行含有公式:
Sum ([Sales Revenue]) In Break
若沒有 Break 關鍵字,則此資料行將會因為使用預設的輸出內容 ([年];[季]),而複製「營業收入」
資料行中的數字。
6.3.4 Report 關鍵字
此主題說明 Report 關鍵字所參考的資料視其在報表中的位置而定。
當放置在...
一個區塊
區塊分割 (表頭或表尾)
區塊 (頁首、頁尾或在區塊外面)
在任何區塊或區段外面
參考此資料...
在報表中的所有資料
在報表中的所有資料
在報表中的所有資料
在報表中的所有資料
範例:Report 關鍵字
您有一份顯示「年」、「季」與「營業收入」的報表。該報表有一個 [報表總計] 資料行,可顯示報
表中所有營業收入的總計。
197 2013-09-19
函式、運算子和關鍵字
報表總計資料行公式如下所示:
Sum([Sales revenue]) In Report
若沒有 Report 關鍵字,則此資料行會因為使用預設的輸出內容 ([年];[季]) 而複製「營業收入」資
料行的數字。
6.3.5 Section 關鍵字
此主題說明 Section 關鍵字所參考的資料視其在報表中的位置而定。
當放置在...
一個區塊
區塊分割 (表頭或表尾)
區塊 (頁首、頁尾或在區塊外面)
在任何區塊或區段外面
參考此資料...
在區段中的所有資料
在區段中的所有資料
在區段中的所有資料
不適用
範例:Section 關鍵字
您有一份顯示「年」、「季」與「營業收入」的報表。
198 2013-09-19
函式、運算子和關鍵字
這個報表有一個依據「年」的區段。[區段總計] 資料行含有公式:
Sum ([Sales Revenue]) In Section
在 [區段總計] 資料行中的數字為 2001 年的總營業收入,這是因為區段分割發生在「年」物件。若
沒有 Section 關鍵字,則此資料行將會因為使用預設的輸出內容 ([年];[季]),而複製「營業收入」
資料行中的數字。
6.4 四捨五入和截去數字
目前有多數函式皆包含可以決定函式傳回值的捨入或截斷程度的參數。
此參數接受大於 0、等於 0 或小於 0 的整數。下表說明在下列情況下捨入和截斷數字的方式:
199 2013-09-19
函式、運算子和關鍵字
參數
> 0
0
< 0
描述
函式會將數字捨入/截斷為 <parameter> 個小數位數。
範例:
Round(3.13;1) 會傳回 3.1
Round(3.157;2) 會傳回 3.16
函式會將數字捨入/截斷為最接近的整數。
範例:
Truncate(3.7;0) 會傳回 3
Truncate(4.164;0) 會傳回 4
函式會將數字捨入/截斷為最接近的 10 (參數 = -1)、100 (參數 = -2)、1000
(參數 = -3) 並以此類推。
範例:
Round(123.76;-1) 會傳回 120
Round(459.9;-2) 會傳回 500
Truncate(1600;-3) 會傳回 1000
附註:
括弧內會顯示一組數字,所得結果可精確至 16 位數。
相關主題
•
•
•
•
•
第 134 頁的「 EuroFromRoundError 」
•
6.5 在階層中參考成員和成員集合
200 2013-09-19
函式、運算子和關鍵字
201
您使用語法 [階層]&path.function,在函式中參考成員和成員集合。 path 和 function 組件為選擇性。在 path 中,您參考中括弧內以句號分隔的每一個成員。成員和層
級的名稱會區分大小寫。
附註:
您可以使用成員集來覆寫階層的預設計算內容。在接受成員集合的函式中,您以 {} 圍住成員。
您可以在開始和結束成員之間使用分號 (:) 以表示成員範圍,並為每個成員指定句號。包含相同層級
上的所有成員範圍作為指定成員。
範圍語法的範例:[Sales Hierarchy]&[Customer_Type].[ENTERPRISE];[Large].[Nancy Davolio]:
[Sales Hierarchy]&[Customer_Type].[ENTERPRISE];[Large].[Andrew Smith]。
範例:參考成員和成員集合
您會擁有下列階層:
Sales Hierarchy
Customer_Type
ENTERPRISE
GLOBAL
Large
Nancy Davolio
Janet Leverling
Andrew Smith
訂貨金額
277,290,434
180,063,361
113,905,997
44,855,689
44,050,308
30,000,000
91,157,363
• [Sales Hierarchy]&[Customer_Type].[ENTERPRISE].[Large].Children表示 [Nancy Davolio]、
[Janet Leverling] 和 [Andrew Smith] 成員。
• Sum([Order Amount];{[Sales Hierarchy]&[Customer_Type].[ENTERPRISE].[Large].子系}) 傳回
113,905,997 (三個子成員的計量總和)。
• [Sales Hierarchy]&[Customer_Type].[ENTERPRISE].[Large].[Janet Leverling] 表示 [Janet
Leverling] 成員。
• Sum([Order Amount];{[Sales Hierarchy]&[Customer_Type].[ENTERPRISE].[Large].[Janet Lev erling];[Sales Hierarchy]&[Customer_Type].[ENTERPRISE].[Large].[Nancy Davolio]}) 傳回
88,905,997 (兩個成員的計量總和)。
• [Sales Hierarchy]&[Customer_Type].[ENTERPRISE].[Large].[Nancy Davolio]:[Sales Hierar chy]&[Customer_Type].[ENTERPRISE].[Large].[Andrew Smith] 表示 [Nancy Davolio]、[Janet
Leverling] 和 [Andrew Smith] 成員。
• Sum([Order Amount];{[Sales Hierarchy]&[Customer_Type].[ENTERPRISE].[Large].[Nancy
Davolio]:[Sales Hierarchy]&[Customer_Type].[ENTERPRISE].[Large].[Andrew Smith]}) 傳回
113,905,997 (範圍內三個成員的計量總和)。
• [Sales Hierarchy] children表示 [Sales Hierarchy] 階層中的所有成員。
• Sum([Order Amount];{Sales Hierachy].子系}) 傳回 277,290,434。
2013-09-19
疑難排解公式
第7章 疑難排解公式
7.1 公式錯誤和資訊訊息
您可以使用條件格式化設定傳回錯誤訊息的報表資料格式。
有些時候,公式無法傳回值,而是傳回開頭為 '#" 的錯誤或資訊訊息。此訊息會顯示於公式所在的儲
存格中。
7.1.1 #COMPUTATION
當函式所在之區塊的計算內容中不再有 RelativeValue 函式中指定的切片維度時,會發生
#COMPUTATION。
當包含階層的合併物件併入報表時,也會發生 #COMPUTATION。
#COMPUTATION 還與公式中的內容運算子用法錯誤有關。
相關主題
•
7.1.2 #CONTEXT
202 2013-09-19
疑難排解公式
如果計量包含不存在的計算內容時,計量中會出現 #CONTEXT。
#CONTEXT 與 #INCOMPATIBLE 及 #DATASYNC 錯誤訊息有關,如果區塊中包含不存在的計算內容時,維
度中就會出現這些錯誤。
#INCOMPATIBLE 是因為維度不相容導致內容不存在,#DATASYNC 則是因為維度來自未經同步化的多重資
料提供者導致內容不存在。
範例:查詢中不存在的內容
以「島嶼度假勝地行銷」語意層為依據的區塊中如果包含「訂房年份」和「收入」物件,便會出現
#CONTEXT 錯誤訊息,因為依據訂房年份來彙總營收並不可行。(訂房尚未產生任何收入)。
7.1.3 #DATASYNC
當您在區塊內放置來自兩個不同資料提供者的維度,而這些資料提供者並未透過合併維度進行同步化
時,便會發生 #DATASYNC 的錯誤。
#DATASYNC 發生在區塊中的所有維度上,#CONTEXT 則發生在計量。
範例:區塊中包含的維度來自不同的資料提供者
以「島嶼度假勝地行銷」語意層為依據的報表如果包含了使用 (年, 收入) 和 (季) 物件的資料提供
者,則包含「年」、「季」和「收入」的區塊會在 [年] 和 [季] 資料行中顯示 #DATASYNC,因為這
兩個資料提供者並未透過合併維度進行同步化。
7.1.4 #DIV/0
203
當公式想要將某數字除以零的時候就會發生 #DIV/0 的錯誤,因為這在數學上是不可能的。
零永遠不能做為除數。
範例:決定每筆項目的營業收入
您有一份顯示營業收入、銷售項目的數量,以及每個項目營業收入的報表 (是藉由將營業收入除以銷
售項目的數量而計算出的)。
2013-09-19
疑難排解公式
有一季非常慘淡,沒有任何營業收入;該季的 [每筆項目的營業收入] 資料行會傳回 #DIV/0,因為公
式嘗試除以零,也就是將營業收入除以銷售項目個數零。
7.1.5 #ERROR
#ERROR 是預設的錯誤訊息,涵蓋所有不屬於其他任何錯誤訊息的錯誤。
7.1.6 #EXTERNAL
公式參考在 Web Intelligence 中無法使用的外部函式時,便會發生 #EXTERNAL 的錯誤。
7.1.7 #INCOMPATIBLE
當區塊中包含不相容的物件時,便會發生 #INCOMPATIBLE 的錯誤。
範例:查詢不相容物件
以「島嶼度假勝地行銷」語意層為依據的區塊中如果包含「年」和「預約年份」維度,則包含這些維
度的資料行將顯示 #INCOMPATIBLE,因為這些都是不相容的物件。
7.1.8 #MIX
204 2013-09-19
疑難排解公式
當彙總計量具有不同單位時,便會發生 #MIX。
例如,如果彙總以不同貨幣計值的貨幣值時,儲存格則會顯示 #MIX。
7.1.9 #MULTIVALUE
當您在只能輸出一個值的儲存格中放入傳回多值的公式時,便會發生 #MULTIVALUE 的錯誤。
範例:在儲存格中的多值
您有一份顯示「國家」、「度假勝地」與「營業收入」的報表,然後將包含公式 [營業收入] ForEach
([國家]) 的儲存格新增該報表中。此儲存格會傳回 #MULTIVALUE,因為報表中的「國家」有兩個值:
「美國」和「法國」。
一個儲存格不能同時顯示美國與法國的營業收入。放置在表格外且含有營業收入的儲存格,只能以某
種方式在表格中聚集營業收入 (例如,將它們加總或平均)。
如果將報表中的「國家」細分成許多區段,那麼將公式放入區段時就會是正確的,這是因為每個區段
的「國家」只有一個值。不過,在區段外的公式仍會傳回 #MULTIVALUE。
7.1.10 #N/A
當報表儲存格內的值是以基礎資料庫上無法使用的報表值為基礎 (例如 BEx 儲存格中的 BW 錯誤),則
該儲存格會顯示 #N/A (無法使用),表示由於無法擷取資料,因此該儲存格空白。
7.1.11 #OVERFLOW
當計算所傳回的值太大而導致軟體無法處理時,便會發生 #OVERFLOW 的錯誤。
這個值以指數形式表示,為 1.7E308 (1.7 後面加上 307 個零)。
205 2013-09-19
疑難排解公式
7.1.12 #PARTIALRESULT
當無法擷取與報表物件關聯的所有資料列時,便會發生 #PARTIALRESULT。
如果您的報表經常發生 #PARTIALRESULT,而您擁有適當的安全性權限,請修改 MaxRowsRetrieved 查
詢屬性,以便擷取更多資料。若您沒有修改查詢的權限,請聯絡 BI 管理員。
如果您的報表中含有智慧型計量,出現 #PARTIALRESULT 的可能性就更高,因為智慧型計量要求擷取的
資料量會比典型計量來得多。
7.1.13 #RANK
當您嘗試依據物件將資料排名,而該物件取決於值的順序時,便會發生 #RANK 的錯誤
使用 Previous 函式或任何執行彙總函式的物件取決於值的順序。
排名將導致這些物件重新計算其值,進而變更排名,最後造成循環相依性。當您使用 [排名] 對話方塊
建立排名,或者使用 Rank 函式時,都會發生這類相依性。
範例:依據執行平均值或之前的值來排名
如果您試圖依據資料行將區塊排名,而該資料行包含 Previous 函式或任何執行彙總函式,那麼整個
區塊便會傳回 #RANK。
7.1.14 #RECURSIVE
206 2013-09-19
疑難排解公式
當因循環相依性導致無法執行計算時,便會發生 #RECURSIVE 的錯誤。
範例:使用 NumberOfPages() 函式
由於將 NumberOfPages 函式放在自動符合的儲存格中會建立循環相依性,因此,如果您將此函式放在
已設定「自動調整高度」或「自動調整寬度」屬性的儲存格中,該儲存格便會傳回 #RECURSIVE。函式
必須取得報表的正確大小,才能傳回值,但是會影響報表大小的儲存格大小將由儲存格內容決定。
7.1.15 #REFRESH
#REFRESH 會出現在其值衍生自從查詢移除,然後重新新增至查詢的物件的報表儲存格中。
當選取 [啟用查詢移除] 查詢屬性,且物件不會影響依據查詢的任何報表時,則會從查詢中移除物件。
當重新整理查詢時,便會以物件中的值重新填入儲存格。
7.1.16 #REPFORMULA
找不到 Web Intelligence 等值。
7.1.17 #SECURITY
當您試圖使用函式但對該函式不具有安全性權限時,便會發生 #SECURITY 的錯誤。
範例:使用 DataProviderSQL() 函式
如果使用者沒有檢視資料提供者 SQL 的權限,卻在儲存格中放置 DataProviderSQL() 函式,該儲存
格將顯示 #SECURITY 訊息。
207 2013-09-19
疑難排解公式
7.1.18 #SYNTAX
當公式參考了已不存在於報表中的物件時,便會發生 #SYNTAX 的錯誤。
範例:參考不存在的物件
您有一份原本顯示「年」、「季」與「營業收入」的報表,還有一個額外的資料行顯示營業收入與每
年平均營業收入間的差異。這個數字是由「不同於每年平均值」變數所指定。
如果刪除報表中的「不同於每年平均值」變數,則包含該變數的資料行將傳回 #SYNTAX。
7.1.19 #TOREFRESH
當無法取得智慧型計量所傳回的值時,憑藉該智慧型計量的儲存格便會顯示 #TOREFRESH 的錯誤。
發生這種情況是因為在資料提供者中找不到含有此值的群組集。
您只要重新整理資料就可以移除 #TOREFRESH 錯誤。
某些計量為「已委派」(對於 BW 而言,這基本上是指未使用 SUM 彙總的計量):當您在計量上定義表
格或計算時,便會在特定的彙總內容中查詢此計量 (系統會為維度集指定該計量)。如果此維度集是該
查詢維度集的子集,則計量必須連同指定的維度集一併彙總 (或是依 SQL 中的子句參照群組的群組集)。
針對一般計量,系統會執行彙總,若為委派計量,則會將此彙總委派給基礎資料庫。因此,系統必須再
次查詢此資料庫。由於這不是自動的,因此會顯示 #TOREFRESH,並等待使用者重新整理後繼續。使用
者重新整理後,系統會執行額外的查詢取得要求的彙總,然後再以適當的值取代 #TOREFRESH。
7.1.20 #UNAVAILABLE
208 2013-09-19
疑難排解公式
當無法計算智慧型計量的值時,便會出現 #UNAVAILABLE 的錯誤。
發生這種情況是因為並未對查詢套用篩選器,以致無法顯示篩選後的智慧型計量值。由於這會影響依據
相同查詢的其他報表,因此沒有套用篩選器。
209 2013-09-19
使用函式比較值
第8章 使用函式比較值
8.1 使用 Previous 函式比較值
Previous 函式會傳回運算式的前一個比較值。
傳回的預設值依據報表配置而定。
如需更強大的比較功能,請使用 RelativeValue 函式。RelativeValue 會傳回運算式的前一個或後一
個比較值。傳回的預設值不受報表配置的限制。
相關主題
•
•
•
第 210 頁的「 使用 RelativeValue 函式比較值 」
RelativeValue 函式會傳回運算式的比較值。函式傳回的值不受報表配置的限制。
8.2 使用 RelativeValue 函式比較值
210
RelativeValue 函式會傳回運算式的比較值。函式傳回的值不受報表配置的限制。
使用 RelativeValue 時,您可以指定下列項目:
• 您要尋找其比較值的運算式 (運算式必須是區塊中的計量或維度明細)
• 切片維度清單
• 偏移。
函式使用切片維度、偏移和次軸維度 (切片維度所暗示的) 傳回比較值。次軸維度是計算內容中,切片
維度以外的所有維度。
2013-09-19
使用函式比較值
以一般方式說明,RelativeValue 將運算式的值傳回資料列中,此 (切片維度值清單中的) 資料列是自
目前資料列移除的 offset 列,其中次軸維度的值與目前資料列中的值相同。
附註:
所有切片維度一定要在函式所在之區塊的計算內容中。如果切片維度之後被移除了,則函式會傳回
#COMPUTATION。
年
2007
2007
2007
2007
2008
2008
2008
2008
範例:
在本例中,RelativeValue 資料行中包含下列公式:
RelativeValue([Revenue];([Year]);-1)
• 運算式為 [收入];
• 切片維度為 [年];
• 偏移值為 -1 (函式傳回清單中的前一個值)。
季
第 1 季
第 2 季
第 3 季
第 4 季
第 1 季
第 2 季
第 3 季
第 4 季
銷售人員
Smith
Jones
Wilson
Harris
Smith
Jones
Wilson
Harris
收入
1000
2000
1500
3000
4000
3400
2000
1700
RelativeValue
1000
2000
1500
3000
以商業問題表示的公式會傳回前一年同一季同位銷售人員產生的收入。
以計算文字表示的公式會傳回 [年] 值 (切片維度) 等於 [年] 物件值清單中前一個值的資料列中的
[收入] (運算式) 值,並且其中 [季] 和 [銷售人員] (次軸維度) 與目前資料列中的值相同。
相關主題
•
8.2.1 切片維度與 RelativeValue 函式
211
RelativeValue 函式使用切片維度的值清單尋找比較資料列。
2013-09-19
使用函式比較值
函式會傳回函式所指定之運算式的比較值,其中的 offset 資料列數目為切片維度清單中的偏移列數。
結果,切片維度的排序順序是決定函式輸出的重要因素。
2007
2007
2008
2008
2008
2008
年
2007
2007
2007
2007
2007
2007
範例:多重切片維度
在下表中,RelativeValue 資料行的公式為:
RelativeValue([Revenue];([Year];[Quarter]);-1)
• 運算式為 [收入];
• 切片維度為 ([年];[季]);
• 偏移值為 -1 (函式傳回清單中的前一個值)。
季
第 1 季
第 2 季
第 3 季
第 4 季
第 1 季
第 2 季
第 3 季
第 4 季
第 1 季
第 2 季
第 3 季
第 4 季
Jones
Jones
Smith
Smith
Smith
Smith
銷售人員
Smith
Smith
Smith
Smith
Jones
Jones
收入
1000
2000
1500
3000*
4000
3400
2000
1700
5000**
3000***
2700****
6800
RelativeValue
3000*
5000**
3000***
2700****
以商業問題表示的公式會傳回前一季同位銷售人員產生的收入。
以計算文字表示的公式會傳回 [年] 值和 [季] 值等於 ([年];[季]) 值清單中前一個值的資料列中的
[收入] 值,並且其中 [銷售人員] 與目前資料列中的值相同。
函式使用切片維度的值清單尋找比較收入。
年
2007
2007
2007
2007
季
第 1 季
第 2 季
第 3 季
第 4 季 *
212 2013-09-19
使用函式比較值
年
2008
2008
2008
2008
季
第 1 季
第 2 季
第 3 季
第 4 季
**
***
****
切片維度的排序順序決定函式的輸出結果。表格中的 * 表示排序順序。
相關主題
•
8.2.2 切片維度與區段
切片維度可以在報表的區段主儲存格中。
範例:
在下表中,RelativeValue 資料行的公式為:
RelativeValue([Revenue];([Year];[Quarter]);-1)
2007
季
第 1 季
第 2 季
第 3 季
第 4 季
第 1 季
銷售人員
Smith
Smith
Smith
Smith
Jones
收入
1000
2000
1500
3000*
4000
RelativeValue
213 2013-09-19
使用函式比較值
季
第 2 季
第 3 季
第 4 季
2008
季
第 1 季
第 2 季
第 3 季
第 4 季
銷售人員
Jones
Jones
Jones
銷售人員
Smith
Smith
Smith
Smith
年
2007
2007
2007
2007
2008
2008
2008
2008
函式使用切片維度的值清單尋找比較收入。
季
第 1 季
第 2 季
第 3 季
第 4 季
第 1 季
第 2 季
第 3 季
第 4 季
收入
3400
2000
1700
收入
5000**
3000***
2700 ****
6800
*
**
***
****
切片維度的排序順序決定函式的輸出結果。表格中的 * 表示排序順序。
相關主題
•
RelativeValue
RelativeValue
3000*
5000**
3000***
2700****
8.2.3 切片維度順序
214 2013-09-19
使用函式比較值
由於切片維度值清單的排序順序決定 RelativeValue 的輸出結果,因此指定的切片維度順序會影響函
式的輸出結果。
範例:切片維度順序
在下表中,RelativeValue 資料行的公式為:
RelativeValue([Revenue];([Year];[Quarter]);-1)
RelativeValue 年
2007
2007
2007
2007
2007
2007
2007
2007
2008
2008
2008
2008
季
第 1 季
第 2 季
第 3 季
第 4 季
第 1 季
第 2 季
第 3 季
第 4 季
第 1 季
第 2 季
第 3 季
第 4 季
銷售人員
Smith
Smith
Smith
Smith
Jones
Jones
Jones
Jones
Smith
Smith
Smith
Smith
以商業問題表示的公式會傳回前一季同位銷售人員產生的收入。
產生的切片維度排序如下:
年
2007
2007
2007
2007
2008
季
第 1 季
第 2 季
第 3 季
第 4 季
第 1 季
*
**
收入
1000
2000
1500
3000*
4000
3400
2000
1700
5000**
3000***
2700****
6800
3000*
5000**
3000***
2700****
215 2013-09-19
使用函式比較值
年
2008
2008
2008
季
第 2 季
第 3 季
第 4 季
函式變更為:
RelativeValue([Revenue];([Quarter];[Year]);-1)
切片維度的排序順序變成:
季
第 1 季
第 1 季
第 2 季
第 2 季
第 3 季
第 3 季
第 4 季
第 4 季
年
2007
2008
2007
2008
2007
2008
2007
2008
年
2007
2007
2007
2007
2007
2007
2007
2007
2008
排序順序對函式結果產生下列影響:
季
第 1 季
第 2 季
第 3 季
第 4 季
第 1 季
第 2 季
第 3 季
第 4 季
第 1 季
銷售人員
Smith
Smith
Smith
Smith
Jones
Jones
Jones
Jones
Smith
***
****
*
**
***
****
*****
******
*******
********
收入
1000*
2000***
1500*****
3000*******
4000
3400
2000
1700
5000**
RelativeValue
1000*
216 2013-09-19
使用函式比較值
年
2008
2008
2008
季
第 2 季
第 3 季
第 4 季
銷售人員
Smith
Smith
Smith
收入
3000****
2700******
6800********
目前以商業問題表示的公式會傳回前一年同一季同位銷售人員產生的收入。
切片維度排序順序的變更會改變公式的意義。表格中的 * 表示排序順序。
相關主題
•
RelativeValue
2000***
1500*****
3000*******
8.2.4 切片維度和排序
217
由於切片維度值清單的排序順序決定函式輸出結果,套用至切片維度中的任何維度都會影響函式的輸出
結果。
範例:套用至切片維度的自訂排序
在下表中,RelativeValue 資料行的公式為:
RelativeValue([Revenue];([Year];[Quarter]);-1)
套用至 [季] 的自訂排序 (第 1 季、第 2 季、第 3 季、第 4 季),會產生下列函式結果:
RelativeValue 年
2007
2007
2007
2007
2007
2007
2007
2007
季
第 1 季
第 2 季
第 4 季
第 3 季
第 1 季
第 2 季
第 4 季
第 3 季
銷售人員
Smith
Smith
Smith
Smith
Jones
Jones
Jones
Jones
收入
1000
2000
3000
1500*
4000
3400
1700
2000
2013-09-19
使用函式比較值
年
2008
2008
2008
2008
季
第 1 季
第 2 季
第 4 季
第 3 季
產生的切片維度排序清單如下:
年
2007
2007
2007
2007
2008
2008
2008
2008
季
第 1 季
第 2 季
第 4 季
第 3 季
第 1 季
第 2 季
第 4 季
第 3 季
銷售人員
Smith
Smith
Smith
Smith
表格中的 * 表示排序順序。
相關主題
•
8.2.5 在交叉表中使用 RelativeValue
收入
5000**
3000***
6800****
2700
RelativeValue
1500*
5000**
3000***
6800****
*
**
***
****
RelativeValue 函式在交叉表中的運作方式與垂直表格相同。
交叉表中的資料配置對函式輸出沒有影響。
相關主題
•
218 2013-09-19
詳細資訊
附錄A 詳細資訊
資訊資源
SAP BusinessObjects 產品資訊
SAP 說明入口網站
位置 http://www.sap.com
導覽至 http://help.sap.com/businessobjects/ 並在 SAP BusinessObjects Overview 側面板上按一下 [All Products]。
您可以在 SAP 說明入口網站上存取涵蓋所有 SAP BusinessObjects 產
品及其部署的最新說明文件。您可以下載 PDF 版本或可安裝的 HTML 程
式庫。
某些指南儲存在 SAP Service Marketplace 中,無法從 SAP 說明入口
網站獲取。這些指南會在說明入口網站中列出,並隨附至 SAP Service
Marketplace 的連結。簽署維護合約的客戶可以透過授權的使用者 ID
存取此網站。要獲得 ID,請與客戶支援代表聯絡。
SAP Service Marketplace
Docupedia
開發人員資源 http://service.sap.com/bosap-support > 說明文件
• 安裝指南: https://service.sap.com/bosap-instguides
• 版本資訊: http://service.sap.com/releasenotes
SAP Service Marketplace 用於儲存某些安裝指南、升級和移轉指南、
版本資訊以及「支援的平台」說明文件。簽署維護合約的客戶可以透過
授權的使用者 ID 存取此網站。請與客戶支援代表聯絡以獲得 ID。 如
果您從 SAP 說明入口網站重新導向至 SAP Service Marketplace,請使
用左側導覽窗格中的功能表以查找包含所要存取說明文件的類別。 https://cw.sdn.sap.com/cw/community/docupedia
Docupedia 可提供額外的文件資源、協同式製作環境,以及互動式回饋
管道。 https://boc.sdn.sap.com/ https://www.sdn.sap.com/irj/sdn/businessobjects-sdklibrary
SAP 社群網路上的 SAP BusinessObjects 文章 https://www.sdn.sap.com/irj/boc/businessobjects-articles
這些文章原先稱為技術論文。
219 2013-09-19
詳細資訊
資訊資源
附註
SAP 社群網路上的論壇
教育訓練
線上客戶支援
專業諮詢
位置 https://service.sap.com/notes
這些附註原先稱為知識庫文章。 https://www.sdn.sap.com/irj/scn/forums http://www.sap.com/services/education
從傳統的教室學習方法,到目標線上學習的研討會,我們都可以根據您
的學習需求和喜愛的學習方式,提供一套訓練課程。 http://service.sap.com/bosap-support
SAP 支援入口網站包含客戶支援方案和服務的相關資訊。它還提供各種
技術資訊和下載的連結。簽署維護合約的客戶可以透過授權的使用者 ID
存取此網站。要獲得 ID,請與客戶支援代表聯絡。 http://www.sap.com/services/bysubject/businessobjectsconsulting
諮詢人員會一直陪伴著您,從最初的分析階段,直到最後的部署專案交
付。提供有關各種主題的專家意見,例如關聯式和多維度資料庫、連通
性、資料庫設計工具以及自訂的嵌入式技術。
220 2013-09-19
索引
符號
#UNAVAILABLE
A
B
BW 錯誤
C
Col 運算子 62, 65, 66, 67, 69, 186
D
DataProviderKeyDateCaption 函式
DocumentPartiallyRefreshed 函式
E
EuroFromRoundError 函式 134, 199
K
F
G
GetDominantPreferredViewingLocale
GetPreferredViewingLocale 函式 164
H
I
Interpolation 函式 139, 185, 186
221 2013-09-19
索引
L
M
N
Null 值
O
P
Q
R
RefValueUserResponse 函式 112, 184
Row 運算子 62, 65, 66, 67, 69, 186
S
T
U
URL
V
W
Y
222 2013-09-19
索引
四畫
公式
公式編輯器
分析範圍
分割
切片維度
文件
文件地區設定
文件函式
日期
日期和時間
日期和時間格式
日期與時間函式
水平表格
五畫
主要慣用的檢視地區設定
可折式儲存格
布林值
223
布林格式
布林運算式
平均值
六畫
交叉表
地區設定
字元
字元字串
字元函式
字串
成員
成員集
七畫
尾隨空格
八畫
使用函式、公式與計算指南
函式
DataProviderKeyDateCaption 105
DocumentPartiallyRefreshed 117
2013-09-19
索引
函式 (繼續)
GetDominantPreferredViewingLocale
函式 (繼續)
函式 (繼續)
函式語法
奇數
物件
表格
224 2013-09-19
索引
表格 (繼續)
九畫
前置空格
垂直表格
查詢
查詢屬性
計量
計量值
計算
計算內容
頁面
頁數
十畫
時間值
時間座標軸
十一畫
偶數
區段
225
區段 (繼續)
區塊
參考資料
執行彙總函式
巢狀 OR 篩選器
排名
排序
排序順序
產品
產品地區設定
貨幣
貨幣值
貨幣格式
十二畫
最大值
最小值
報表
提示
智慧型計量
智慧型計量 (繼續)
十三畫
資料
資料列
資料行
資料提供者函式
運算子
2013-09-19
索引
運算子 (繼續)
預設計算內容
十四畫
圖表
慣用的檢視地區設定
維度
維度上的篩選器
語意層
十五畫
數字
數字格式
數值
數值函式
歐元
歐洲貨幣
範例
十六畫
篩選器
篩選器 (繼續)
輸入內容
輸出內容
錯誤
錯誤訊息
十七畫
儲存格
十八畫
雜項函式
226 2013-09-19
十九畫
關鍵字
關鍵字 (繼續)
二十三畫
變數
邏輯函式
索引
227 2013-09-19
Download
Advertisement