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

Below - 圖表函數

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

語法:  

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

傳回的資料類型: 雙值

引數:  

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

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

若將位移指定為 0,則會根據目前列來評估運算式。

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

count

將第三個參數 count 指定為大於 1,函數會傳回 count 的範圍值,從原始儲存格往下算 count 個表格列的每列一個值。 在這種形式下,該函數可作為任何特殊範圍函數的引數。 範圍函數

TOTAL

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

定義彙總範圍

會對資料行區段的最後一列傳回 NULL 值,因為在該列之下沒有任何列。

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

限制:  

  • 遞迴呼叫會傳回 NULL

  • 當任何圖表運算式使用了此圖表函數時,就不允許在圖表中依據 Y 值排序,也不允許在表格中依據運算式資料行排序。因此,這些排序替代選項會自動停用。在視覺化或表格中使用此圖表函數時,視覺化排序將還原為對此函數的排序輸入。

範例與結果:  

範例 1:  

範例 1 的表格視覺化

Table visualization for Example 1.

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

資料行 Below(Sum(Sales)) 會針對包含 DivadipCustomer 列傳回 NULL,因為該列之下沒有任何列。Canutility 列的結果顯示 DivadipSum(Sales) 值;Betacab 的結果顯示 CanutilitySum(Sales) 值,以此類推。

該表格也顯示更複雜的量值,會顯示在具有下列標記的資料行中:Sum(Sales)+Below(Sum(Sales))Below +Offset 3Higher?。這些運算式的運作方式如以下段落所述。

針對標記為 Sum(Sales)+Below(Sum(Sales)) 的資料行,Astrida 列顯示 Betacab + Astrida 列加上 Sum(Sales) 值的結果 (539+587)。Betacab 列的結果顯示 Canutility + Betacab 列加上 Sum(Sales) 值的結果 (539+683)。

使用 Sum(Sales)+Below(Sum(Sales), 3) 運算式所建立且標記為 Below +Offset 3 的量值,擁有設為 3 的引數 offset,且具有使用目前列下方第三列值的效果。將目前 CustomerSum(Sales) 值加到下方三列的 Customer 值。最下面三個 Customer 列傳回的值為 NULL。

標記為 Higher? 的量值是從運算式:IF(Sum(Sales)>Below(Sum(Sales)), 'Higher') 建立而成。這會比較量值 Sum(Sales) 中目前列的值與其下方列的值。若目前列的值較大,輸出則為文字「Higher」。

提示備註此函數還可以用於表格之外的圖表中,例如長條圖。
提示備註對於其他圖表類型,將圖表轉換為連續表同等表格,以便您可以輕鬆解譯函數相關的列。

對於有多個維度的圖表,包含 AboveBelowTopBottom 函數的運算式結果取決於按 Qlik Sense 排序的資料行維度的順序。Qlik Sense 會根據上一次排序維度所產生的資料行區段來評估功能。資料行排序順序在屬性面板的排序下進行控制,而不需要按照資料行在表格中呈現的順序。請參閱 Above 函數中的範例:2 以取得進一步詳細資料。

範例 2

範例 2:  

結果

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

Below() 函數的引數中,offset 設定為 1,而 count 設定為 3。函數得到資料行區段 (其中有一列) 中目前列正下方三列的 Sum(Sales) 運算式結果。這三個值可用做 RangeAvg() 函數的輸入,該函數進而得出所提供數值範圍中的平均值。

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

 

Astrida

Betacab

Canutility

Divadip:

659.67

720

757

-

範例中使用的資料:

Monthnames: LOAD *, Dual(MonthText,MonthNumber) as Month INLINE [ MonthText, 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 (MonthText, 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 '|');

此頁面是否對您有幫助?

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