跳到主要內容

Dual - 指令碼與圖表函數

Dual() 會將數字和字串結合成單筆記錄,因此記錄的數字表示法可用於排序和計算目的,而字串值可用於顯示目的。

Syntax:  

Dual(text, number)

Return data type: 雙值

Arguments:  

Dual 引數
引數 描述
text 要與數字引數組合使用的字串值。
number 要與字串引數中字串組合使用的數字。

QlikView 中,所有欄位值都可能是雙值。這表示欄位值可以同時具有數值和文字值。範例是可以具有數值 40908 和文字表示法 '2011-12-31' 的日期。

讀入同一個欄位的數個資料項目有不同的字串表示法,但是卻有相同的有效數字表示法時,則這些資料項目將共用第一個出現的字串表示法。

提示: dual 函數一般用於指令碼前端,並會在其他資料讀入相關的欄位之前使用,以便建立將在列表框之中顯示的第一個字串表示法。

Example 1:  

將下列範例新增至您的指令碼并予以執行。

Load dual ( NameDay,NumDay ) as DayOfWeek inline

[ NameDay,NumDay

Monday,0

Tuesday,1

Wednesday,2

Thursday,3

Friday,4

Saturday,5

Sunday,6 ];

 

欄位 DayOfWeek 可以在圖表中使用,例如作為維度。在具有週的表格中,日子自動排序為其正確的數字順序,而不使用字母順序。

Example 2:  

Load Dual('Q' & Ceil(Month(Now())/3), Ceil(Month(Now())/3)) as Quarter AutoGenerate 1;

此範例會尋找目前季度。當 Now() 函數在一年中的前三個月中執行時,它會顯示為 Q1,針對第二個三個月時,會顯示為 Q2,依此類推。然而,當用於排序中時,欄位 Quarter 將用作數值:1 到 4。

Example 3:  

Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3)) as Quarter

如前一個範例所示,建立欄位 Quarter,使用文字值 'Q1''Q4',并指派數值 14。為了在指令碼中使用此項目,必須載入 Date 的值。

Example 4:  

Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date)) as YearWeek

此範例建立欄位 YearWeek,文字值來自表單 '2012-W22',同時,指派對應於週第一天日期數的數值,例如:41057. 為了在指令碼中使用此項目,必須載入 Date 的值。