Bottom - 圖表函數

Bottom() 會在表格中某個資料行區段內的最後一 (底端) 列,評估運算式。用來計算的列取決於 offset 的值,如果呈現,預設情況下是底端的列。對於表格以外的圖表,該運算式會評估圖表連續表同等表格中目前資料行的最後一列。

Syntax:  

Bottom([TOTAL] expr [ , offset [,count ]])

Return data type: 雙值

Arguments:  

引數 描述
expr 包含待測量之資料的運算式或欄位。
offset

將一個 offsetn 指定為大於 1,則可將運算式的評估從底端列往上移動 n 列。

若指定負值的位移,會讓 Bottom 函數的作用相當於包含對應正值位移的 Top 函數。

count

將第三個參數 count 指定為大於 1,函數會傳回不是一個,而是 count 的範圍值,目前資料行區段的最後 count 列的每列一個值。 在這種形式下,該函數可作為任何特殊範圍函數的引數。 範圍函數

TOTAL

如果表格為單一維度或 TOTAL 限定詞作為引數,則目前資料行區段一律等於整個資料行。

定義彙總範圍

備註: 資料行區段定義為連續的儲存格子集,針對目前排序順序中的維度具有相同的值。內部記錄圖表函數在資料行區段中進行計算,並排除同等連續表圖表中的最右側維度。如果圖表中只有一個維度,或者如果指定 TOTAL 限定詞,則該運算式會對完整表格進行評估。
備註: 如果表格或同等表格有多個垂直維度,則目前資料行區段僅會包含在所有維度資料行中與目前列有相同值的列,除了顯示在欄位間排序順序中為最後一個維度的資料行之外。

Limitations:  

遞迴呼叫會傳回 NULL

Examples and results:  

Example: 1

範例 1 的表格視覺化。

本範例展示的表格螢幕擷取畫面中,表格視覺化是從維度 Customer 和量值:Sum(Sales)Bottom(Sum(Sales)) 建立而成。

資料行 Bottom(Sum(Sales)) 針對所有列傳回 757,因為這是底端列:Divadip 的值。

該表格也顯示更複雜的量值:一個是從 Sum(Sales)+Bottom(Sum(Sales)) 建立,另一個標記為 Bottom offset 3,是使用運算式 Sum(Sales)+Bottom(Sum(Sales), 3) 建立且具有設為 3offset 引數。將目前列的 Sum(Sales) 值加上從底端列算起第三列的值,也就是目前列加上 Betacab 的值。

Example: 2

本範例展示的表格螢幕擷取畫面中,視覺化中新增了更多維度:MonthProduct。 對於有多個維度的圖表,包含 AboveBelowTopBottom 函數的運算式結果取決於按 Qlik Sense 排序的資料行維度的順序。Qlik Sense 會根據上一次排序維度所產生的資料行區段來評估功能。資料行排序順序在屬性面板的排序下進行控制,而不需要按照資料行在表格中呈現的順序。

在第一個表格中,系統是根據 Month 評估運算式,而第二個表格中則是根據 Product 加以評估。量值 End value 包含運算式 Bottom(Sum(Sales))Month 的底端列是 Dec,而螢幕擷取畫面中顯示的 Dec 的值和 Product 值是 22。(部分列已在螢幕擷取畫面之外進行編輯以節省空間。)

範例 2 的第一個表格。End value 量值根據 Month (Dec) 的 Bottom 值。

範例 2 的第二個表格。End value 量值根據 Product (AstridaBB) 的 Bottom 值。

請參閱 Above 函數中的範例:2 以取得進一步詳細資料。

Example: 3

結果

Bottom 函數可做為範圍函數的輸入使用。例如:RangeAvg (Bottom(Sum(Sales),1,3))

Bottom() 函數的引數中,offset 設定為 1,而 count 設定為 3。函數得到資料行區段中頂端列上面一列算起的三列 (因為 offset=1) 和其上方兩列 (其中有一列) 的 Sum(Sales) 運算式結果。這三個值可用做 RangeAvg() 函數的輸入,該函數進而得出所提供數值範圍中的平均值。

含有 Customer 作為維度的表格可提供 RangeAvg() 運算式的以下結果。

 

Astrida

Betacab

Canutility

Divadip:

659.67

659.67

659.67

659.67

Monthnames:

LOAD * INLINE [

Month, Monthnumber

Jan, 1

Feb, 2

Mar, 3

Apr, 4

May, 5

Jun, 6

Jul, 7

Aug, 8

Sep, 9

Oct, 10

Nov, 11

Dec, 12

];

Sales2013:

crosstable (Month, Sales) LOAD * inline [

Customer|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec

Astrida|46|60|70|13|78|20|45|65|78|12|78|22

Betacab|65|56|22|79|12|56|45|24|32|78|55|15

Canutility|77|68|34|91|24|68|57|36|44|90|67|27

Divadip|57|36|44|90|67|27|57|68|47|90|80|94

] (delimiter is '|');

若要讓月份按正確的順序排序,則在建立視覺化時,前往屬性面板的 Sorting 區段,選取 Month,然後勾選核取方塊 Sort by expression。在運算式方塊中,寫入 Monthnumber