Функции форматирования Qlik Sense – синтаксис и пример
Мы используем функции форматирования в Qlik Sense для форматирования числовых значений в определенных форматах, таких как время, дата, деньги, интервал, число и т. д. Такие функции возвращают значения в двойном формате, т.е. для каждого значения существует строка и числовая интерпретация. По сути, функции форматирования Qlik Sense преобразуют числовые значения (принимаемые в качестве входных данных) в строковое представление, которое представляет входное числовое значение.
Итак, давайте рассмотрим функции форматирования Qlik Sense.
Функции форматирования в Qlik Sense
i. Функция ApplyCodepage() в Qlik Sense
Мы используем функцию applycodepage(), чтобы применить формат (набор символов кодовой страницы) к выражению диаграммы или другой странице. Обычно мы используем эту функцию, когда хотим скопировать определенный символ из одного раздела кода в другой. В выражениях скрипта мы чаще всего используем эту функцию.
Синтаксис:
ApplyCodepage(text, codepage)
В текстовом параметре вы можете указать поле или текст, к которому хотите применить кодовую страницу.
Codepage – это набор символов, который должен применяться к полю или тексту.
Например, у нас есть фрагмент кода, в котором мы хотим применить наборы символов соответствующих языков к трем строкам. Мы сделаем это для каждой строки с помощью функции applycodepage.
LOAD ApplyCodepage(ROWA,1253) as GreekProduct, ApplyCodepage (ROWB, 1255) as HebrewProduct, ApplyCodepage (ROWC, 65001) as EnglishProduct; SQL SELECT ROWA, ROWB, ROWC From Products;
Таким образом, это применит набор греческих символов Windows, для которого соответствующее число – 1253, к полю ROWA. Точно так же 1255 и 65001 являются стандартными наборами символов UTF-8 для иврита и английского/латинского языков соответственно, которые мы будем применять к полям ROWB и ROWC соответственно. Эти три поля загружаются из SQL и не входят в требуемые наборы символов. Итак, мы используем эту функцию для применения стандартных наборов символов Windows.
ii. Функция Date() в Qlik Sense
Функция date() определяет формат даты для значения или выражения в скрипте загрузки данных. Как и все функции форматирования, эта функция также возвращает значение в двойном формате, то есть в текстовой и числовой интерпретациях.
Синтаксис:
Date(number[, format])
где число – это значение, для которого вы хотите установить формат даты.
Используя параметр формата, вы можете указать формат даты, иначе в системе будут сохранены форматы по умолчанию. По умолчанию в системе есть два типа форматов: ГГ-ММ-ДД и М/Д/ГГ.
Пример использования этой функции в коде,
Date( Startday )
где Startday=35648
Это выражение вернет два значения, числовое и текстовое для обоих типов данных по умолчанию. Для настройки ГГ-ММ-ДД строковое представление даты будет 97-08-06, а числовая интерпретация будет 35648. Аналогично, для формата М/Д/ГГ строковое представление будет 8/6/97 и числовое представление – 35648.
Date(Joining, 'DD/MM/YYYY')
где Joining = 35648
Таким образом, строковое представление, соответствующее этому номеру, – 08.06.1997, а числовое представление – 35648.
iii. Функция Dual() в Qlik Sense
Мы используем функцию dual(), поскольку название предполагает создание как текстового (строкового), так и числового представления значения. Как мы видели в приведенном выше примере, у нас было текстовое представление «06/08/1997» для числового значения 35648 для одной даты. Двойные значения полезно создавать, потому что в их случае текстовое значение используется для отображения или представления, а числовой аналог этого значения используется для хранения и вычислений.
Синтаксис:
Dual(text, number)
Где text – это текстовое значение, для которого вы хотите получить числовую часть, а числовой параметр – это числовое значение, которое вы хотите использовать со строковым значением в аргументе.
Например, в приведенном ниже коде мы загрузили поле с именем DayOfWeek, которое содержит дни недели как строковые представления и соответствующие числам строки. Числовая часть используется для сортировки этих дней недели в числовом виде, и если дни недели обозначаются числами в другой функции, то эти числа (от 0 до 6) могут использоваться логикой системы, чтобы понять, какой день недели упоминается.
Load dual ( DayName,DayNumber ) as DayOfWeek inline [ DayName,DayNumber, Monday,0 Tuesday,1 Wednesday,2 Thursday,3 Friday,4 Saturday,5 Sunday,6 ];
iv. Функция Interval() в Qlik Sense
Функция interval() определяет формат интервала для интервалов даты и времени, которые обычно используются в выражениях диаграмм и скриптах загрузки данных. Интервалы можно отформатировать разными способами, например, как время, как день, как время и как день, оба из которых имеют как элементы даты, так и элементы времени.
Синтаксис:
Interval(number[, format])
Где number – это числовое значение, которое вы хотите отформатировать как интервал.
Упоминая формат, вы устанавливаете тип форматирования, который хотите применить к числу. Если тип форматирования не указан, то применяются форматы по умолчанию, например, ГГ-ММ-ДД для даты и чч:мм:сс для времени и десятичного разделителя чисел.
Например,
Interval( Day )
где Day=0.375
Возвращает строковое значение ’09: 00: 00 ’и соответствующее число 0,375 для этого значения. Таким образом, эта функция возвращает значения в двойных форматах данных.
v. Функция Money() в Qlik Sense
Функция money() используется для форматирования значений как представления денег. Наборы форматирования обычно берутся из доступных системных переменных в сценарии загрузки данных или в операционной системе. Если вы хотите применить к значениям любой другой денежный формат, вам необходимо указать их в выражении с допустимым десятичным разделителем и разделителем тысяч.
Синтаксис:
Money(number[, format[, dec_sep[, thou_sep]]])
Где number – это значение, которое нужно отформатировать как деньги.
Format – это особый формат, который определяется системой или упоминается пользователем. Если вы не укажете формат в этой функции, то будут приняты форматы, сохраненные в системе по умолчанию. В системе доступны два типа денежных форматов: первый – kr ##0,00, MoneyThousandSep’ ‘, и второй - $ #,##0.00, MoneyThousandSep’,’.
dec_sep – строка, определяющая разделитель десятичных чисел.
thou_sep – строка, определяющая разделитель тысяч.
Например, предположим, что мы упоминаем денежный формат для значений в переменной количество.
Money( Amount, '#,##0 $', '.' , ',' )
где Amount=3564800
вернет строковое представление как 3 564 800 $ и число 3564800.
vi. Функция Num() в Qlik Sense
В этой функции вы можете указать формат числа или использовать предопределенный набор форматирования, предоставляемый системой. Эта функция также возвращает значение двойного формата.
Синтаксис:
Num(number[, format[, dec_sep [, thou_sep]]])
Где number – это значение, которое необходимо отформатировать как деньги.
Format – особый формат, который определяется системой или упоминается пользователем. Если вы не укажете формат в этой функции, то будут использоваться форматы даты, сохраненные в системе по умолчанию.
dec_sep – строка, определяющая разделитель десятичных чисел. MoneyDecimalSep используется в качестве десятичного разделителя по умолчанию.
thou_sep – строка, определяющая разделитель тысяч. MoneyThousandSep используется как разделитель тысяч по умолчанию в скрипте загрузки данных.
Например, в приведенном ниже фрагменте кода мы установили формат для числовых значений как 0.00.
Sheet1: let result= Num( pi( ), '0.00' ); Load * inline [Field1; Field2 4; 12.56 1; $(result) ](delimiter is ';');
Результаты для поля Field1 будут 4 и 1. Результаты для поля Field2 будут 12,56 и 3,14 (значение числа пи) в соответствии с форматом, указанным в функции.
vii. Функция Time() в Qlik Sense
Функция time() возвращает числовое значение, форматируя его как значение времени. По умолчанию в системе установлены значения чч:мм:сс, которые используются, если вы не указываете формат времени в выражении функции.
Синтаксис:
Time(number[, format])
где number – это значение, к которому вы хотите применить формат времени. А с помощью параметра формата вы можете указать формат времени, который вы хотите.
Например, вы можете присвоить формат времени значениям в переменных.
Time( T )
где T=0.375
Возвращает строковое значение, соответствующее числовому значению для T = 0,375, которое составляет 09:00:00 в качестве времени.
viii. Функция Timestamp() в Qlik Sense
Эта функция форматирует числовое значение как отметку времени и даты. Значение возвращается в двойном формате, то есть интерпретируется как строковое и числовое значение.
Синтаксис:
Timestamp(number[, format])
где number – это числовое значение, которое должно быть отформатировано как отметка времени.
format – это особый формат, который вы хотите применить к значению, чтобы сделать его отметкой времени. Есть два типа форматов: ГГ-ММ-ДД чч:мм:сс и М/Д/ГГ чч:мм:сс, которые доступны в системе как форматы по умолчанию. Вы используете их, если не указываете формат для отметки времени.
Например,
Timestamp(TS)
где TS=35648.375
вернет два значения для каждого из двух форматов метки времени по умолчанию. Для формата ГГ-ММ-ДД чч:мм:сс результат будет: 97-08-06 09:00:00 (строка) и 35648,375 (числовой). А для формата M/D/YY чч:мм:сс результат будет 8/6/97 09:00:00 (строка) и 35648,375 (число).