Эта функция возвращает значение, соответствующее метке времени, включающей последнюю миллисекунду последнего дня месяца, содержащего значение, указанное в поле date. По умолчанию для вывода используется формат DateFormat, установленный в скрипте.
Синтаксис:
MonthEnd(date[, period_no])
Другими словами, функция monthend() определяет, на какой месяц приходится дата. Затем она возвращает метку времени в формате даты для последней миллисекунды этого месяца.
Когда это следует использовать
Функция monthend() используется в составе выражения, когда в расчетах требуется учитывать часть месяца, которая еще не прошла, например, если требуется рассчитать общую сумму процентов, еще не начисленных в течение месяца.
Возвращаемые типы данных: двойное значение
Аргументы
Аргумент
Описание
date
Дата или метка времени для вычисления.
period_no
period_no является целым числом, значение 0 которого или отсутствие значения означает месяц, содержащий значение, указанное в поле date. Отрицательные значения, заданные в поле period_no, означают предшествующие месяцы, положительные — последующие.
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Примеры функции
Пример
Результат
monthend('02/19/2012')
Возвращает 02/29/2012 23:59:59.
monthend('02/19/2001', -1)
Возвращает 01/31/2001 23:59:59.
Пример 1. Базовый пример
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций за 2022 год, загруженный в таблицу под именем Transactions.
Поле даты, предоставленное в формате системной переменной DateFormat (MM/DD/YYYY).
Предшествующий оператор load, который содержит следующее:
Функция monthend(), заданная как поле end_of_month.
Функция timestamp, заданная как поле end_of_month_timestamp.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
date
previous_month_end
previous_month_end_timestamp
Результирующая таблица
id
date
previous_month_end
previous_month_end_timestamp
8188
1/7/2022
12/31/2021
12/31/2021 11:59:59 PM
8189
1/19/2022
12/31/2021
12/31/2021 11:59:59 PM
8190
2/5/2022
01/31/2022
1/31/2022 11:59:59 PM
8191
2/28/2022
01/31/2022
1/31/2022 11:59:59 PM
8192
3/16/2022
02/28/2022
2/28/2022 11:59:59 PM
8193
4/1/2022
03/31/2022
3/31/2022 11:59:59 PM
8194
5/7/2022
04/30/2022
4/30/2022 11:59:59 PM
8195
5/16/2022
04/30/2022
4/30/2022 11:59:59 PM
8196
6/15/2022
05/31/2022
5/31/2022 11:59:59 PM
8197
6/26/2022
05/31/2022
5/31/2022 11:59:59 PM
8198
7/9/2022
06/30/2022
6/30/2022 11:59:59 PM
8199
7/22/2022
06/30/2022
6/30/2022 11:59:59 PM
8200
7/23/2022
06/30/2022
6/30/2022 11:59:59 PM
8201
7/27/2022
06/30/2022
6/30/2022 11:59:59 PM
8202
8/2/2022
07/31/2022
7/31/2022 11:59:59 PM
8203
8/8/2022
07/31/2022
7/31/2022 11:59:59 PM
8204
8/19/2022
07/31/2022
7/31/2022 11:59:59 PM
8205
9/26/2022
08/31/2022
8/31/2022 11:59:59 PM
8206
10/14/2022
09/30/2022
9/30/2022 11:59:59 PM
8207
10/29/2022
09/30/2022
9/30/2022 11:59:59 PM
Функция monthend() сначала определяет месяц, в течение которого совершены транзакции, так как используется аргумент сдвига period_no = -1. Затем она возвращается на месяц назад и определяет последнюю миллисекунду предыдущего месяца.
Транзакция 8192 совершена 16 марта. Функция monthend() определяет, что месяцем, предшествующим транзакции, является февраль. Затем она возвращает последнюю миллисекунду этого месяца, 23:59:59 (11:59:59 PM) 28 февраля.
Пример 3. Пример диаграммы
Обзор
Используется тот же набор данных и сценарий, что в первом примере.
В этом примере в приложение загружается неизмененный набор данных. Задача заключается в том, чтобы создать расчет, который возвращает метку времени окончания месяца, в котором совершены транзакции, как меру в диаграмме в приложении.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
id
Чтобы вычислить дату окончания месяца, в течение которого была совершена транзакция, создайте следующие меры:
=monthend(date)
=timestamp(monthend(date))
Результирующая таблица
id
date
=monthend(date)
=timestamp(monthend(date))
8188
10/14/2022
10/31/2022
10/31/2022 11:59:59 PM
8189
10/29/2022
10/31/2022
10/31/2022 11:59:59 PM
8190
9/26/2022
09/30/2022
9/30/2022 11:59:59 PM
8191
8/2/2022
08/31/2022
8/31/2022 11:59:59 PM
8192
8/8/2022
08/31/2022
8/31/2022 11:59:59 PM
8193
8/19/2022
08/31/2022
8/31/2022 11:59:59 PM
8194
7/9/2022
07/31/2022
7/31/2022 11:59:59 PM
8195
7/22/2022
07/31/2022
7/31/2022 11:59:59 PM
8196
7/23/2022
07/31/2022
7/31/2022 11:59:59 PM
8197
7/27/2022
07/31/2022
7/31/2022 11:59:59 PM
8198
6/15/2022
06/30/2022
6/30/2022 11:59:59 PM
8199
6/26/2022
06/30/2022
6/30/2022 11:59:59 PM
8200
5/7/2022
05/31/2022
5/31/2022 11:59:59 PM
8201
5/16/2022
05/31/2022
5/31/2022 11:59:59 PM
8202
4/1/2022
04/30/2022
4/30/2022 11:59:59 PM
8203
3/16/2022
03/31/2022
3/31/2022 11:59:59 PM
8204
2/5/2022
02/28/2022
2/28/2022 11:59:59 PM
8205
2/28/2022
02/28/2022
2/28/2022 11:59:59 PM
8206
1/7/2022
01/31/2022
1/31/2022 11:59:59 PM
8207
1/19/2022
01/31/2022
1/31/2022 11:59:59 PM
Мера end_of_month создана в диаграмме с использованием функции monthend(), где в качестве аргумента функции передано поле даты.
Функция monthend() определяет, к какому месяцу относится значение даты, и возвращает метку времени для последней миллисекунды этого месяца.
Транзакция 8192 совершена 16 марта. Функция monthend() возвращает последнюю миллисекунду этого месяца, то есть 23:59:59 (11:59:59 PM) 31 марта.
Пример 4. Сценарий
Обзор
В этом примере набор данных загружается в таблицу под именем Employee_Expenses. Данная таблица содержит следующие поля:
Employee IDs (Идентификаторы сотрудников)
Employee names (Имена сотрудников)
Средние ежедневные заявки на возмещение расходов каждого сотрудника.
Конечному пользователю требуется получить диаграмму, которая по идентификатору и имени сотрудника отображает ожидаемые расходы в течение оставшейся части месяца.
Функция monthend() возвращает дату окончания текущего месяца, используя сегодняшнюю дату в качестве единственного аргумента. Выражение возвращает количество дней, оставшихся в этом месяце, вычитая сегодняшнюю дату из даты окончания месяца.
Затем это значение умножается на среднюю ежедневную заявку на возмещение расходов каждого сотрудника для расчета оценочной суммы заявок, которые каждый сотрудник должен подать до конца месяца.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!