Dual - script and chart function
Dual() combines a number and a string into a single record, such that the number representation of the record can be used for sorting and calculation purposes, while the string value can be used for display purposes.
Syntax:
Dual(text, number)
Return data type: dual
Argument | Description |
---|---|
text | The string value to be used in combination with the number argument. |
number | The number to be used in combination with the string in the string argument. |
In Qlik Sense, all field values are potentially dual values. This means that the field values can have both a numeric value and a textual value. An example is a date that could have a numeric value of 40908 and the textual representation '2011-12-31'.
Example | Description |
---|---|
Dual(IF(DayOfWeek = 0, 'Monday', IF(DayOfWeek = 1, 'Tuesday', If(DayOfWeek = 2 ,'Wednesday', If(DayOfWeek = 3 ,'Thursday', If(DayOfWeek = 4 ,'Friday', If(DayOfWeek = 5 ,'Saturday', If(DayOfWeek = 6 ,'Sunday' ))))))), DayOfWeek) |
The field DayOfWeek can be used in a visualization as a dimension. In a table, the week days are automatically sorted into their correct number sequence, instead of alphabetical order. |
Dual(Pick( Priority , 'Low','Medium','High'), Priority) | The field Priority can be used in a visualization as a dimension. In a table, the field Priority is automatically sorted into its correct number sequence, instead of alphabetical order. |
Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3)) | The field Date can be used in a visualization as a dimension. The text values Q1 to Q4 are created and assigned the numeric values 1 to 4. |
Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date)) |
The field Date can be used in a visualization as a dimension. This example creates text values of the form '2012-W22' and at the same time, assigns a numeric value corresponding to the date number of the first day of the week, for example: 41057. |
Example | Description |
---|---|
Add the following examples to your script and run it. Load dual ( NameDay,NumDay ) as DayOfWeek inline [ NameDay,NumDay Monday,0 Tuesday,1 Wednesday,2 Thursday,3 Friday,4 Saturday,5 Sunday,6 ]; |
The field DayOfWeek can be used in a visualization as a dimension for example. In a table, the week days they are automatically sorted into their correct number sequence, instead of alphabetical order. |
Load Dual('Q' & Ceil(Month(Now())/3), Ceil(Month(Now())/3)) as Quarter AutoGenerate 1; | This example finds the current quarter. It is displayed as Q1 when the Now function is run in the first three months of the year, Q2 for the second three months, and so on. However, when used in sorting, the field Quarter will behave as its numerical value: 1 to 4. |
Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3)) as Quarter | As in the previous example, the field Quarter is created with the text values Q1 to Q4, and assigned the numeric values 1 to 4. In order to use this in the script the values for Date must be loaded. |
Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date)) as YearWeek | This example creates a field YearWeek with text values of the form 2012-W22 and at the same time, assigns a numeric value corresponding to the date number of the first day of the week, for example: 41057. In order to use this in the script the values for Date must be loaded. |