# inweektodate Функция скрипта и диаграммы

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

Синтаксис:

InWeekToDate (timestamp, base\_date, period\_no [, first\_week\_day])

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

Примечание к информации

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

Диаграмма функции inweektodate

Диаграмма функции inweektodate

Диаграмма функции inweektodate ![Пример диаграммы диапазона дат, в пределах которого функция inweektodate будет возвращать значение TRUE.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inweektodate-general.png)

Функция `inweektodate()` использует параметр `base_date` для определения даты максимальной границы сегмента недели, а также соответствующей даты начала недели, которая основана на системной переменной `FirstWeekDay` (или определяемом пользователем параметре `first_week_day`). После определения сегмента недели функция возвращает булевы результаты при сравнении предписанных значений даты с этим сегментом.

## Когда использовать inweektodate

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

Например, функцию `inweektodate()` можно использовать для расчета всех продаж, совершенных в течение указанной недели до определенной даты.

Аргументы

| Аргумент | Описание |
| --- | --- |
| timestamp | Дата, которую необходимо сравнить со значением, указанным в поле base\_date. |
| base\_date | Дата, использующаяся для оценки недели. |
| period\_no | Неделю можно сместить, задав значение в поле period\_no. period\_no — целое число, где 0 обозначает неделю, включающую значение, указанное в поле base\_date. Отрицательные значения, заданные в поле period\_no, означают предшествующие недели, положительные — последующие. |
| first\_week\_day | По умолчанию первым днем недели является воскресенье (согласно системной переменной FirstWeekDay), начиная с полуночи между субботой и воскресеньем. Параметр first\_week\_day заменяет переменную FirstWeekDay. Чтобы задать другой день в качестве начала недели, укажите флаг от 0 до 6.<br><br>Чтобы неделя начиналась в понедельник и заканчивалась в воскресенье, используйте флаг 0 для понедельника, 1 для вторника, 2 для среды, 3 для четверга, 4 для пятницы, 5 для субботы и 6 для воскресенья. |

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

| Пример | Взаимодействие |
| --- | --- |
| `inweektodate('01/12/2006', '01/12/2006', 0)` | Возвращает `TRUE`. |
| `inweektodate('01/12/2006', '01/11/2006', 0)` | Возвращает `FALSE`. |
| ` inweektodate('01/12/2006', '01/18/2006', -1)  ` | Возвращает `FALSE`.<br>Поскольку для элемента `period_no` указано значение -1, дата вступления в силу `timestamp` измеряется на основе 01/11/2006. |
| ` inweektodate('01/11/2006', '01/12/2006', 0, 3 )  ` | Возвращает `FALSE`, поскольку для элемента `first_week_day` указано значение `3` (четверг), в результате чего элемент 01/12/2006 становится первым днем недели после недели с элементом 01/12/2006. |

Эти темы помогут вам в работе с этой функцией:

Связанные темы

| Тема | Флаг по умолчанию / значение | Описание |
| --- | --- | --- |
| [FirstWeekDay](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm) | 6 / воскресенье | Определяет день начала каждой недели. |

## Региональные настройки

Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: MM/DD/YYYY. Формат даты указан в операторе `SET DateFormat` скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами. Для получения дополнительной информации см. раздел [Изменение региональных настроек для приложений и скриптов](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Региональные настройки по умолчанию в приложениях основаны на профиле пользователя. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Cloud. Qlik Cloud будет отображаться на языке, который используется в браузере.

Если вы — разработчик приложений, то можете задать регион по умолчанию для создаваемых приложений. Для получения дополнительной информации см. раздел [Установка предпочтительных региональных настроек для создания приложений и скриптов в Аналитика Qlik Cloud](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

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

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

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

Обзор

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

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

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

* Поле даты представлено в формате `TimestampFormat='M/D/YYYY h:mm:ss[.fff]'`.

* Создание поля `in_week_to_date`, которое определяет, какие транзакции совершены в течение недели до 14 января 2022 года.

* Создание дополнительного поля под именем `weekday` с использованием функции `weekday()`. Это новое поле создано, чтобы показать, какой день недели соответствует каждой дате.

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

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff]';
SET FirstWeekDay=6;
Transactions:
    Load
        *,
        weekday(date) as week_day,
        inweektodate(date,'01/14/2022', 0) as in_week_to_date
        ;
Load
*
Inline
[
id,date,amount
8188,'2022-01-02 12:22:06',37.23
8189,'2022-01-05 01:02:30',17.17
8190,'2022-01-06 15:36:20',88.27
8191,'2022-01-08 10:58:35',57.42
8192,'2022-01-09 08:53:32',53.80
8193,'2022-01-10 21:13:01',82.06
8194,'2022-01-11 00:57:13',40.39
8195,'2022-01-12 09:26:02',87.21
8196,'2022-01-13 15:05:09',95.93
8197,'2022-01-14 18:44:57',45.89
8198,'2022-01-15 06:10:46',36.23
8199,'2022-01-16 06:39:27',25.66
8200,'2022-01-17 10:44:16',82.77
8201,'2022-01-18 18:48:17',69.98
8202,'2022-01-26 04:36:03',76.11
8203,'2022-01-27 08:07:49',25.12
8204,'2022-01-28 12:24:29',46.23
8205,'2022-01-30 11:56:56',84.21
8206,'2022-01-30 14:40:19',96.24
8207,'2022-01-31 05:28:21',67.67
];
```

Результаты

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

* `date`

* `week_day`

* `in_week_to_date`

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

| date | week\_day | in\_week\_to\_date |
| --- | --- | --- |
| 2022-01-02 12:22:06 | Sun | 0 |
| 2022-01-05 01:02:30 | Wed | 0 |
| 2022-01-06 15:36:20 | Thu | 0 |
| 2022-01-08 10:58:35 | Sat | 0 |
| 2022-01-09 08:53:32 | Sun | -1 |
| 2022-01-10 21:13:01 | Mon | -1 |
| 2022-01-11 00:57:13 | Tue | -1 |
| 2022-01-12 09:26:02 | Wed | -1 |
| 2022-01-13 15:05:09 | Thu | -1 |
| 2022-01-14 18:44:57 | Fri | -1 |
| 2022-01-15 06:10:46 | Sat | 0 |
| 2022-01-16 06:39:27 | Sun | 0 |
| 2022-01-17 10:44:16 | Mon | 0 |
| 2022-01-18 18:48:17 | Tue | 0 |
| 2022-01-26 04:36:03 | Wed | 0 |
| 2022-01-27 08:07:49 | Thu | 0 |
| 2022-01-28 12:24:29 | Fri | 0 |
| 2022-01-30 11:56:56 | Sun | 0 |
| 2022-01-30 14:40:19 | Sun | 0 |
| 2022-01-31 05:28:21 | Mon | 0 |

Поле `in_week_to_date` создано в предшествующем операторе load с помощью функции `inweektodate()`. Первый предоставленный аргумент определяет, какое поле оценивается. Второй аргумент — это жестко закодированная дата «14 мая», которая представляет собой `base_date`, определяющий, какую неделю сегментировать, и определяющий конечную границу этого сегмента. `period_no` = 0 — это последний аргумент, означающий, что функция не сравнивает недели, предшествующие или следующие за сегментированной недели.

Системная переменная `FirstWeekDay` определяет, что недели начинаются в воскресенье и заканчиваются в субботу. Таким образом, январь будет разбит на недели в соответствии с приведенной ниже диаграммой, где даты между 9 и 14 января будут действительным периодом для расчета `inweekdodate()` :

Диаграмма календаря с датами транзакций, которые вернут булев результат TRUE

Диаграмма календаря с датами транзакций, которые вернут булев результат TRUE

Диаграмма календаря с датами транзакций, которые вернут булев результат TRUE ![Диаграмма диапазона дат, в пределах которого функция inweektodate будет возвращать значение TRUE.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inweektodate-no-add-arg-calendar.png)

Любая транзакция, совершенная в период с 9 апреля по 14 января, возвращает булев результат `TRUE`. Транзакции до и после дат возвращают логический результат `FALSE`.

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

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

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

Обзор

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

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

* Используется тот же набор данных и сценарий, что в первом примере.

* Создание поля `prev_week_to_date`, определяющего, какие транзакции совершены в течение полной недели до сегмента недели, который заканчивается 14 января 2022 года.

* Создание дополнительного поля под именем `weekday` с использованием функции `weekday()`. Это новое поле создано, чтобы показать, какой день недели соответствует каждой дате.

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

```
SET FirstWeekDay=6;
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff]';
Transactions:
    Load
        *,
        weekday(date) as week_day,
        inweektodate(date,'01/14/2022', -1) as prev_week_to_date
        ;
Load
*
Inline
[
id,date,amount
8188,'2022-01-02 12:22:06',37.23
8189,'2022-01-05 01:02:30',17.17
8190,'2022-01-06 15:36:20',88.27
8191,'2022-01-08 10:58:35',57.42
8192,'2022-01-09 08:53:32',53.80
8193,'2022-01-10 21:13:01',82.06
8194,'2022-01-11 00:57:13',40.39
8195,'2022-01-12 09:26:02',87.21
8196,'2022-01-13 15:05:09',95.93
8197,'2022-01-14 18:44:57',45.89
8198,'2022-01-15 06:10:46',36.23
8199,'2022-01-16 06:39:27',25.66
8200,'2022-01-17 10:44:16',82.77
8201,'2022-01-18 18:48:17',69.98
8202,'2022-01-26 04:36:03',76.11
8203,'2022-01-27 08:07:49',25.12
8204,'2022-01-28 12:24:29',46.23
8205,'2022-01-30 11:56:56',84.21
8206,'2022-01-30 14:40:19',96.24
8207,'2022-01-31 05:28:21',67.67
];
```

Результаты

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

* `date`

* `week_day`

* `prev_week_to_date`

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

| date | week\_day | prev\_week\_to\_date |
| --- | --- | --- |
| 2022-01-02 12:22:06 | Sun | -1 |
| 2022-01-05 01:02:30 | Wed | -1 |
| 2022-01-06 15:36:20 | Thu | -1 |
| 2022-01-08 10:58:35 | Sat | 0 |
| 2022-01-09 08:53:32 | Sun | 0 |
| 2022-01-10 21:13:01 | Mon | 0 |
| 2022-01-11 00:57:13 | Tue | 0 |
| 2022-01-12 09:26:02 | Wed | 0 |
| 2022-01-13 15:05:09 | Thu | 0 |
| 2022-01-14 18:44:57 | Fri | 0 |
| 2022-01-15 06:10:46 | Sat | 0 |
| 2022-01-16 06:39:27 | Sun | 0 |
| 2022-01-17 10:44:16 | Mon | 0 |
| 2022-01-18 18:48:17 | Tue | 0 |
| 2022-01-26 04:36:03 | Wed | 0 |
| 2022-01-27 08:07:49 | Thu | 0 |
| 2022-01-28 12:24:29 | Fri | 0 |
| 2022-01-30 11:56:56 | Sun | 0 |
| 2022-01-30 14:40:19 | Sun | 0 |
| 2022-01-31 05:28:21 | Mon | 0 |

Значение `period_no` равное -1 указывает, что функция `inweektodate ()` сравнивает сегмент входной недели с предыдущей неделей. Сегмент недели первоначально соответствует периоду с 9 по 14 января. Затем `period_no` смещает как начальную, так и конечную границу этого сегмента на одну неделю назад, в результате чего границы периода дат переносятся на 2 января и 7 января.

Диаграмма календаря с датами транзакций, которые вернут булев результат TRUE

Диаграмма календаря с датами транзакций, которые вернут булев результат TRUE

Диаграмма календаря с датами транзакций, которые вернут булев результат TRUE ![Диаграмма диапазона дат, в пределах которого функция inweektodate будет возвращать значение TRUE.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inweektodate-period-no-calendar.png)

Таким образом, любая транзакция, совершенная в период с 2 до 8 января (не включая 8 января), возвращает булев результат `TRUE`.

## Пример 3. Аргумент first\_week\_day

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

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

Обзор

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

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

* Используется тот же набор данных и сценарий, что в первом примере.

* Создание поля `in_week_to_date`, которое определяет, какие транзакции совершены в течение недели до 14 января 2022 года.

* Создание дополнительного поля под именем `weekday` с использованием функции `weekday()`. Это новое поле создано, чтобы показать, какой день недели соответствует каждой дате.

В этом примере мы используем понедельник в качестве первого дня недели.

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

```
SET FirstWeekDay=6;
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff]';

Transactions:
    Load
        *,
        weekday(date) as week_day,
        inweektodate(date,'01/14/2022', 0, 0) as in_week_to_date
        ;
Load
*
Inline
[
id,date,amount
8188,'2022-01-02 12:22:06',37.23
8189,'2022-01-05 01:02:30',17.17
8190,'2022-01-06 15:36:20',88.27
8191,'2022-01-08 10:58:35',57.42
8192,'2022-01-09 08:53:32',53.80
8193,'2022-01-10 21:13:01',82.06
8194,'2022-01-11 00:57:13',40.39
8195,'2022-01-12 09:26:02',87.21
8196,'2022-01-13 15:05:09',95.93
8197,'2022-01-14 18:44:57',45.89
8198,'2022-01-15 06:10:46',36.23
8199,'2022-01-16 06:39:27',25.66
8200,'2022-01-17 10:44:16',82.77
8201,'2022-01-18 18:48:17',69.98
8202,'2022-01-26 04:36:03',76.11
8203,'2022-01-27 08:07:49',25.12
8204,'2022-01-28 12:24:29',46.23
8205,'2022-01-30 11:56:56',84.21
8206,'2022-01-30 14:40:19',96.24
8207,'2022-01-31 05:28:21',67.67
];
```

Результаты

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

* `date`

* `week_day`

* `in_week_to_date`

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

| date | week\_day | in\_week\_to\_date |
| --- | --- | --- |
| 2022-01-02 12:22:06 | Sun | 0 |
| 2022-01-05 01:02:30 | Wed | 0 |
| 2022-01-06 15:36:20 | Thu | 0 |
| 2022-01-08 10:58:35 | Sat | 0 |
| 2022-01-09 08:53:32 | Sun | 0 |
| 2022-01-10 21:13:01 | Mon | -1 |
| 2022-01-11 00:57:13 | Tue | -1 |
| 2022-01-12 09:26:02 | Wed | -1 |
| 2022-01-13 15:05:09 | Thu | -1 |
| 2022-01-14 18:44:57 | Fri | -1 |
| 2022-01-15 06:10:46 | Sat | 0 |
| 2022-01-16 06:39:27 | Sun | 0 |
| 2022-01-17 10:44:16 | Mon | 0 |
| 2022-01-18 18:48:17 | Tue | 0 |
| 2022-01-26 04:36:03 | Wed | 0 |
| 2022-01-27 08:07:49 | Thu | 0 |
| 2022-01-28 12:24:29 | Fri | 0 |
| 2022-01-30 11:56:56 | Sun | 0 |
| 2022-01-30 14:40:19 | Sun | 0 |
| 2022-01-31 05:28:21 | Mon | 0 |

При использовании 0 в качестве аргумента `inweektodate()` в функции `first_week_day` аргумент функции заменяет системную переменную `FirstWeekDay` и устанавливает понедельник в качестве первого дня недели.

Диаграмма календаря с датами транзакций, которые вернут булев результат TRUE

Диаграмма календаря с датами транзакций, которые вернут булев результат TRUE

Диаграмма календаря с датами транзакций, которые вернут булев результат TRUE ![Диаграмма диапазона дат транзакций, в пределах которого функция inweektodate будет возвращать значение TRUE.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inweektodate-first-week-day-calendar.png)

Таким образом, для любой транзакции, совершенной между 10 марта и 14 января, возвращается булев результат `TRUE`, а для транзакций с датами вне этих границ — значение `FALSE`.

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

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

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

Обзор

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

Скрипт загрузки содержит тот же набор данных и сценарий, что в первом примере. Однако в этом примере в приложение загружается неизмененный набор данных. Расчет, который определяет, совершены ли транзакции на той неделе до 14 января 2022 года, создается как мера в объекте диаграммы в приложении.

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

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

Transactions:
Load
*
Inline
[
id,date,amount
8188,'2022-01-02 12:22:06',37.23
8189,'2022-01-05 01:02:30',17.17
8190,'2022-01-06 15:36:20',88.27
8191,'2022-01-08 10:58:35',57.42
8192,'2022-01-09 08:53:32',53.80
8193,'2022-01-10 21:13:01',82.06
8194,'2022-01-11 00:57:13',40.39
8195,'2022-01-12 09:26:02',87.21
8196,'2022-01-13 15:05:09',95.93
8197,'2022-01-14 18:44:57',45.89
8198,'2022-01-15 06:10:46',36.23
8199,'2022-01-16 06:39:27',25.66
8200,'2022-01-17 10:44:16',82.77
8201,'2022-01-18 18:48:17',69.98
8202,'2022-01-26 04:36:03',76.11
8203,'2022-01-27 08:07:49',25.12
8204,'2022-01-28 12:24:29',46.23
8205,'2022-01-30 11:56:56',84.21
8206,'2022-01-30 14:40:19',96.24
8207,'2022-01-31 05:28:21',67.67
];
```

Результаты

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

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

2. Чтобы рассчитать, происходили ли транзакции на той же неделе до 14 января, создайте следующую меру:

   =inweektodate(date,'01/14/2022',0)

3. Чтобы показать, какой день недели соответствует каждой дате, создайте дополнительную меру.

   =weekday(date)

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

| date | week\_day | in\_week\_to\_date |
| --- | --- | --- |
| 2022-01-02 12:22:06 | Sun | 0 |
| 2022-01-05 01:02:30 | Wed | 0 |
| 2022-01-06 15:36:20 | Thu | 0 |
| 2022-01-08 10:58:35 | Sat | 0 |
| 2022-01-09 08:53:32 | Sun | -1 |
| 2022-01-10 21:13:01 | Mon | -1 |
| 2022-01-11 00:57:13 | Tue | -1 |
| 2022-01-12 09:26:02 | Wed | -1 |
| 2022-01-13 15:05:09 | Thu | -1 |
| 2022-01-14 18:44:57 | Fri | -1 |
| 2022-01-15 06:10:46 | Sat | 0 |
| 2022-01-16 06:39:27 | Sun | 0 |
| 2022-01-17 10:44:16 | Mon | 0 |
| 2022-01-18 18:48:17 | Tue | 0 |
| 2022-01-26 04:36:03 | Wed | 0 |
| 2022-01-27 08:07:49 | Thu | 0 |
| 2022-01-28 12:24:29 | Fri | 0 |
| 2022-01-30 11:56:56 | Sun | 0 |
| 2022-01-30 14:40:19 | Sun | 0 |
| 2022-01-31 05:28:21 | Mon | 0 |

Поле in\_week\_to\_date создается в объекте диаграммы в качестве меры с помощью функции inweektodate(). Первый предоставленный аргумент определяет, какое поле оценивается. Второй аргумент — это жестко закодированная дата «14 мая», которая представляет собой base\_date, определяющий, какую неделю сегментировать, и определяющий конечную границу этого сегмента. period\_no = 0 — это последний аргумент, означающий, что функция не сравнивает недели, предшествующие или следующие за сегментированной недели.

Системная переменная FirstWeekDay определяет, что недели начинаются в воскресенье и заканчиваются в субботу. Таким образом, январь будет разбит на недели в соответствии с приведенной ниже диаграммой, где даты между 9 и 14 января будут действительным периодом для расчета inweekdodate() :

Диаграмма календаря с датами транзакций, которые вернут булев результат TRUE

Диаграмма календаря с датами транзакций, которые вернут булев результат TRUE

Диаграмма календаря с датами транзакций, которые вернут булев результат TRUE ![Диаграмма диапазона дат, в пределах которого функция inweektodate будет возвращать значение TRUE.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inweektodate-chart-object-calendar.png)

Любая транзакция, совершенная в период с 9 апреля по 14 января, возвращает булев результат TRUE. Транзакции до и после дат возвращают логический результат FALSE.

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

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

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

Обзор

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

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

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

* Информация об идентификаторе продукта, дате изготовления и себестоимости.

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

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

```
Products:
Load
*
Inline
[
product_id,manufacture_date,cost_price
8188,'2022-01-02 12:22:06',37.23
8189,'2022-01-05 01:02:30',17.17
8190,'2022-01-06 15:36:20',88.27
8191,'2022-01-08 10:58:35',57.42
8192,'2022-01-09 08:53:32',53.80
8193,'2022-01-10 21:13:01',82.06
8194,'2022-01-11 00:57:13',40.39
8195,'2022-01-12 09:26:02',87.21
8196,'2022-01-13 15:05:09',95.93
8197,'2022-01-14 18:44:57',45.89
8198,'2022-01-15 06:10:46',36.23
8199,'2022-01-16 06:39:27',25.66
8200,'2022-01-17 10:44:16',82.77
8201,'2022-01-18 18:48:17',69.98
8202,'2022-01-26 04:36:03',76.11
8203,'2022-01-27 08:07:49',25.12
8204,'2022-01-28 12:24:29',46.23
8205,'2022-01-30 11:56:56',84.21
8206,'2022-01-30 14:40:19',96.24
8207,'2022-01-31 05:28:21',67.67
];
```

Результаты

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

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

   =weekname(manufacture\_date)

2. Затем создайте измерение, чтобы определить, какие из продуктов дефектные, а какие нет:

   =if(inWeektodate(manufacture\_date,makedate(2022,01,12),0),'Defective','Faultless')

3. Создайте меру для суммирования cost\_price продуктов:

   =sum(cost\_price)

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

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

| weekname(manufacture\_date) | if(inweektodate(manufacture\_date,makedate(2022,01,12),0),'Defective','Faultless') | Sum(cost\_price) |
| --- | --- | --- |
| 2022/02 | Бездефектный | $200.09 |
| 2022/03 | Дефектный | $263.46 |
| 2022/03 | Бездефектный | $178.05 |
| 2022/04 | Бездефектный | $178.41 |
| 2022/05 | Бездефектный | $147.46 |
| 2022/06 | Бездефектный | $248.12 |

Функция inweektodate() возвращает булево значение при проверке дат производства каждого продукта. Продукты, для которых возвращается булево значение TRUE, помечаются как 'Defective'. Продукты, для которых возвращается значение FALSE и которые, следовательно, не произведены в течение недели до 12 января, помечаются как ‘Faultless’.