Dual — функция скриптa и диаграммы
Dual() объединяет число и строку в одной записи таким образом, что число, представляющее строку, можно использовать для сортировки и вычислений, а значение строки может использоваться для отображения.
Синтаксис:
Dual(text, number)
Возвращаемые типы данных: двойное значение
Аргумент | Описание |
---|---|
text | Значение строки, которое будет использоваться вместе с числовым аргументом. |
number | Число, которое будет использоваться вместе со строкой в строковом аргументе. |
В программе Qlik Sense все значения полей потенциально являются двойными. Это означает, что значения полей могут иметь как числовое, так и текстовое значения. Примером служит дата, которая может иметь числовое значение 40908 и текстовое представление '2011-12-31'.
Пример | Описание |
---|---|
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) | Поле DayOfWeek можно использовать в визуализации, например, как измерение. В таблице дни недели автоматически сортируются в правильной числовой последовательности, а не по алфавиту. |
Dual(Pick( Priority , 'Low','Medium','High'), Priority) | Поле Priority можно использовать в визуализации, например, как измерение. В таблице поле Priority автоматически сортируется в правильной числовой последовательности, а не по алфавиту. |
Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3)) | Поле Date можно использовать в визуализации, например, как измерение. Создаются текстовые значения Q1 ― Q4, которым присваиваются числовые значения 1 ― 4. |
Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date)) | Поле Date можно использовать в визуализации, например, как измерение. В этом примере создаются текстовые значения в форме '2012-W22' и в то же время присваивает числовое значение в соответствии с числом даты первого дня недели, например: 41057. |
Пример | Описание |
---|---|
Добавьте следующие примеры в скрипт и запустите его. Load dual ( NameDay,NumDay ) as DayOfWeek inline [ NameDay,NumDay Monday,0 Tuesday,1 Wednesday,2 Thursday,3 Friday,4 Saturday,5 Sunday,6 ]; | Поле DayOfWeek можно использовать в визуализации, например, как измерение. В таблице дни недели автоматически сортируются в правильной числовой последовательности, а не по алфавиту. |
Load Dual('Q' & Ceil(Month(Now())/3), Ceil(Month(Now())/3)) as Quarter AutoGenerate 1; | В этом примере выполняется определение текущего квартала. Это значение отображается как Q1, если функция Now запускается в первые три месяца года, Q2 — для вторых трех месяцев и так далее. Однако при использовании в сортировке поле Quarter будет вести себя как числовое значение: от 1 до 4. |
Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3)) as Quarter | Как и в предыдущем примере, поле Quarter создается с текстовыми значениями от Q1 до Q4, и ему назначаются числовые значения от 1 до 4. Для использования в скрипте необходимо загрузить значения для параметра Date. |
Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date)) as YearWeek | В этом примере создается поле YearWeek с текстовыми значениями вида 2012-W22 и в то же время присваивает числовое значение в соответствии с числом даты первого дня недели, например: 41057. Для использования в скрипте необходимо загрузить значения для параметра Date. |