跳到主要內容 跳至補充內容

集合分析

在應用程式中進行選取時,您會定義資料中的記錄子集。會根據此子集計算彙總函數,例如 Sum()Max()Min()Avg()Count()

換言之,您的選項定義彙總範圍;這定義進行計算的記錄集合。

集合分析提供定義範圍的方法,與由目前選項定義的記錄集合不同。此新範圍也可被視為替代選項。

若您想要比較目前選項與特殊值,例如去年的值或全球市場占比,則這會很實用。

集合運算式

集合運算式可用於彙總函數內部和外部,並以大括弧括住。

範例: 內部集合運算式

Sum( {$<Year={2021}>} Sales )

範例: 外部集合運算式

{<Year={2021}>} Sum(Sales) / Count(distinct Customer)

如需關於內部和外部集合運算式的詳細資訊,請參閱內部和外部集合運算式

集合運算式包含以下元素的組合:

  • 識別碼。集合識別碼代表其他地方定義的選項。這也代表資料中的特定記錄集合。這可以是目前選項、來自書籤的選項或來自替代狀態的選項。簡單的集合運算式中包含單一識別碼,例如貨幣符號 {$},表示目前選項中的所有記錄。

    範例:$1BookMark1State2

    請參閱: 集合識別碼

  • 運算子。集合運算式可用來建立不同集合識別碼之間的聯集、差異或交集。以此方式,您可以建立由集合識別碼定義的選項子集或超集。

    範例:+-*/

    請參閱: 集合運算子

  • 修飾詞。集合修飾詞可新增至集合識別碼以變更其選項。修飾詞也能單獨使用,這將會修改預設識別碼。修飾詞必須以角括弧 <…> 括起。

    範例:<Year={2020}><Supplier={ACME}>

    請參閱: 集合修飾詞

合併元素以形成集合運算式。

集合運算式中的元素

集合運算式中的元素。

例如,以上集合運算式從彙總 Sum(Sales) 建置。

第一個運算元傳回目前選項的 2021 年銷售額,這由 $ 集合識別碼和包含 2021 年選項的修飾詞指示。第二個運算元傳回 SwedenSales,並忽略目前選項,這由 1 集合識別碼指示。

最終,運算式傳回包含記錄的集合,這些記錄屬於兩個集合運算元的任一個,由 + 集合運算子指示。

有關完整語法描述,請參閱 集合運算式的語法

範例

合併以上集合運算式元素的範例在下列主題中提供:

若要嘗試一些其他運算式,請參閱 教學課程 - 建立集合運算式

自然集合

通常,集合運算式代表資料模型中的記錄集合,以及定義此資料子集的選項。在此情況下,集合稱為自然集合。

含有或不含集合修飾詞的集合識別碼一律代表自然集合。

不過,使用集合運算子的集合運算式也代表記錄子集,但通常仍無法使用欄位值的選項來描述。這樣的運算式是非自然集合。

例如,{1-$} 提供的集合不可永遠由選項定義。因此這不是自然集合。可以載入下列資料、新增至表格然後使用篩選窗格進行選取,以顯示此。

Load * Inline
[Dim1, Dim2, Number
A, X, 1
A, Y, 1
B, X, 1
B, Y, 1];		

Dim1Dim2 進行選取後,就會取得顯示在下列表格中的檢視畫面。

含有自然和非自然集合的表格

含有自然和非自然集合的表格。

第一個量值中的集合運算式使用自然集合:這對應至進行 {$} 的選項。

第二個量值則不同。這使用 {1-$}。無法選取對應至此集合的選項,因此這不是自然集合。

此差異會造成一些後果:

  • 集合修飾詞只能套用至集合識別碼。這些無法套用至任意集合運算式。例如,無法使用如下的集合運算式: 

    { (BM01 * BM02) <Field={x,y}> }

    在此,一般 (圓) 括弧暗示應在套用集合修飾詞之前評估 BM01BM02 之間的交集。因為沒有可以修改的元素集。

  • 您無法在 P()E() 元素函數內部使用非自然集合。這些函數傳回元素集,但無法從非自然集合推算元素集。

  • 若資料模型有許多表格,使用非自然集合的量值無法一律歸類到合適的維度值。例如,在下列圖表中,一些排除的銷售數字歸類到正確的 Country,而其他則有 NULL 作為 Country

    含有非自然集合的圖表

    含有非自然集合的表格。

    是否正確進行指派取決於資料模型。在此情況下,若這涉及選項排除的國家,則無法指派數字。

識別碼 描述
1 代表應用程式中所有記錄的完整集合,不考慮任何已選取的選項。
$ 代表目前選項的記錄。因此,集合運算式 {$} 等同於未指明集合運算式。
$1 代表前一個選項。$2 代表前面一個選項,以此類推。
$_1 代表下一個 (前進) 選項。$_2 代表下面一個選項,以此類推。
BM01 您可使用任何書籤識別碼或書籤名稱。
MyAltState 您可以按其狀態名稱引用在輪替狀態機進行的選擇。
範例 結果
sum ({1} Sales) 傳回應用程式的總銷售額,會忽略選項,但不會忽略維度。

sum ({$} Sales)

會傳回目前選項的銷售額,亦即與 sum(Sales) 相同。

sum ({$1} Sales)

會傳回前一個選項的銷售。

sum ({BM01} Sales)

會傳回書籤 BM01 的銷售。

範例 結果
sum({$<OrderDate = DeliveryDate>} Sales) 會傳回目前選項的銷售,其中 OrderDate = DeliveryDate

sum({1<Region = {US}>} Sales)

會傳回 US 區域的銷售額,忽略目前選項。

sum({$<Region = >} Sales)

會傳回目前選項的銷售額,但移除 Region 選項。

sum({<Region = >} Sales)

會傳回與上例相同的結果。當省略要修改的集合時,會採用 $

sum({$<Year={2000}, Region={“U*”}>} Sales) 會傳回目前選項的銷售額,但為YearRegion 兩者中的新選項。

瞭解更多資訊

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!