Dual - 指令碼與圖表函數
Dual() 會將數字和字串結合成單筆記錄,因此記錄的數字表示法可用於排序和計算目的,而字串值可用於顯示目的。
語法:
Dual(text, number)
傳回的資料類型: 雙值
引數:
引數 | 描述 |
---|---|
text | 要與數字引數組合使用的字串值。 |
number | 要與字串引數中字串組合使用的數字。 |
在 QlikView 中,所有欄位值都可能是雙值。這表示欄位值可以同時具有數值和文字值。範例是可以具有數值 40908 和文字表示法 '2011-12-31' 的日期。
讀入同一個欄位的數個資料項目有不同的字串表示法,但是卻有相同的有效數字表示法時,則這些資料項目將共用第一個出現的字串表示法。
範例 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 可以在圖表中使用,例如作為維度。在具有週的表格中,日子自動排序為其正確的數字順序,而不使用字母順序。
範例 2:
Load Dual('Q' & Ceil(Month(Now())/3), Ceil(Month(Now())/3)) as Quarter AutoGenerate 1;
此範例會尋找目前季度。當 Now() 函數在一年中的前三個月中執行時,它會顯示為 Q1,針對第二個三個月時,會顯示為 Q2,依此類推。然而,當用於排序中時,欄位 Quarter 將用作數值:1 到 4。
範例 3:
Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3)) as Quarter
如前一個範例所示,建立欄位 Quarter,使用文字值 'Q1' 至 'Q4',并指派數值 1 至 4。為了在指令碼中使用此項目,必須載入 Date 的值。
範例 4:
Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date)) as YearWeek
此範例建立欄位 YearWeek,文字值來自表單 '2012-W22',同時,指派對應於週第一天日期數的數值,例如:41057. 為了在指令碼中使用此項目,必須載入 Date 的值。