Функции нумерации дней в Qlik Sense с примером
Сегодня мы рассмотрим функции нумерации дней Qlik Sense. Эти функции возвращают даты и числа для конкретных случаев времени и даты, упомянутых в функциях. Так, вы можете использовать эти функции для вычисления таких показателей, как возраст, количество рабочих дней, первая и последняя рабочие даты, номера дней в году и квартале, на основе такой информации, как отметка времени (дата и время), дата рождения и т. д.
Функции нумерации дней в Qlik Sense с примером
i. функция age()
Функция age() возвращает возраст человека в годах, который оценивается по информации, указанной в метке времени (которая является текущей датой), и датой рождения человека. Эта функция возвращает числовое значение.
Синтаксис функции возраста Qlik Sense:
age(timestamp, date_of_birth)
Например, если вы используете формат даты ДД/ММ/ГГГГ, то
age(’25.01.2018 ′, ’25.12.2010’) вернет 6, поскольку у человека будет 6 полных лет, 7-й год начнется 25 января 2018 года, что является значением временной метки.
Введите приведенный ниже сценарий в редактор сценариев своего приложения Qlik Sense и посмотрите, какие результаты вы получите.
Employees: LOAD * INLINE [ Member|DateOfBirth John|28/03/1989 Kacey|10/12/1990 Steven|5/2/1992 Samuel|31/3/1993 Chris|19/5/1994 Mike|15/9/1994 Kendal|11/12/1994 Jenny|2/3/1995 Katie|14/5/1996 Mathew|13/6/1996 Peter|7/7/1998 Emma|4/8/2000 ] (delimiter is |); AgeTable: Load *, age('20/08/2015', DateOfBirth) As Age Resident Employees; Drop table Employees;
Это приведет к появлению трех новых полей: Member (Член), DateOfBirth (Дата рождения) и Age (Возраст), которые в таблице будут выглядеть так, если все возрасты генерируются функцией age(), которую мы использовали в представленном выше скрипте.
Member |
DateOfBirth |
Age |
John |
28/03/1989 |
26 |
Kacey |
10/12/1990 |
24 |
Steven |
5/2/1992 |
23 |
Samuel |
31/3/1993 |
22 |
Chris |
19/5/1994 |
21 |
Mike |
15/9/1994 |
20 |
Kendal |
11/12/1994 |
20 |
Jenny |
2/3/1995 |
20 |
Katie |
14/5/1996 |
19 |
Mathew |
13/6/1996 |
19 |
Peter |
7/7/1998 |
17 |
Emma |
4/8/2000 |
15 |
ii. функция networkdays()
Функция networkdays() возвращает общее количество рабочих дней с понедельника по пятницу, кроме субботы. Воскресенья и праздничные дни указываются в выражении функции.
Синтаксис функции networkdays в Qlik Sense:
networkdays(start_date, end_date [, holiday])
Где дата начала и дата окончания указывают период времени, для которого вы хотите рассчитать рабочие дни. Если вы хотите указать какие-либо праздники, вы можете сделать это, указав даты праздников в выражении, например, «25 декабря 2013 г.», «26 декабря 2013 г.», «31 декабря 2013 г.», «01/01/2014 ′ через запятую.
Например,
networkdays ('19/12/2013', '07/01/2014', '25/12/2013', '26/12/2013')
Вы получите 12 рабочих дней. В расчете указываются праздничные дни с 25.12.2013 по 26.12.2013.
iii. функция firstworkdate()
Эта функция возвращает первую рабочую дату (то есть дату начала), учитывая, что дата окончания работы и чистые рабочие даты указаны в функции как параметры. Она также учитывает любые праздники при оценке выражения, если упомянуто. Она возвращает значения как целые числа.
Синтаксис функции firstworkdate:
firstworkdate(end_date, no_of_workdays {, holiday})
Например,
firstworkdate (’29/12/2017′, 10) вернет 16.12.2017 в качестве первой рабочей даты.
Если вы укажете праздники, то будет выглядеть примерно так:
firstworkdate (’29/12/2017′, 9, ’25/12/2017′, ’26/12/2017′) вернет 15.12.2017 в качестве первой рабочей даты, где даты 25.12.2017 и 26/12/2017 – праздничные дни.
iv. функция lastworkdate()
В отличие от функции firstworkdate(), lastworkdate() возвращает последнюю дату работы, то есть дату окончания периода времени с чистыми рабочими днями. Функция возвращает значения в двойном типе данных.
Синтаксис функции lastworkdate в Qlik Sense:
lastworkdate(start_date, no_of_workdays {, holiday})
Например,
Выражение lastworkdate ('19/12/2017', 9) вернет 31.12.2017 в качестве последней рабочей даты. Где дата 19/12/2017 – это дата начала, а 9 – количество рабочих дней, после которых мы хотим узнать дату окончания или последнюю рабочую дату. В выражении вы также указываете праздники, разделяя даты запятыми, если их несколько.
v. функция daynumberofyear()
Эта функция возвращает номер дня из 366 дней в году на основе текущей даты, метки времени или даты, указанной в функции. Вы также можете заставить функцию вычислять n-й день от начала определенного месяца (т. е. 1-го числа данного месяца), указав этот месяц в числах в функции. Эта функция возвращает значение с целым числом в качестве типа данных.
Синтаксис функций нумерации дней Qlik Sense:
DayNumberOfYear(timestamp[,start_month])
Например,
DayNumberOfYear('12/09/2017') возвращает 256, что соответствует числу дней, приходящихся на эту дату с 1 января 2017 года.
Если указать месяц, то результат будет такой:
DayNumberOfYear('12/09/2017',3) возвращает 196 как номер дня, встречающегося с 1 марта.
vi. функция daynumberofquarter()
Поскольку 12 месяцев в году можно разделить на три квартала, эта функция возвращает номер дня, когда наступает конкретная дата в квартале, в котором она находится.
Синтаксис функций номерования в Qlik Sense:
DayNumberOfQuarter(timestamp[,start_month])
где timestamp – это дата, которую вы хотите узнать, номер дня в квартале, а start_month – это номер месяца, который вы хотите установить в качестве начального месяца для этой оценки. Эта функция всегда возвращает целочисленное значение.
Например,
DayNumberOfQuarter('12/09/2017')
Вернет 74 как номер дня текущего квартала.
DayNumberOfQuarter('12/09/2014',3)
Возвращает «12» как номер дня текущего квартала. Квартал начнется с 3-го месяца, то есть с марта.