Esta função retorna o ano ao qual o número da semana pertence, de acordo com a ISO 8601. O número da semana varia entre 1 e cerca de 52.
Sintaxe:
weekyear(expression)
Tipo de dados de retorno: inteiro
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.
Por padrão, os aplicativos da Qlik usam semanas interrompidas (definidas pela variável de sistema BrokenWeeks), a semana número 1 começa em 1º de janeiro e o ano termina após a semana 52. Portanto, a função weekyear() sempre retornará o mesmo valor da função week() quando o aplicativo usar semanas interrompidas.
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().
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')
Retorna 1997, porque a semana 1 de 1997 começa em 30/12/1996
weekyear('01/02/1997')
Retorna 1997
weekyear('12/28/1997')
Retorna 1997
weekyear('12/30/1997')
Retorna 1998, porque a semana 1 de 1998 começa em 29/12/1997
weekyear('01/02/1999')
Retorna 1998, porque a semana 53 de 1998 termina em 03/01/1999
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
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 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
date
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.
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
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 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
date
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.
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
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.
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
date
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.
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
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 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
Esta página ajudou?
Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!