Эта функция возвращает значение, соответствующее метке времени, включающей последнюю миллисекунду последнего дня года, содержащего значение, указанное в поле date. По умолчанию для вывода используется формат DateFormat, установленный в скрипте.
Другими словами, функция yearend() определяет, на какой год приходится дата. Затем она возвращает метку времени в формате даты для последней миллисекунды этого года. По умолчанию первым месяцем года является январь. Однако также можно изменить первый месяц, используя аргумент first_month_of_year в функции yearend().
Примечание к информации Функция yearend() не учитывает системную переменную FirstMonthOfYear. Год начинается 1 января, если для его изменения не используется аргумент first_month_of_year.
Когда это следует использовать
Функция yearend() используется в составе выражения, когда требуется использовать в расчетах часть года, которая еще не прошла, например, если требуется рассчитать общую сумму процентов, еще не начисленных в течение года.
Возвращаемые типы данных: двойное значение
Аргументы
Аргумент
Описание
date
Дата или метка времени для вычисления.
period_no
period_no — целое число, где 0 обозначает год, включающий значение, указанное в поле date. Отрицательные значения, заданные в поле period_no, означают предшествующие годы, положительные — последующие.
first_month_of_year
Если необходимо работать с годами (финансовыми), которые начинаются не в январе, задайте значение от 2 до 12 в поле first_month_of_year.
Можно использовать следующие значения, чтобы задать первый месяц года в аргументе first_month_of_year:
значения first_month_of_year
Месяц
Значение
Февраль
2
Март
3
Апрель
4
May
5
Июнь
6
Июль
7
Август
8
Сентябрь
9
Октябрь
10
Ноябрь
11
Декабрь
12
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Примеры функции
Пример
Результат
yearend('10/19/2001')
Возвращает 12/31/2001 23:59:59.
yearend('10/19/2001', -1)
Возвращает 12/31/2000 23:59:59.
yearend('10/19/2001', 0, 4)
Возвращает 03/31/2002 23:59:59.
Пример 1. Без дополнительных аргументов
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций с 2020 по 2022 год, загружается в таблицу под именем Transactions.
Поле даты было предоставлено в формате системной переменной DateFormat ((MM/DD/YYYY)).
Предшествующий оператор load, который содержит следующее:
Функция yearend(), заданная как поле year_end.
Функция Timestamp(), заданная как поле year_end_timestamp.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
date
year_end
year_end_timestamp
Результирующая таблица
id
date
year_end
year_end_timestamp
8188
01/13/2020
12/31/2020
12/31/2020 11:59:59 PM
8189
02/26/2020
12/31/2020
12/31/2020 11:59:59 PM
8190
03/27/2020
12/31/2020
12/31/2020 11:59:59 PM
8191
04/16/2020
12/31/2020
12/31/2020 11:59:59 PM
8192
05/21/2020
12/31/2020
12/31/2020 11:59:59 PM
8193
08/14/2020
12/31/2020
12/31/2020 11:59:59 PM
8194
10/07/2020
12/31/2020
12/31/2020 11:59:59 PM
8195
12/05/2020
12/31/2020
12/31/2020 11:59:59 PM
8196
01/22/2021
12/31/2021
12/31/2021 11:59:59 PM
8197
02/03/2021
12/31/2021
12/31/2021 11:59:59 PM
8198
03/17/2021
12/31/2021
12/31/2021 11:59:59 PM
8199
04/23/2021
12/31/2021
12/31/2021 11:59:59 PM
8200
05/04/2021
12/31/2021
12/31/2021 11:59:59 PM
8201
06/30/2021
12/31/2021
12/31/2021 11:59:59 PM
8202
07/26/2021
12/31/2021
12/31/2021 11:59:59 PM
8203
12/27/2021
12/31/2021
12/31/2021 11:59:59 PM
8204
06/06/2022
12/31/2022
12/31/2022 11:59:59 PM
8205
07/18/2022
12/31/2022
12/31/2022 11:59:59 PM
8206
11/14/2022
12/31/2022
12/31/2022 11:59:59 PM
8207
12/12/2022
12/31/2022
12/31/2022 11:59:59 PM
Поле year_end создано предшествующим оператором load с использованием функции yearend(), где в качестве аргумента функции передано поле даты.
Функция yearend() первоначально определяет, к какому году относится значение даты, и возвращает метку времени для последней миллисекунды этого года.
Транзакция 8199 совершена 23 апреля 2021 года. Функция yearend() возвращает последнюю миллисекунду этого года, то есть 31 декабря в 23:59:59.
Пример 2. Скрипт period_no
Обзор
Используется тот же набор данных и сценарий, что в первом примере.
Однако в этом примере задача состоит в том, чтобы создать поле previous_year_end, которое возвращает метку времени даты окончания года, предшествующего тому, в котором совершена транзакция.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
date
previous_year_end
previous_ year_end_timestamp
Результирующая таблица
id
date
previous_year_end
previous_year_end_timestamp
8188
01/13/2020
12/31/2019
12/31/2019 11:59:59 PM
8189
02/26/2020
12/31/2019
12/31/2019 11:59:59 PM
8190
03/27/2020
12/31/2019
12/31/2019 11:59:59 PM
8191
04/16/2020
12/31/2019
12/31/2019 11:59:59 PM
8192
05/21/2020
12/31/2019
12/31/2019 11:59:59 PM
8193
08/14/2020
12/31/2019
12/31/2019 11:59:59 PM
8194
10/07/2020
12/31/2019
12/31/2019 11:59:59 PM
8195
12/05/2020
12/31/2019
12/31/2019 11:59:59 PM
8196
01/22/2021
12/31/2020
12/31/2020 11:59:59 PM
8197
02/03/2021
12/31/2020
12/31/2020 11:59:59 PM
8198
03/17/2021
12/31/2020
12/31/2020 11:59:59 PM
8199
04/23/2021
12/31/2020
12/31/2020 11:59:59 PM
8200
05/04/2021
12/31/2020
12/31/2020 11:59:59 PM
8201
06/30/2021
12/31/2020
12/31/2020 11:59:59 PM
8202
07/26/2021
12/31/2020
12/31/2020 11:59:59 PM
8203
12/27/2021
12/31/2020
12/31/2020 11:59:59 PM
8204
06/06/2022
12/31/2021
12/31/2021 11:59:59 PM
8205
07/18/2022
12/31/2021
12/31/2021 11:59:59 PM
8206
11/14/2022
12/31/2021
12/31/2021 11:59:59 PM
8207
12/12/2022
12/31/2021
12/31/2021 11:59:59 PM
Так как в качестве аргумента смещения в функции yearend() использовалось period_no = -1, функция сначала определяет год, в течение которого совершены транзакции. Затем она возвращается на год назад и определяет последнюю миллисекунду этого года.
Транзакция 8199 совершена 23 апреля 2021 года. Функция yearend() возвращает последнюю миллисекунду предыдущего года, то есть 31 декабря 2020 года в 23:59:59, для поля previous_year_end.
Пример 3. Аргумент first_month_of_year
Обзор
Используется тот же набор данных и сценарий, что в первом примере.
Однако в этом примере политика компании такова, что год начинается 1 апреля.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
date
year_end
year_end_timestamp
Результирующая таблица
id
date
year_end
year_end_timestamp
8188
01/13/2020
03/31/2020
3/31/2020 11:59:59 PM
8189
02/26/2020
03/31/2020
3/31/2020 11:59:59 PM
8190
03/27/2020
03/31/2020
3/31/2020 11:59:59 PM
8191
04/16/2020
03/31/2021
3/31/2021 11:59:59 PM
8192
05/21/2020
03/31/2021
3/31/2021 11:59:59 PM
8193
08/14/2020
03/31/2021
3/31/2021 11:59:59 PM
8194
10/07/2020
03/31/2021
3/31/2021 11:59:59 PM
8195
12/05/2020
03/31/2021
3/31/2021 11:59:59 PM
8196
01/22/2021
03/31/2021
3/31/2021 11:59:59 PM
8197
02/03/2021
03/31/2021
3/31/2021 11:59:59 PM
8198
03/17/2021
03/31/2021
3/31/2021 11:59:59 PM
8199
04/23/2021
03/31/2022
3/31/2022 11:59:59 PM
8200
05/04/2021
03/31/2022
3/31/2022 11:59:59 PM
8201
06/30/2021
03/31/2022
3/31/2022 11:59:59 PM
8202
07/26/2021
03/31/2022
3/31/2022 11:59:59 PM
8203
12/27/2021
03/31/2022
3/31/2022 11:59:59 PM
8204
06/06/2022
03/31/2023
3/31/2023 11:59:59 PM
8205
07/18/2022
03/31/2023
3/31/2023 11:59:59 PM
8206
11/14/2022
03/31/2023
3/31/2023 11:59:59 PM
8207
12/12/2022
03/31/2023
3/31/2023 11:59:59 PM
Поскольку аргумент first_month_of_year = 4 используется в функции yearend(), в качестве первого дня года задается 1 апреля, а в качестве последнего дня года — 31 марта.
Транзакция 8199 совершена 23 апреля 2021 года. Поскольку функция yearend() задает в качестве начала года 1 апреля, она возвращает 31 марта 2022 года в качестве значения year_end для транзакции.
Пример 4. Пример объекта диаграммы
Обзор
Используется тот же набор данных и сценарий, что в первом примере.
Однако в этом примере в приложение загружается неизмененный набор данных. Расчет, который возвращает метку даты окончания года, в котором совершены транзакции, создается как мера в объекте диаграммы в приложении.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
date
Чтобы рассчитать год, в котором совершена транзакция, создайте следующие меры:
=yearend(date)
=timestamp(yearend(date))
Результирующая таблица
id
date
=yearend(date)
=timestamp(yearend(date))
8188
01/13/2020
12/31/2020
12/31/2020 11:59:59 PM
8189
02/26/2020
12/31/2020
12/31/2020 11:59:59 PM
8190
03/27/2020
12/31/2020
12/31/2020 11:59:59 PM
8191
04/16/2020
12/31/2020
12/31/2020 11:59:59 PM
8192
05/21/2020
12/31/2020
12/31/2020 11:59:59 PM
8193
08/14/2020
12/31/2020
12/31/2020 11:59:59 PM
8194
10/07/2020
12/31/2020
12/31/2020 11:59:59 PM
8195
12/05/2020
12/31/2020
12/31/2020 11:59:59 PM
8196
01/22/2021
12/31/2021
12/31/2021 11:59:59 PM
8197
02/03/2021
12/31/2021
12/31/2021 11:59:59 PM
8198
03/17/2021
12/31/2021
12/31/2021 11:59:59 PM
8199
04/23/2021
12/31/2021
12/31/2021 11:59:59 PM
8200
05/04/2021
12/31/2021
12/31/2021 11:59:59 PM
8201
06/30/2021
12/31/2021
12/31/2021 11:59:59 PM
8202
07/26/2021
12/31/2021
12/31/2021 11:59:59 PM
8203
12/27/2021
12/31/2021
12/31/2021 11:59:59 PM
8204
06/06/2022
12/31/2022
12/31/2022 11:59:59 PM
8205
07/18/2022
12/31/2022
12/31/2022 11:59:59 PM
8206
11/14/2022
12/31/2022
12/31/2022 11:59:59 PM
8207
12/12/2022
12/31/2022
12/31/2022 11:59:59 PM
Мера end_of_year создана в объекте диаграммы с использованием функции yearend(), где в качестве аргумента функции передано поле даты.
Функция yearend() первоначально определяет, к какому году относится значение даты, и возвращает метку времени для последней миллисекунды этого года.
Транзакция 8199 совершена 23 апреля 2021 года. Функция yearend() возвращает последнюю миллисекунду этого года, то есть 31 декабря в 23:59:59.
Пример 5. Сценарий
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных загружается в таблицу под именем Employee_Expenses. Данная таблица содержит следующие поля:
employee IDs (ИД работника)
employee name (имя работника)
average daily expense claims of each employee (средние ежедневные заявки на возмещение расходов каждого работника)
Конечному пользователю требуется получить объект диаграммы, отображающий по идентификатору и имени сотрудника расчетные расходы, которые еще предстоит понести в течение оставшейся части года. Финансовый год начинается в январе.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
employee_id
employee_name
Чтобы рассчитать планируемые заявки на возмещение расходов, создайте следующую меру:
=(yearend(today(1))-today(1))*avg_daily_claim
Задайте параметру Формат чисел меры значение Денежный.
Результирующая таблица
employee_id
employee_name
=(yearend(today(1))-today(1))*avg_daily_claim
182
Mark
$3240.00
183
Deryck
$2700.00
184
Dexter
$2700.00
185
Sydney
$5832.00
186
Agatha
$3888.00
Используя сегодняшнюю дату в качестве единственного аргумента, функция yearend() возвращает дату окончания текущего года. Затем, вычитая сегодняшнюю дату из даты окончания года, выражение возвращает количество дней, оставшихся в этом году.
Затем это значение умножается на среднюю ежедневную заявку на возмещение расходов каждого сотрудника для расчета оценочной суммы заявок, которые каждый сотрудник должен подать до конца года.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!