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

Essa função retorna o ano ao qual o número da semana pertence, de acordo com as variáveis de ambiente. O número da semana varia entre 1 e cerca de 52.

Sintaxe:

weekyear(timestamp [, first\_week\_day [, broken\_weeks [, reference\_day]]])

Tipo de dados de retorno: inteiro

Argumentos

| Argumento | Descrição |
| --- | --- |
| timestamp | A data ou o carimbo de data/hora a ser avaliado. |
| first\_week\_day | Especifica o dia no qual inicia a semana. Se omitido, o valor da variável FirstWeekDay será usado.<br><br>Os valores possíveis first\_week\_day são 0 para segunda-feira, 1 para terça, 2 para quarta-feira, 3 para quinta-feira, 4 para sexta-feira, 5 para sábado e 6 para domingo.<br><br>Para obter mais informações sobre a variável de sistema, consulte [FirstWeekDay](https://help.qlik.com/pt-BR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm). |
| broken\_weeks | Se você não especificar broken\_weeks, o valor da variável BrokenWeeks será usado para definir se as semanas são quebradas ou não.<br><br>Para obter mais informações sobre a variável de sistema, consulte [BrokenWeeks](https://help.qlik.com/pt-BR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/BrokenWeeks.htm) |
| reference\_day | Se você não especificar reference\_day, o valor da variável ReferenceDay será usado para definir qual dia em janeiro será definido como dia de referência para definir a semana 1. Por padrão, as funções Qlik Sense usam 4 como o dia de referência. Isso significa que a semana 1 deve conter 4 de janeiro, ou dito de outra forma, que a semana 1 deve sempre ter pelo menos 4 dias em janeiro.<br><br>Para obter mais informações sobre a variável de sistema, consulte [ReferenceDay](https://help.qlik.com/pt-BR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ReferenceDay.htm) |

A função `weekyear()` determina em qual semana do ano uma data se enquadra. Em seguida, ele retorna o ano correspondente a esse número da semana.

Se `BrokenWeeks` estiver definido como `0` (false), `weekyear()` retornará o mesmo que `year()`.

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

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

Diagrama do intervalo da função `weekyear()`weekyear() ![Diagrama que mostra o intervalo de tempo que a função weekyear() avalia.](https://help.qlik.com/pt-BR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-diagram1.png)

No entanto, se variável de sistema `BrokenWeeks` estiver configurada para usar semanas ininterruptas, a semana 1 deverá conter apenas um determinado número de dias em janeiro com base no valor especificado na variável de sistema `ReferenceDay`.

Por exemplo, se um valor `ReferenceDay` de `4` for usado, a semana 1 deverá incluir pelo menos quatro dias em janeiro. É possível que a semana 1 inclua datas em dezembro do ano anterior ou que o número da última semana de um ano inclua datas em janeiro do ano seguinte. Em situações como essa, a função `weekyear()` retornará um valor diferente para a função `year()`.

Diagrama do intervalo da função `weekyear()` ao usar semanas ininterruptas

Diagrama do intervalo da função `weekyear()` ao usar semanas ininterruptas

Diagrama do intervalo da função `weekyear()`weekyear() ao usar semanas ininterruptas ![Diagrama que mostra como a função weekyear() funciona com semanas ininterruptas.](https://help.qlik.com/pt-BR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-diagram2.png)

Quando usar

A função `weekyear()` é útil quando você deseja comparar agregações por anos. Por exemplo, se você quiser ver o total de vendas de produtos por ano. A função `weekyear()` é escolhida no lugar de `year()` quando o usuário deseja manter a consistência com a variável de sistema `BrokenWeeks` no aplicativo.

## 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 |
| --- | --- |
| `weekyear('12/30/1996',0,0,4)` | Retorna 1997, porque a semana 1 de 1997 começa em 30/12/1996 |
| `weekyear('01/02/1997',0,0,4)` | Retorna 1997 |
| `weekyear('12/28/1997',0,0,4)` | Retorna 1997 |
| `weekyear('12/30/1997',0,0,4)` | Retorna 1998, porque a semana 1 de 1998 começa em 29/12/1997 |
| `weekyear('01/02/1999',0,0,4)` | Retorna 1998, porque a semana 53 de 1998 termina em 03/01/1999 |

Tópicos relacionados

| Tópico | Interação |
| --- | --- |
| [week – função de script e gráfico](https://help.qlik.com/pt-BR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/week.htm) | Retorna um número inteiro representando o número da semana de acordo com o ISO 8601 |
| [year – função de script e gráfico](https://help.qlik.com/pt-BR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/year.htm) | Retorna um número inteiro que representa o ano em que a expressão é interpretada como uma data, de acordo com a interpretação de número padrão. |

## Exemplo 1 - Semanas interrompidas

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekyear.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 seção.

O script de carregamento contém:

* Um conjunto de dados contendo um conjunto de transações da última semana de 2020 e da primeira semana de 2021 que é carregado em uma tabela denominada "`Transactions`",

* A variável `BrokenWeeks` que é definida como 1.

* Um carregamento anterior que contém o seguinte:

  * A função `weekyear()`, definida como o campo "`week_year`", que retorna o ano em que as transações ocorreram.

  * A função `week()`, definida como o campo "`week`", que mostra o número da semana de cada data da transação.

Script de carregamento

```
SET BrokenWeeks=1; 
						
Transactions: 
	Load 
       *, 
       week(date) as week, 
       weekyear(date) as week_year 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Resultados

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

* `id`
* `date`
* `week`
* `week_year`

Tabela de resultados

| id | data | semana | week\_year |
| --- | --- | --- | --- |
| 8176 | 12/28/2020 | 53 | 2020 |
| 8177 | 12/29/2020 | 53 | 2020 |
| 8178 | 12/30/2020 | 53 | 2020 |
| 8179 | 12/31/2020 | 53 | 2020 |
| 8180 | 01/01/2021 | 1 | 2021 |
| 8181 | 01/02/2021 | 1 | 2021 |
| 8182 | 01/03/2021 | 2 | 2021 |
| 8183 | 01/04/2021 | 2 | 2021 |
| 8184 | 01/05/2021 | 2 | 2021 |
| 8185 | 01/06/2021 | 2 | 2021 |
| 8186 | 01/07/2021 | 2 | 2021 |

O campo "`week_year`" é criado na instrução de carregamento anterior usando a função `weekyear()` e transmitindo o campo de data como o argumento da função.

A variável de sistema `BrokenWeeks` está definida como `1`, significando que o aplicativo usa semanas interrompidas. A semana 1 começa em 1º de janeiro.

Diagrama do intervalo da função `weekyear()` com o uso de semanas interrompidas

Diagrama do intervalo da função `weekyear()` com o uso de semanas interrompidas

Diagrama do intervalo da função `weekyear()`weekyear() com o uso de semanas interrompidas ![O diagrama que mostra a função weekyear() identifica que a transação 8181 ocorreu na semana 1 e retorna o ano dessa semana, 2021.](https://help.qlik.com/pt-BR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-examples1_and3-diagram.png)

A transação 8181 ocorre em 2 de janeiro, que faz parte da semana 1. Portanto, ela retorna um valor de 2021 para o campo "`week_year`".

## Exemplo 2 - Semanas ininterruptas

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekyear.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 seção.

O script de carregamento contém:

* Um conjunto de dados contendo um conjunto de transações da última semana de 2020 e da primeira semana de 2021 que é carregado em uma tabela denominada "`Transactions`".

* A variável `BrokenWeeks`, que está definida como `0`.

* Um carregamento anterior que contém o seguinte:

  * A função `weekyear()`, definida como o campo "`week_year`", que retorna o ano em que as transações ocorreram.

  * A função `week()`, definida como o campo "`week`", que mostra o número da semana de cada data da transação.

No entanto, neste exemplo, a política da empresa é usar semanas ininterruptas.

Script de carregamento

```
SET BrokenWeeks=0; 
						
Transactions: 
	Load 
       *, 
       week(date) as week, 
       weekyear(date) as week_year 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Resultados

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

* `id`
* `date`
* `week`
* `week_year`

Tabela de resultados

| id | data | semana | week\_year |
| --- | --- | --- | --- |
| 8176 | 12/28/2020 | 53 | 2020 |
| 8177 | 12/29/2020 | 53 | 2020 |
| 8178 | 12/30/2020 | 53 | 2020 |
| 8179 | 12/31/2020 | 53 | 2020 |
| 8180 | 01/01/2021 | 53 | 2020 |
| 8181 | 01/02/2021 | 53 | 2020 |
| 8182 | 01/03/2021 | 1 | 2021 |
| 8183 | 01/04/2021 | 1 | 2021 |
| 8184 | 01/05/2021 | 1 | 2021 |
| 8185 | 01/06/2021 | 1 | 2021 |
| 8186 | 01/07/2021 | 1 | 2021 |

A variável de sistema `BrokenWeeks` está definida como `0`, significando que o aplicativo usa semanas ininterruptas. Portanto, a semana 1 não precisa começar em 1º de janeiro.

A semana 53 de 2020 continua até o final de 2 de janeiro de 2021, com a semana 1 de 2020 começando no domingo, 3 de janeiro de 2021.

Diagrama do intervalo da função `weekyear()` com o uso de semanas ininterruptas

Diagrama do intervalo da função `weekyear()` com o uso de semanas ininterruptas

Diagrama do intervalo da função `weekyear()`weekyear() com o uso de semanas ininterruptas ![Diagrama que mostra como a função weekyear() funciona com semanas ininterruptas e que a semana 53 tem dias em 2020 e 2021.](https://help.qlik.com/pt-BR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-example2-diagram.png)

A transação 8181 ocorre em 2 de janeiro, que faz parte da semana 1. Portanto, ela retorna um valor de 2021 para o campo "`week_year`".

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekyear.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. O cálculo que retorna o número da semana do ano em que as transações ocorreram é criado como uma medida em um gráfico no aplicativo.

Script de carregamento

```
SET BrokenWeeks=1; 
						
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Resultados

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

* `id`
* `date`

Para calcular a semana em que uma transação ocorre, crie a seguinte medida:

* `=week(date)`

Para calcular o ano em que uma transação ocorre com base no número da semana, crie a seguinte medida:

* `=weekyear(date)`

Tabela de resultados

| id | data | semana | week\_year |
| --- | --- | --- | --- |
| 8176 | 12/28/2020 | 53 | 2020 |
| 8177 | 12/29/2020 | 53 | 2020 |
| 8178 | 12/30/2020 | 53 | 2020 |
| 8179 | 12/31/2020 | 53 | 2020 |
| 8180 | 01/01/2021 | 1 | 2021 |
| 8181 | 01/02/2021 | 1 | 2021 |
| 8182 | 01/03/2021 | 2 | 2021 |
| 8183 | 01/04/2021 | 2 | 2021 |
| 8184 | 01/05/2021 | 2 | 2021 |
| 8185 | 01/06/2021 | 2 | 2021 |
| 8186 | 01/07/2021 | 2 | 2021 |

O campo "`week_year`" é criado na instrução de carregamento anterior usando a função `weekyear()` e transmitindo o campo de data como o argumento da função.

A variável de sistema `BrokenWeeks` está definida como `1`, significando que o aplicativo usa semanas interrompidas. A semana 1 começa em 1º de janeiro.

Diagrama do intervalo da função `weekyear()` com o uso de semanas interrompidas

Diagrama do intervalo da função `weekyear()` com o uso de semanas interrompidas

Diagrama do intervalo da função `weekyear()`weekyear() com o uso de semanas interrompidas ![O diagrama que mostra a função weekyear() identifica que a transação 8181 ocorreu na semana 1 e retorna o ano dessa semana, 2021.](https://help.qlik.com/pt-BR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-examples1_and3-diagram.png)

A transação 8181 ocorre em 2 de janeiro, que faz parte da semana 1. Portanto, ela retorna um valor de 2021 para o campo "`week_year`".

## Exemplo 4: Cenário

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekyear.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 seção.

O script de carregamento contém:

* Um conjunto de dados contendo um conjunto de transações da última semana de 2020 e da primeira semana de 2021 que é carregado em uma tabela denominada "`Transactions`".

* A variável `BrokenWeeks`, que está definida como `0`. Isso significa que o aplicativo usará semanas ininterruptas.

* A variável `ReferenceDay`, que está definida como `2`. Isso significa que o ano começará em 2 de janeiro e conterá no mínimo dois dias em janeiro.

* A variável `FirstWeekDay`, que está definida como `1`. Isso significa que o primeiro dia da semana será terça-feira.

A política da empresa é usar semanas interrompidas. O usuário final gostaria de um gráfico que apresentasse o total de vendas por ano. O aplicativo usa semanas ininterruptas, com a semana 1 contendo no mínimo dois dias em janeiro.

Script de carregamento

```
SET BrokenWeeks=0; 
SET ReferenceDay=2; 
SET FirstWeekDay=1; 
 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42 
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela.

Para calcular o ano em que uma transação ocorre com base no número da semana, crie a seguinte medida:

* `=weekyear(date)`

Para calcular o total de vendas, crie a seguinte medida:

* `sum(amount)`

Defina o Formato numérico da medida como Dinheiro.

Tabela de resultados

| weekyear(date) | =sum(amount) |
| --- | --- |
| 2020 | 19.42 |
| 2021 | 373.37 |