# inweek – função de script e gráfico

Essa função retornará True se timestamp estiver dentro da semana que contém base\_date.

Sintaxe:

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

Tipo de dados de retorno: Booleano

No Qlik Sense, o valor booleano “true” é representado por -1, e o valor falso é representado por 0.

Diagrama do intervalo da função `inweek()`

Diagrama do intervalo da função `inweek()`

Diagrama do intervalo da função `inweek()`inweek() ![Diagrama que mostra como a função inweek() pode ser usada para avaliar datas dentro de segmentos de semanas e retornar um resultado booleano se um dado cair ou não em um intervalo selecionado.](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-inweek-diagram1.png)

A função `inweek()` usa o argumento `base_date` para identificar em qual período de sete dias a data cai. O dia de início da semana é baseado na `variável` de sistema FirstWeekDay. No entanto, você também pode alterar o primeiro dia da semana usando o argumento `first_week_day` da função `inweek()`.

Depois que a semana selecionada for definida, a função retornará resultados booleanos ao comparar os valores de data prescritos com esse segmento da semana.

Quando usar

A função `inweek()` retorna um resultado booleano. Normalmente, esse tipo de função será usado como uma condição em um `if expression`. A função `inweek()` retorna uma agregação ou cálculo que depende se uma data avaliada ocorreu na semana com a data selecionada do argumento `base_date`.

Por exemplo, a função `inweek()` pode ser usada para identificar todos os equipamentos fabricados em uma semana específica.

Argumentos

| Argumento | Descrição |
| --- | --- |
| timestamp | A data que você deseja comparar com base\_date. |
| base\_date | Data que é usada para avaliar a semana. |
| period\_no | A semana pode ser deslocada por period\_no. period\_no é um inteiro, em que o valor 0 indica a semana que contém base\_date. Os valores negativos em period\_no indicam semanas precedentes e os valores positivos indicam semanas subsequentes. |
| first\_week\_day | Por padrão, o primeiro dia da semana é domingo (conforme determinado pela variável de sistema FirstWeekDay), começando à meia-noite entre sábado e domingo. O parâmetro first\_week\_day substitui a variável FirstWeekDay. Para indicar a semana que começa em outro dia, especifique um sinalizador entre 0 e 6. |

Valores de first\_week\_day

| Dia | Valor |
| --- | --- |
| Segunda-feira | 0 |
| Terça-feira | 1 |
| Quarta-feira | 2 |
| Quinta-feira | 3 |
| Sexta-feira | 4 |
| Sábado | 5 |
| Domingo | 6 |

## Configurações regionais

A menos que especificado de outra forma, os exemplos neste tópico usam o seguinte formato de data: MM/DD/AAAA. O formato de data é especificado na instrução `SET DateFormat` no seu script de carregamento de dados. A formatação de data padrão pode ser diferente no seu sistema devido às suas configurações regionais e outros fatores. Você pode alterar os formatos nos exemplos abaixo para atender às suas necessidades. Ou pode alterar os formatos no seu script de carregamento para corresponder a esses exemplos.

As configurações regionais padrão nos aplicativos são baseadas nas configurações regionais do sistema do computador ou servidor em que o Qlik Sense está instalado. Se o servidor Qlik Sense que você está acessando estiver definido como Suécia, o Editor de carregamento de dados usará as configurações regionais suecas para datas, horas e moedas. Essas configurações de formato regional não estão relacionadas ao idioma exibido na interface do usuário do Qlik Sense. O Qlik Sense será exibido no mesmo idioma do navegador que você está usando.

Exemplos de funções

| Exemplo | Resultado |
| --- | --- |
| ` inweek ('01/12/2006', '01/14/2006', 0)  ` | Retorna TRUE |
| ` inweek ('01/12/2006', '01/20/2006', 0 )  ` | Retorna FALSE |
| ` inweek ('01/12/2006', '01/14/2006', -1 )  ` | Retorna FALSE |
| ` inweek ('01/07/2006', '01/14/2006', -1)  ` | Retorna TRUE |
| ` inweek ('01/12/2006', '01/09/2006', 0, 3)  ` | Retorna FALSE porque `first_week_day` está especificado como 3 (quinta-feira), o que torna 01/12/2006 o primeiro dia da semana seguinte à semana contendo 01/09/2006. |

Estes tópicos podem ajudar você a trabalhar com essa função:

Tópicos relacionados

| Tópico | Sinalizador/valor padrão | Descrição |
| --- | --- | --- |
| [FirstWeekDay](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm) | 6 / Domingo | Define o dia de início de cada semana. |

## Exemplo 1: Nenhum argumento adicional

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

#### Script de carregamento e resultados

Visão geral

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.

O script de carregamento contém:

* Um conjunto de dados contendo um conjunto de transações para o mês de janeiro de 2022, que é carregado em uma tabela denominada "`Transactions`".

* A variável de sistema `FirstWeekDay` que é definida como `6` (domingo).

* Um carregamento anterior que contém o seguinte:

  * A função `inweek()`, definida como o campo "`in_week`", que determina quais transações ocorreram na semana de 14 de janeiro de 2022.

  * A função `weekday()`, definida como o campo "`week_day`", que mostra qual dia da semana corresponde a cada data.

Script de carregamento

```
SET FirstWeekDay=6; 
SET DateFormat='MM/DD/YYYY'; 
 
Transactions: 
    Load 
       *, 
       weekday(date) as week_day, 
       inweek(date,'01/14/2022', 0) as in_week 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/02/2022',37.23 
8189,'01/05/2022',17.17 
8190,'01/06/2022',88.27 
8191,'01/08/2022',57.42 
8192,'01/09/2022',53.80 
8193,'01/10/2022',82.06 
8194,'01/11/2022',40.39 
8195,'01/12/2022',87.21 
8196,'01/13/2022',95.93 
8197,'01/14/2022',45.89 
8198,'01/15/2022',36.23 
8199,'01/16/2022',25.66 
8200,'01/17/2022',82.77 
8201,'01/18/2022',69.98 
8202,'01/26/2022',76.11 
8203,'01/27/2022',25.12 
8204,'01/28/2022',46.23 
8205,'01/29/2022',84.21 
8206,'01/30/2022',96.24 
8207,'01/31/2022',67.67 
]; 
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `date`
* `week_day`
* `in_week`

Tabela de resultados

| date | week\_day | in\_week |
| --- | --- | --- |
| 01/02/2022 | Dom | 0 |
| 01/05/2022 | Qua | 0 |
| 01/06/2022 | Qui | 0 |
| 01/08/2022 | Sáb | 0 |
| 01/09/2022 | Dom | -1 |
| 01/10/2022 | Mon | -1 |
| 01/11/2022 | Ter | -1 |
| 01/12/2022 | Qua | -1 |
| 01/13/2022 | Qui | -1 |
| 01/14/2022 | Fri | -1 |
| 01/15/2022 | Sáb | -1 |
| 01/16/2022 | Dom | 0 |
| 01/17/2022 | Mon | 0 |
| 01/18/2022 | Ter | 0 |
| 01/26/2022 | Qua | 0 |
| 01/27/2022 | Qui | 0 |
| 01/28/2022 | Fri | 0 |
| 01/29/2022 | Sáb | 0 |
| 01/30/2022 | Dom | 0 |
| 01/31/2022 | Mon | 0 |

O campo "`in_week`" é criado na instrução de carregamento anterior usando a função `inweek()`. O primeiro argumento identifica qual campo está sendo avaliado. O segundo argumento é uma data codificada para 14 de janeiro, que é a `base_date`. O argumento `base_date` funciona com a variável de sistema `FirstWeekDay` para identificar a semana comparadora. `period_no` de `0`, significando que a função não está comparando semanas anteriores ou posteriores à semana segmentada, é o argumento final.

A variável de sistema `FirstWeekDay` determina que as semanas começam em um domingo e terminam em um sábado. Portanto, janeiro seria dividido em semanas de acordo com o diagrama abaixo, com as datas entre 9 e 15 de janeiro fornecendo o período válido para o cálculo de `inweek()`:

Diagrama do calendário com o intervalo da função `inweek()` destacado

Diagrama do calendário com o intervalo da função `inweek()` destacado

Diagrama do calendário com o intervalo da função `inweek()`inweek() destacado ![Diagrama de um calendário mostrando um mês, com as datas de 9 a 15 destacadas em verde. 9 é domingo e 15 é sábado.](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-inweek-example1-diagram.png)

Qualquer transação que ocorra entre 9 e 15 de janeiro retorna um resultado booleano de `TRUE`.

## Exemplo 2: period\_no

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

#### Script de carregamento e resultados

Visão geral

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.

O script de carregamento contém:

* O mesmo conjunto de dados contendo um conjunto de transações para 2022 é carregado em uma tabela denominada "`Transactions`".

* A variável de sistema `FirstWeekDay` que é definida como `6` (domingo).

* Um carregamento anterior que contém o seguinte:

  * A função `inweek ()`, definida como o campo "`prev_week`", que determina quais transações ocorreram uma semana inteira antes da semana de 14 de janeiro de 2022.

  * A função `weekday()`, definida como o campo "`week_day`", que mostra qual dia da semana corresponde a cada data.

Script de carregamento

```
SET FirstWeekDay=6; 
SET DateFormat='MM/DD/YYYY'; 
 
Transactions: 
    Load 
       *, 
	weekday(date) as week_day, 
	inweek(date,'01/14/2022', -1) as prev_week  
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/02/2022',37.23 
8189,'01/05/2022',17.17 
8190,'01/06/2022',88.27 
8191,'01/08/2022',57.42 
8192,'01/09/2022',53.80 
8193,'01/10/2022',82.06 
8194,'01/11/2022',40.39 
8195,'01/12/2022',87.21 
8196,'01/13/2022',95.93 
8197,'01/14/2022',45.89 
8198,'01/15/2022',36.23 
8199,'01/16/2022',25.66 
8200,'01/17/2022',82.77 
8201,'01/18/2022',69.98 
8202,'01/26/2022',76.11 
8203,'01/27/2022',25.12 
8204,'01/28/2022',46.23 
8205,'01/29/2022',84.21 
8206,'01/30/2022',96.24 
8207,'01/31/2022',67.67 
]; 
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `date`
* `week_day`
* `prev_week`

Tabela de resultados

| date | week\_day | prev\_week |
| --- | --- | --- |
| 01/02/2022 | Dom | -1 |
| 01/05/2022 | Qua | -1 |
| 01/06/2022 | Qui | -1 |
| 01/08/2022 | Sáb | -1 |
| 01/09/2022 | Dom | 0 |
| 01/10/2022 | Mon | 0 |
| 01/11/2022 | Ter | 0 |
| 01/12/2022 | Qua | 0 |
| 01/13/2022 | Qui | 0 |
| 01/14/2022 | Fri | 0 |
| 01/15/2022 | Sáb | 0 |
| 01/16/2022 | Dom | 0 |
| 01/17/2022 | Mon | 0 |
| 01/18/2022 | Ter | 0 |
| 01/26/2022 | Qua | 0 |
| 01/27/2022 | Qui | 0 |
| 01/28/2022 | Fri | 0 |
| 01/29/2022 | Sáb | 0 |
| 01/30/2022 | Dom | 0 |
| 01/31/2022 | Mon | 0 |

Usar `-1` como argumento `period_no` na função `inweek()` altera os limites da semana comparadora em sete dias completos. Com um `period_no` de `0`, a semana seria entre 9 e 15 de janeiro. Mas, neste exemplo, o `period_no` de `-1` desloca o limite inicial e final desse segmento para trás em uma semana. Os limites da data passam de 2 de janeiro a 8 de janeiro.

Diagrama do calendário com o intervalo da função `inweek()` destacado

Diagrama do calendário com o intervalo da função `inweek()` destacado

Diagrama do calendário com o intervalo da função `inweek()`inweek() destacado ![Diagrama de um calendário mostrando um mês, com as datas de 2 a 8 destacadas em verde. 2 é domingo e 8 é sábado.](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-inweek-example2-diagram.png)

Portanto, qualquer transação que ocorra entre 2 de janeiro e 8 de janeiro retornará um resultado booleano de TRUE.

## Exemplo 3: first\_week\_day

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

#### Script de carregamento e resultados

Visão geral

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.

O script de carregamento contém:

* O mesmo conjunto de dados contendo um conjunto de transações para 2022 é carregado em uma tabela denominada "`Transactions`".

* A variável de sistema `FirstWeekDay` que é definida como `6` (domingo).

* Um carregamento anterior que contém o seguinte:

  * A função `inweek()`, definida como o campo "`in_week`", que determina quais transações ocorreram na semana de 14 de janeiro de 2022.

  * A função `weekday()`, definida como o campo "`week_day`", que mostra qual dia da semana corresponde a cada data.

Script de carregamento

```
SET FirstWeekDay=6; 
SET DateFormat='MM/DD/YYYY'; 
 
Transactions: 
    Load 
       *, 
	weekday(date) as week_day, 
	inweek(date,'01/14/2022', 0, 0) as in_week 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/02/2022',37.23 
8189,'01/05/2022',17.17 
8190,'01/06/2022',88.27 
8191,'01/08/2022',57.42 
8192,'01/09/2022',53.80 
8193,'01/10/2022',82.06 
8194,'01/11/2022',40.39 
8195,'01/12/2022',87.21 
8196,'01/13/2022',95.93 
8197,'01/14/2022',45.89 
8198,'01/15/2022',36.23 
8199,'01/16/2022',25.66 
8200,'01/17/2022',82.77 
8201,'01/18/2022',69.98 
8202,'01/26/2022',76.11 
8203,'01/27/2022',25.12 
8204,'01/28/2022',46.23 
8205,'01/29/2022',84.21 
8206,'01/30/2022',96.24 
8207,'01/31/2022',67.67 
]; 
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `date`
* `week_day`
* `in_week`

Tabela de resultados

| date | week\_day | in\_week |
| --- | --- | --- |
| 01/02/2022 | Dom | 0 |
| 01/05/2022 | Qua | 0 |
| 01/06/2022 | Qui | 0 |
| 01/08/2022 | Sáb | 0 |
| 01/09/2022 | Dom | 0 |
| 01/10/2022 | Mon | -1 |
| 01/11/2022 | Ter | -1 |
| 01/12/2022 | Qua | -1 |
| 01/13/2022 | Qui | -1 |
| 01/14/2022 | Fri | -1 |
| 01/15/2022 | Sáb | -1 |
| 01/16/2022 | Dom | -1 |
| 01/17/2022 | Mon | 0 |
| 01/18/2022 | Ter | 0 |
| 01/26/2022 | Qua | 0 |
| 01/27/2022 | Qui | 0 |
| 01/28/2022 | Fri | 0 |
| 01/29/2022 | Sáb | 0 |
| 01/30/2022 | Dom | 0 |
| 01/31/2022 | Mon | 0 |

O uso de `0` como argumento `first_week_day` na função `inweek()` substitui a variável de sistema `FirstWeekDay` e define segunda-feira como o primeiro dia da semana.

Diagrama do calendário com o intervalo da função `inweek()` destacado

Diagrama do calendário com o intervalo da função `inweek()` destacado

Diagrama do calendário com o intervalo da função `inweek()`inweek() destacado ![Diagrama de um calendário mostrando um mês, com as datas de 10 a 16 destacadas em verde. 10 é segunda-feira e 16 é domingo.](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-inweek-example3-diagram.png)

Portanto, qualquer transação que ocorra entre 10 e 16 de janeiro retornará um resultado booleano de TRUE.

## Exemplo 4: Exemplo de objeto de gráfico

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

#### Script de carregamento e expressão de gráfico

Visão geral

São usados o mesmo conjunto de dados e cenário do primeiro exemplo.

No entanto, neste exemplo, o conjunto de dados permanece inalterado e é carregado no aplicativo. Crie uma medida na tabela de resultados para determinar quais transações ocorreram na semana de 14 de janeiro de 2022.

Script de carregamento

```
SET FirstWeekDay=6; 
SET DateFormat='MM/DD/YYYY'; 
 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/02/2022',37.23 
8189,'01/05/2022',17.17 
8190,'01/06/2022',88.27 
8191,'01/08/2022',57.42 
8192,'01/09/2022',53.80 
8193,'01/10/2022',82.06 
8194,'01/11/2022',40.39 
8195,'01/12/2022',87.21 
8196,'01/13/2022',95.93 
8197,'01/14/2022',45.89 
8198,'01/15/2022',36.23 
8199,'01/16/2022',25.66 
8200,'01/17/2022',82.77 
8201,'01/18/2022',69.98 
8202,'01/26/2022',76.11 
8203,'01/27/2022',25.12 
8204,'01/28/2022',46.23 
8205,'01/29/2022',84.21 
8206,'01/30/2022',96.24 
8207,'01/31/2022',67.67 
]; 
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:

* `date`

Crie as seguintes medidas:

* `=inweek (date,'01/14/2022',0)`, para calcular se as transações ocorreram na mesma semana de 14 de janeiro.

* `=weekday(date)`, para mostrar qual dia da semana corresponde a cada data.

Tabela de resultados

| date | week\_day | =inweek (date,'01/14/2022',0) |
| --- | --- | --- |
| 01/02/2022 | Dom | 0 |
| 01/05/2022 | Qua | 0 |
| 01/06/2022 | Qui | 0 |
| 01/08/2022 | Sáb | 0 |
| 01/09/2022 | Dom | -1 |
| 01/10/2022 | Mon | -1 |
| 01/11/2022 | Ter | -1 |
| 01/12/2022 | Qua | -1 |
| 01/13/2022 | Qui | -1 |
| 01/14/2022 | Fri | -1 |
| 01/15/2022 | Sáb | -1 |
| 01/16/2022 | Dom | 0 |
| 01/17/2022 | Mon | 0 |
| 01/18/2022 | Ter | 0 |
| 01/26/2022 | Qua | 0 |
| 01/27/2022 | Qui | 0 |
| 01/28/2022 | Fri | 0 |
| 01/29/2022 | Sáb | 0 |
| 01/30/2022 | Dom | 0 |
| 01/31/2022 | Mon | 0 |

A medida "`in_week`" é criada no gráfico usando a função `inweek()`. O primeiro argumento identifica qual campo está sendo avaliado. O segundo argumento é uma data codificada para 14 de janeiro, que é a `base_date`. O argumento `base_date` funciona com a variável de sistema `FirstWeekDay` para identificar a semana comparadora. Um `period_no` de `0` é o argumento final.

A variável de sistema `FirstWeekDay` determina que as semanas começam em um domingo e terminam em um sábado. Portanto, janeiro seria dividido em semanas de acordo com o diagrama abaixo, com as datas entre 9 e 15 de janeiro fornecendo o período válido para o cálculo de `inweek()`:

Diagrama do calendário com o intervalo da função `inweek()` destacado

Diagrama do calendário com o intervalo da função `inweek()` destacado

Diagrama do calendário com o intervalo da função `inweek()`inweek() destacado ![Diagrama de um calendário mostrando um mês, com as datas de 9 a 15 destacadas em verde. 9 é domingo e 15 é sábado.](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-inweek-example1-diagram.png)

Qualquer transação que ocorra entre 9 e 15 de janeiro retorna um resultado booleano de `TRUE`.

## Exemplo 5: Cenário

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

#### Script de carregamento e resultados

Visão geral

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela denominada “Products”.

* A tabela contém os seguintes campos:

  * product ID

  * product type

  * manufacture date

  * cost price

Foi identificado que, devido a um erro de equipamento, os produtos fabricados na semana de 12 de janeiro estavam com defeito. O usuário final gostaria de um gráfico que exibisse, por semana, o status de quais produtos fabricados estavam “com defeito” ou “sem defeito”, bem como o custo dos produtos fabricados naquela semana.

Script de carregamento

```
Products: 
Load 
* 
Inline  
[ 
product_id,manufacture_date,cost_price
8188,'01/02/2022',37.23 
8189,'01/05/2022',17.17 
8190,'01/06/2022',88.27 
8191,'01/08/2022',57.42 
8192,'01/09/2022',53.80 
8193,'01/10/2022',82.06 
8194,'01/11/2022',40.39 
8195,'01/12/2022',87.21 
8196,'01/13/2022',95.93 
8197,'01/14/2022',45.89 
8198,'01/15/2022',36.23 
8199,'01/16/2022',25.66 
8200,'01/17/2022',82.77 
8201,'01/18/2022',69.98 
8202,'01/26/2022',76.11 
8203,'01/27/2022',25.12 
8204,'01/28/2022',46.23 
8205,'01/29/2022',84.21 
8206,'01/30/2022',96.24 
8207,'01/31/2022',67.67 
]; 
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:

* =weekname(manufacture\_date)

Crie as seguintes medidas:

* =if(only(inweek(manufacture\_date,makedate(2022,01,12),0)),'Defective','Faultless'), para identificar quais produtos estão com defeito e quais estão sem defeito usando a função inweek().

* =sum(cost\_price), para mostrar a soma do custo de cada produto.

Faça o seguinte:

1. Defina o Formato numérico da medida como Dinheiro.

2. Em Aparência, desative Totais.

Tabela de resultados

| weekname(manufacture\_date) | =if(only(inweek(manufacture\_date,makedate(2022,01,12),0)), 'Defective','Faultless') | Sum(cost\_price) |
| --- | --- | --- |
| 2022/02 | Faultless | 200.09 |
| 2022/03 | Defective | 441.51 |
| 2022/04 | Faultless | 178.41 |
| 2022/05 | Faultless | 231.67 |
| 2022/06 | Faultless | 163.91 |

A função inweek() retorna um valor booleano ao avaliar as datas de fabricação de cada um dos produtos. Para qualquer produto fabricado na semana de 12 de janeiro, a função inweek() retorna um valor booleano de TRUE e marca os produtos como “Defective”. Para qualquer produto que retorne um valor de FALSE e, portanto, não fabricado naquela semana, ela marca os produtos como “Faultless”.