記錄間函數
使用記錄間函數的時機:
- 在載入指令碼中,當評估目前記錄需要先前載入的資料記錄值時。
- 在圖表運算式中,當需要來自圖表資料集的其他值時。
資訊備註
當任何圖表運算式使用了記錄間圖表函數時,就不允許在圖表中依據 Y 值排序,或在表格中依據運算式資料行排序。因此,這些排序替代選項會自動停用。
資訊備註從 QlikView 12.00,依預設會啟用隱藏零值。若您想要在使用記錄間函數時保留與 QlikView 11.20 中相同的行為,應停用隱藏零值。開啟圖表屬性,前往簡報標籤,並取消選取隱藏零值。
資訊備註自我參考運算式定義只有在少於 100 列的表格中才能可靠進行,但根據執行 Qlik 引擎的硬體,情況可能會不同。
使用各個函數的下拉式清單,查看各函數的簡短描述及語法。按一下語法描述中的函數名稱以取得更多詳細資料。
列函數
這些函數僅可用於圖表運算式。
Above() 會評估表格中資料行區段內目前列上方的列中的運算式。要計算的列取決於 offset 的值,如果存在,預設為正上方的列。針對圖表而非表格,Above() 會評估圖表的連續表同等表格內目前列上方的列。
above([TOTAL [<fld{,fld}>]] expr
[ , offset [,count]])
Below() 會評估表格中資料行區段內目前列下方的列中的運算式。要計算的列取決於offset 的值,如果存在,預設為正下方的列。針對圖表而非表格,Below() 會評估圖表的連續表同等表格內目前資料行下方的列。
below([TOTAL[<fld{,fld}>]] expression
[ , offset [,count
]])
Bottom() 會評估表格中資料行區段的最後 (底端) 列中的運算式。要計算的列取決於 offset 的值,如果存在,預設為底端列。針對圖表而非表格,會在圖表的連續表同等表格內目前資料行的最後列上進行評估。
bottom([TOTAL[<fld{,fld}>]] expr
[ , offset [,count
]])
Top() 會評估表格中資料行區段的第一 (頂端) 列中的運算式。要計算的列取決於 offset 的值,如果存在,預設為頂端列。針對圖表而非表格,Top() 會在圖表的連續表同等表格內目前資料行的第一列上進行評估。
top([TOTAL [<fld{,fld}>]] expr [ , offset [,count
]])
NoOfRows() 會傳回表格中目前資料行區段中的列數。若是點陣圖圖表,NoOfRows() 會傳回圖表的連續表同等表格中的列數。
noofrows([TOTAL])
資料行函數
這些函數僅可用於圖表運算式。
Column() 會忽略圖表維度,傳回連續表中 ColumnNo 所對應的資料行中找到的值。例如,Column(2) 會傳回第二個量值資料行的值。
column(ColumnNo)
Dimensionality() 會傳回目前列的維度數。對於樞紐分析表而言,該函數會傳回有非彙總內容 (亦即不包含部分加總或摺疊彙總) 之維度資料行的總數。
dimensionality ( )
Secondarydimensionality() 會傳回有非彙總內容 (亦即不包含部分加總或摺疊彙總) 之維度樞紐分析表列的數目。此函數相當於針對水平樞紐分析表維度的 dimensionality() 函數。
secondarydimensionality ( )
欄位函數
FieldIndex() 會傳回在欄位 field_name 中欄位值 value 的位置 (依據載入順序)。
fieldindex(field_name ,
value)
FieldValue() 會傳回在欄位 field_name 的位置 elem_no 中找到的值 (依據載入順序)。
fieldvalue(field_name , elem_no)
樞紐分析表函數
這些函數僅可用於圖表運算式。
After() 傳回以樞紐分析表的維度值評估而得的運算式值,這些值會顯示在樞紐分析表的列區段內,目前資料行之後的資料行中。
after([TOTAL] expression
[ , offset [,n]])
Before() 會傳回以樞紐分析表的維度值評估而得的運算式的值,這些值會顯示在樞紐分析表的列區段內,目前資料行之前的資料行中。
before([TOTAL] expression
[ , offset [,n]])
First() 傳回以樞紐分析表的維度值評估而得的運算式值,這些值會顯示在樞紐分析表中目前列區段的第一個資料行中。此函數在所有圖表類型中都會傳回 NULL,除了樞紐分析表以外。
first([TOTAL] expression
[ , offset [,n]])
Last() 會傳回以樞紐分析表的維度值評估而得的運算式的值,這些值會顯示在樞紐分析表中目前列區段的最後一個資料行中。此函數在所有圖表類型中都會傳回 NULL,除了樞紐分析表以外。
last([TOTAL] expression
[ , offset [,n]])
ColumnNo() 傳回樞紐分析表中目前列區段內,目前資料行的編號。第一行的編號為 1。
columnno([TOTAL])
NoOfColumns() 傳回樞紐分析表中目前列區段中的資料行數。
noofcolumns([TOTAL])
載入指令碼中的記錄間函數
Exists() 會確定載入指令碼中的欄位內是否已載入特定欄位值。該函數會傳回 TRUE 或 FALSE,可用於 LOAD 陳述式或 IF 函數的 where 子句中。
Exists(field
[ , expression ]
Lookup() 會查詢已載入的表格,並且傳回的 field_name 值相當於欄位 match_field_name 中第一次出現的值 match_field_value。表格可以是目前表格或之前載入的其他表格。
LookUp(fieldname,
matchfieldname, matchfieldvalue [, tablename])
Peek() 會針對已經載入的或存在於內部記憶體中的列,找出表格中的欄位值。列數跟表格數一樣可以指定。
Peek(fieldname [ , row [ , tablename ] ]
Previous() 使用來自先前輸入記錄的資料,找到 expr 運算式的值。在內部表格的第一筆記錄中,此函數會傳回 NULL。
Previous(expression )