# inquarter — функция скриптa и диаграммы

Эта функция возвращает значение True, если поле timestamp находится в пределах квартала, включающего значение, указанное в поле base\_date.

Синтаксис:

InQuarter (timestamp, base\_date, period\_no[, first\_month\_of\_year])

Возвращаемые типы данных: Булево значение

В Qlik Sense логическое значение «истина» представлено как -1, а «ложь» — как 0.

Диаграмма диапазона функции `inquarter()`

Диаграмма диапазона функции `inquarter()`

Диаграмма диапазона функции `inquarter()`inquarter() ![Диаграмма, демонстрирующая диапазон времени, оцениваемый функцией inquarter().](https://help.qlik.com/ru-RU/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquarter-diagram1.png)

Другими словами, функция `inquarter()` делит год на четыре одинаковых квартала с 1 января по 31 декабря. С помощью аргумента `first_month_of_year` можно изменить месяц, который приложение считает первым, и сегментирование на кварталы изменится с учетом этого аргумента. Функция `base_date` определяет, какой квартал необходимо использовать для сравнения. Наконец, функция возвращает булев результат при сравнении значений даты с этим квартальным сегментом.

Когда это следует использовать

Функция `inquarter()` возвращает результат в виде булева значения. Обычно этот тип функции используется в качестве условия в `if expression`. Она возвращает агрегирование или вычисление в зависимости от того, попадает ли дата в указанный квартал.

Например, с помощью функции `inquarter()` можно идентифицировать все оборудование, изготовленное в квартальном сегменте, на основании даты производства оборудования.

Аргументы

| Аргумент | Описание |
| --- | --- |
| timestamp | Дата, которую необходимо сравнить со значением, указанным в поле base\_date. |
| base\_date | Дата, использующаяся для оценки квартала. |
| period\_no | Квартал можно сместить, задав значение в поле period\_no. period\_no — целое число, где 0 обозначает квартал, включающий значение, указанное в поле base\_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 будет отображаться на языке, который используется в браузере.

Примеры функции

| Пример | Результат |
| --- | --- |
| inquarter ('01/25/2013', '01/01/2013', 0) | Возвращает TRUE |
| inquarter ('01/25/2013', '04/01/2013', 0) | Возвращает FALSE |
| inquarter ('01/25/2013', '01/01/2013', -1) | Возвращает FALSE |
| inquarter ('12/25/2012', '01/01/2013', -1) | Возвращает TRUE |
| inquarter ('01/25/2013', '03/01/2013', 0, 3) | Возвращает FALSE |
| inquarter ('03/25/2013', '03/01/2013', 0, 3) | Возвращает TRUE |

## Пример 1. Без дополнительных аргументов

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inquarter.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, содержащий набор транзакций за 2022 год, который загружается в таблицу под именем `Transactions`.

* Предшествующая загрузка с функцией `inquarter()`, которая задана в качестве поля `in_quarter` и определяет, какие транзакции совершены в том же квартале, к которому относится 15 мая 2022 года.

Скрипт загрузки

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
    Load 
       *, 
       inquarter (date,'05/15/2022', 0) as in_quarter 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
8190,'2/28/2022',88.27 
8191,'2/5/2022',57.42 
8192,'3/16/2022',53.80 
8193,'4/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/16/2022',87.21 
8196,'6/15/2022',95.93 
8197,'6/26/2022',45.89 
8198,'7/9/2022',36.23 
8199,'7/22/2022',25.66 
8200,'7/23/2022',82.77 
8201,'7/27/2022',69.98 
8202,'8/2/2022',76.11 
8203,'8/8/2022',25.12 
8204,'8/19/2022',46.23 
8205,'9/26/2022',84.21 
8206,'10/14/2022',96.24 
8207,'10/29/2022',67.67 
]; 
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `date`
* `in_quarter`

Результирующая таблица

| date | in\_quarter |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | -1 |
| 6/15/2022 | -1 |
| 6/26/2022 | -1 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Поле `in_quarter` создано в предыдущем операторе load с помощью функции `inquarter()`. Первый аргумент определяет, какое поле оценивается. Второй аргумент — это жестко закодированная дата, 15 мая, которая определяет, какой квартал необходимо использовать для сравнения. `period_no` = `0` — это последний аргумент, означающий, что функция `inquarter()` не сравнивает кварталы, которые следуют до или после сегментированного квартала.

Диаграмма функции `inquarter()` с базовой датой 15 мая

Диаграмма функции `inquarter()` с базовой датой 15 мая

Диаграмма функции `inquarter()`inquarter() с базовой датой 15 мая![Диаграмма, на которой показан диапазон времени, оцениваемый функцией inquarter() с базовой датой 15 мая и с разделением года на кварталы.](https://help.qlik.com/ru-RU/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquarter-example1-diagram.png)

Любая транзакция, совершенная в период с 1 апреля по 30 июня, возвращает булев результат TRUE.

## Пример 2. Скрипт period\_no

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inquarter.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, содержащий набор транзакций за 2022 год, который загружается в таблицу под именем `Transactions`.

* Предыдущая загрузка с функцией `inquarter()`, которая задана в качестве поля `previous_quarter` и определяет, какие транзакции совершены в квартале, предшествующем кварталу, к которому относится 15 мая 2022 года.

Скрипт загрузки

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
    Load 
       *, 
       inquarter (date,'05/15/2022', -1) as previous_qtr 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
8190,'2/28/2022',88.27 
8191,'2/5/2022',57.42 
8192,'3/16/2022',53.80 
8193,'4/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/16/2022',87.21 
8196,'6/15/2022',95.93 
8197,'6/26/2022',45.89 
8198,'7/9/2022',36.23 
8199,'7/22/2022',25.66 
8200,'7/23/2022',82.77 
8201,'7/27/2022',69.98 
8202,'8/2/2022',76.11 
8203,'8/8/2022',25.12 
8204,'8/19/2022',46.23 
8205,'9/26/2022',84.21 
8206,'10/14/2022',96.24 
8207,'10/29/2022',67.67 
]; 
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `date`
* `previous_qtr`

Результирующая таблица

| date | previous\_qtr |
| --- | --- |
| 1/7/2022 | -1 |
| 1/19/2022 | -1 |
| 2/5/2022 | -1 |
| 2/28/2022 | -1 |
| 3/16/2022 | -1 |
| 4/1/2022 | 0 |
| 5/7/2022 | 0 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Используя `-1` в качестве аргумента `period_no`, функция `inquarter()` сдвигает границы сравниваемого квартала на один полный квартал назад. 15 мая приходится на второй квартал года, поэтому этот сегмент изначально соответствует периоду с 1 апреля по 30 июня. `period_no` сдвигает этот сегмент на три месяца назад, в результате чего границы диапазона дат переносятся на 1 января и 30 марта.

Диаграмма функции `inquarter()` с базовой датой 15 мая

Диаграмма функции `inquarter()` с базовой датой 15 мая

Диаграмма функции `inquarter()`inquarter() с базовой датой 15 мая![Диаграмма, демонстрирующая диапазон времени, оцениваемый функцией inquarter() с базовой датой 15 мая и аргументом period_no = -1, который переносит границы сегмента на один квартал назад.](https://help.qlik.com/ru-RU/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquarter-example2-diagram.png)

Таким образом, любая транзакция, совершенная в период с 1 января по 30 марта, возвращает булев результат TRUE.

## Пример 3. Аргумент first\_month\_of\_year

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inquarter.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, содержащий набор транзакций за 2022 год, который загружается в таблицу под именем `Transactions`.

* Предыдущая загрузка с функцией `inquarter()`, которая задана в качестве поля `in_quarter` и определяет, какие транзакции совершены в том же квартале, к которому относится 15 мая 2022 года.

Однако в этом примере политика организации устанавливает март в качестве первого месяца финансового года.

Скрипт загрузки

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
    Load 
       *, 
       inquarter (date,'05/15/2022', 0, 3) as in_quarter 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
8190,'2/28/2022',88.27 
8191,'2/5/2022',57.42 
8192,'3/16/2022',53.80 
8193,'4/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/16/2022',87.21 
8196,'6/15/2022',95.93 
8197,'6/26/2022',45.89 
8198,'7/9/2022',36.23 
8199,'7/22/2022',25.66 
8200,'7/23/2022',82.77 
8201,'7/27/2022',69.98 
8202,'8/2/2022',76.11 
8203,'8/8/2022',25.12 
8204,'8/19/2022',46.23 
8205,'9/26/2022',84.21 
8206,'10/14/2022',96.24 
8207,'10/29/2022',67.67 
]; 
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `date`
* `previous_qtr`

Результирующая таблица

| date | previous\_qtr |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | -1 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | -1 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Так как используется `3` в качестве аргумента `first_month_of_year`, функция `inquarter()` начинает год 1 марта, а затем делит год на кварталы. Таким образом, рассматриваются кварталы Mar-May (март-май), Jun-Aug (июнь-август), Sep-Nov (сентябрь-ноябрь), Dec-Feb (декабрь-февраль). Аргумент `base_date` = 15 мая задает квартал Mar-May в качестве квартала сравнения для функции.

Диаграмма функции `inquarter()`, где в качестве первого месяца года задан март.

Диаграмма функции `inquarter()`, где в качестве первого месяца года задан март.

Диаграмма функции `inquarter()`inquarter(), где в качестве первого месяца года задан март.![Диаграмма, на которой показан диапазон времени, оцениваемый функцией inquarter() с базовой датой 15 мая и с разделением года на кварталы при том, что первым месяцем года является март.](https://help.qlik.com/ru-RU/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquarter-example3-diagram.png)

Таким образом, любая транзакция, совершенная в период с 1 марта по 31 мая, возвращает булев результат TRUE.

## Пример 4. Пример объекта диаграммы

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inquarter.htm)

#### Скрипт загрузки и выражение диаграммы

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, содержащий набор транзакций за 2022 год, который загружается в таблицу под именем `Transactions`.

* Предыдущая загрузка с функцией `inquarter()`, которая задана в качестве поля `in_quarter` и определяет, какие транзакции совершены в том же квартале, к которому относится 15 мая 2022 года.

Скрипт загрузки

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
8190,'2/28/2022',88.27 
8191,'2/5/2022',57.42 
8192,'3/16/2022',53.80 
8193,'4/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/16/2022',87.21 
8196,'6/15/2022',95.93 
8197,'6/26/2022',45.89 
8198,'7/9/2022',36.23 
8199,'7/22/2022',25.66 
8200,'7/23/2022',82.77 
8201,'7/27/2022',69.98 
8202,'8/2/2022',76.11 
8203,'8/8/2022',25.12 
8204,'8/19/2022',46.23 
8205,'9/26/2022',84.21 
8206,'10/14/2022',96.24 
8207,'10/29/2022',67.67 
]; 
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:

* `date`

Создайте следующую меру, чтобы рассчитать, совершены ли транзакции в том же квартале, к которому относится 15 мая:

`=inquarter(date,'05/15/2022', 0)`

Результирующая таблица

| date | in\_quarter |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | -1 |
| 6/15/2022 | -1 |
| 6/26/2022 | -1 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Мера `in_quarter` создается в диаграмме с помощью функции `inquarter()`. Первый аргумент определяет, какое поле оценивается. Второй аргумент — это жестко закодированная дата, 15 мая, которая определяет, какой квартал необходимо использовать для сравнения. `period_no` = `0` — это последний аргумент, означающий, что функция `inquarter()` не сравнивает кварталы, которые следуют до или после сегментированного квартала.

Диаграмма функции `inquarter()` с базовой датой 15 мая

Диаграмма функции `inquarter()` с базовой датой 15 мая

Диаграмма функции `inquarter()`inquarter() с базовой датой 15 мая![Диаграмма, на которой показан диапазон времени, оцениваемый функцией inquarter() с базовой датой 15 мая и с разделением года на кварталы.](https://help.qlik.com/ru-RU/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquarter-example1-diagram.png)

Любая транзакция, совершенная в период с 1 апреля по 30 июня, возвращает булев результат TRUE.

## Пример 5. Сценарий

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inquarter.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, который загружается в таблицу под именем Products.

* Данная таблица содержит следующие поля:

  * product ID (ИД продукта)

  * product type (тип продукта)

  * manufacture date (дата изготовления)

  * cost price (себестоимость)

Установлено, что вследствие ошибки оборудования продукты, изготовленные в течение недели, на которую выпадает 15 мая 2022 года, являются дефектными. Конечному пользователю требуется диаграмма, которая отображает по имени квартала, какие изготовленные продукты были дефектными, а какие бездефектными, а также стоимость продуктов, изготовленных в этом квартале.

Скрипт загрузки

```
Products: 
Load 
* 
Inline  
[ 
product_id,manufacture_date,cost_price 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
8190,'2/28/2022',88.27 
8191,'2/5/2022',57.42 
8192,'3/16/2022',53.80 
8193,'4/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/16/2022',87.21 
8196,'6/15/2022',95.93 
8197,'6/26/2022',45.89 
8198,'7/9/2022',36.23 
8199,'7/22/2022',25.66 
8200,'7/23/2022',82.77 
8201,'7/27/2022',69.98 
8202,'8/2/2022',76.11 
8203,'8/8/2022',25.12 
8204,'8/19/2022',46.23
8205,'9/26/2022',84.21 
8206,'10/14/2022',96.24 
8207,'10/29/2022',67.67 
]; 
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:

=quartername(manufacture\_date)

Создайте следующие меры:

* =if(only(InQuarter(manufacture\_date,makedate(2022,05,15),0)),'Defective','Faultless'), чтобы определить, какие из продуктов дефектные, а какие нет, с использованием функции inquarter():

* =sum(cost\_price), чтобы показать суммарную стоимость всех продуктов.

Выполните следующие действия.

1. Задайте параметру Формат чисел меры значение Денежный.

2. В области Вид выключите параметр Итоги.

Результирующая таблица

| quartername(manufacture\_date) | =if(only(InQuarter(manufacture\_date,makedate(2022,05,15),0)),'Defective','Faultless') | Sum(cost\_price) |
| --- | --- | --- |
| Jan-Mar 2022 | Бездефектный | 253.89 |
| Apr-Jun 2022 | Дефектный | 351.48 |
| Jul-Sep 2022 | Бездефектный | 446.31 |
| Oct-Dec 2022 | Бездефектный | 163.91 |

Функция inquarter() возвращает булево значение при проверке дат производства каждого продукта. Для любого продукта, изготовленного в течение квартала, к которому относится 15 мая, функция inquarter() возвращает булево значение TRUE и ставит отметку «Дефектный». Любой продукт, который возвращает значение FALSE, то есть изготовлен в другом квартале, отмечается как «Бездефектный».