Esta função retorna um número inteiro que representa o número da semana de acordo com a ISO 8601. O número da semana é calculado a partir da data de interpretação da expressão, de acordo com a interpretação de números padrão.
A contagem de números da semana começa em 1º de janeiro (isso ocorre porque o Qlik Sense está definido por padrão para usar semanas interrompidas). A primeira semana termina no dia anterior à variável de sistema FirstWeekDay, independentemente de quantos dias tenham ocorrido nessa semana. A variável de sistema FirstWeekDay pode ser substituída dentro da função week() pelo argumento first_week_day.
A função week() também fornece a capacidade de especificar se você deseja usar semanas interrompidas ou ininterruptas por meio do argumento broken_weeks. Se a funcionalidade de semana interrompida for empregada, a semana 1 deverá conter um certo número de dias em janeiro, conforme definido pela variável de sistema ReferenceDay. Portanto, a semana 1 pode começar em dezembro ou, alternativamente, as semanas 52 ou 53 podem continuar até janeiro. Por fim, o argumento reference_day permite que a função substitua a variável de sistema ReferenceDay.
Ao contrário da função weekname(), a função week() também não retorna o valor do ano. Isso permite agregações que comparam semanas ao longo dos anos.
Há quatro argumentos que podem ser usados nessa função.
Argumento nº 1: carimbo de data/hora
Essa é a data a ser avaliada como um carimbo de data/hora ou expressão resolvendo em um carimbo de data/hora, para converter, por exemplo, “2012-10-12”.
Argumento nº 2: first_week_day
Se você não especificar first_week_day, o valor da variável FirstWeekDay será usado como o primeiro dia da semana.
Se desejar usar outro dia como o primeiro dia da semana, defina first_week_day como:
0 para segunda-feira
1 para terça-feira
2 para quarta-feira
3 para quinta-feira
4 para sexta-feira
5 para sábado
6 para domingo
O inteiro retornado pela função usará agora o primeiro dia da semana que você configurou com first_week_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.
Os seguintes valores podem ser usados para definir um dia de referência diferente:
A função The week() é útil quando você deseja comparar agregações por semanas. Por exemplo, ela pode ser usada se você deseja ver o total de vendas de produtos por semana. A função week() é escolhida no lugar de weekname() quando o usuário deseja que o cálculo não use necessariamente as variáveis de sistema BrokenWeeks, FirstWeekDay ou ReferenceDay do aplicativo.
Além disso, a função week() é escolhida quando você deseja comparar vários anos. Ao usar a função week(), o usuário pode criar sua própria combinação dessas variáveis para ser usada nos casos em que a função é usada.
Essas dimensões podem ser criadas no script de carregamento usando a função para criar um campo em uma tabela de Calendário mestre ou usadas diretamente em um gráfico como uma dimensão calculada.
Exemplos de funções
Exemplo
Resultado
week(
'10/12/2012')
Retorna 41.
week(
'35648')
Retorna 32, porque 35648 = 08/06/1997.
week('10/12/2012', 0, 1)
Retorna 42.
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.
Exemplo 1: Variáveis padrão do sistema
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 2021 e das primeiras duas semanas de 2022. Esse conjunto é carregado em uma tabela denominada Transactions.
O campo de data fornecido no formato da variável de sistema DateFormat (MM/DD/AAAA).
A criação de um campo, week_number, que retorna o número do ano e da semana em que as transações ocorreram.
A criação de um campo chamado week_day, mostrando o valor do dia da semana de cada data da transação.
Script de carregamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2021,58.27
8184,12/28/2021,67.42
8185,12/29/2021,23.80
8186,12/30/2021,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
id
date
week_day
week_number
Tabela de resultados
id
date
week_day
week_number
8183
12/27/2021
Seg
53
8184
12/28/2021
Ter
53
8185
12/29/2021
Qua
53
8186
12/30/2021
Qui
53
8187
12/31/2021
Sex
53
8188
01/01/2022
Sáb
1
8189
01/02/2022
Dom
2
8190
01/03/2022
Seg
2
8191
01/04/2022
Ter
2
8192
01/05/2022
Qua
2
8193
01/06/2022
Qui
2
8194
01/07/2022
Sex
2
8195
01/08/2022
Sáb
2
8196
01/09/2022
Dom
3
8197
01/10/2022
Seg
3
8198
01/11/2022
Ter
3
8199
01/12/2022
Qua
3
8200
01/13/2022
Qui
3
8201
01/14/2022
Sex
3
O campo week_number é criado na instrução de carregamento anterior usando a função week() e transmitindo o campo date como o argumento da função.
Nenhum outro parâmetro é informado para a função e, portanto, as seguintes variáveis padrão que afetam a função week() estão em vigor:
BrokenWeeks: A contagem semanal começa em 1º de janeiro
FirstWeekDay: O primeiro dia da semana é domingo
Como o aplicativo está usando a variável de sistema BrokenWeeks padrão, a semana 1 começa em 1º de janeiro, um sábado.
Por causa da variável de sistema FirstWeekDay padrão, as semanas começam em um domingo. O primeiro domingo após 1º de janeiro ocorre em 2 de janeiro, que é quando começa a semana 2.
Exemplo 2: first_week_day
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:
A criação de um campo, week_number, que retorna o número do ano e da semana em que as transações ocorreram.
A criação de um campo chamado week_day, mostrando o valor do dia da semana de cada data da transação.
Neste exemplo, gostaríamos de definir o início da semana de trabalho como terça-feira.
Script de carregamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,1) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
id
date
week_day
week_number
Tabela de resultados
id
date
week_day
week_number
8183
12/27/2021
Seg
52
8184
12/28/2021
Ter
53
8185
12/29/2021
Qua
53
8186
12/30/2021
Qui
53
8187
12/31/2021
Sex
53
8188
01/01/2022
Sáb
1
8189
01/02/2022
Dom
1
8190
01/03/2022
Seg
1
8191
01/04/2022
Ter
2
8192
01/05/2022
Qua
2
8193
01/06/2022
Qui
2
8194
01/07/2022
Sex
2
8195
01/08/2022
Sáb
2
8196
01/09/2022
Dom
2
8197
01/10/2022
Seg
2
8198
01/11/2022
Ter
3
8199
01/12/2022
Qua
3
8200
01/13/2022
Qui
3
8201
01/14/2022
Sex
3
O aplicativo ainda está usando semanas interrompidas. No entanto, o argumento first_week_day foi definido como 1 na função week(). Isso define o primeiro dia da semana como uma terça-feira.
O aplicativo está usando a variável de sistema BrokenWeeks padrão e, portanto, a semana 1 começa em 1º de janeiro, um sábado.
O argumento first_week_day da função week() define o primeiro dia da semana como uma terça-feira. Portanto, a semana 53 começa em 28 de dezembro de 2021.
No entanto, como a função ainda está usando semanas interrompidas, a semana 1 durará apenas dois dias, pois a primeira terça-feira após 1º de janeiro ocorre em 3 de janeiro.
Exemplo 3: unbroken_weeks
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 e cenário do primeiro exemplo.
Neste exemplo, usamos semanas ininterruptas.
Script de carregamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,6,0) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
id
date
week_day
week_number
Tabela de resultados
id
date
week_day
week_number
8183
12/27/2021
Seg
52
8184
12/28/2021
Ter
52
8185
12/29/2021
Qua
52
8186
12/30/2021
Qui
52
8187
12/31/2021
Sex
52
8188
01/01/2022
Sáb
52
8189
01/02/2022
Dom
1
8190
01/03/2022
Seg
1
8191
01/04/2022
Ter
1
8192
01/05/2022
Qua
1
8193
01/06/2022
Qui
1
8194
01/07/2022
Sex
1
8195
01/08/2022
Sáb
1
8196
01/09/2022
Dom
2
8197
01/10/2022
Seg
2
8198
01/11/2022
Ter
2
8199
01/12/2022
Qua
2
8200
01/13/2022
Qui
2
8201
01/14/2022
Sex
2
O parâmetro first_week_date está definido como 1, tornando terça-feira o primeiro dia da semana. O parâmetro broken_weeks está definido como 0, forçando a função a usar semanas ininterruptas. Por fim, o terceiro parâmetro define reference_day como 2.
O parâmetro first_week_date está definido como 6, tornando o domingo o primeiro dia da semana. O parâmetro broken_weeks está definido como 0, forçando a função a usar semanas ininterruptas.
Ao usar semanas ininterruptas, a semana 1 não começa necessariamente em 1º de janeiro. Em vez disso, ela deve ter no mínimo quatro dias. Portanto, no conjunto de dados, a semana 52 termina no sábado, 1º de janeiro de 2022. A semana 1 então começa na variável de sistema FirstWeekDay, que é domingo, 2 de janeiro. Essa semana terminará no sábado seguinte, 8 de janeiro.
Exemplo 4: reference_day
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 e cenário do terceiro exemplo.
A criação de um campo, week_number, que retorna o número do ano e da semana em que as transações ocorreram.
A criação de um campo chamado week_day, mostrando o valor do dia da semana de cada data da transação.
Além disso, as seguintes condições devem ser atendidas:
A semana de trabalho começa na terça-feira.
A empresa usa semanas ininterruptas.
O valor de reference_day é 2. Em outras palavras, o número mínimo de dias em janeiro na semana 1 será 2.
Script de carregamento
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,1,0,2) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
id
date
week_day
week_number
Tabela de resultados
id
date
week_day
week_number
8183
12/27/2021
Seg
52
8184
12/28/2021
Ter
1
8185
12/29/2021
Qua
1
8186
12/30/2021
Qui
1
8187
12/31/2021
Sex
1
8188
01/01/2022
Sáb
1
8189
01/02/2022
Dom
1
8190
01/03/2022
Seg
1
8191
01/04/2022
Ter
2
8192
01/05/2022
Qua
2
8193
01/06/2022
Qui
2
8194
01/07/2022
Sex
2
8195
01/08/2022
Sáb
2
8196
01/09/2022
Dom
2
8197
01/10/2022
Seg
2
8198
01/11/2022
Ter
3
8199
01/12/2022
Qua
3
8200
01/13/2022
Qui
3
8201
01/14/2022
Sex
3
O parâmetro first_week_date está definido como 1, tornando terça-feira o primeiro dia da semana. O parâmetro broken_weeks está definido como 0, forçando a função a usar semanas ininterruptas. Por fim, o terceiro parâmetro define o parâmetro reference_day como 2.
Com a função usando semanas ininterruptas e um valor reference_day de 2 usado como parâmetro, a semana 1 só precisa incluir dois dias em janeiro. Como o primeiro dia da semana é terça-feira, a semana 1 começa em 28 de dezembro de 2021 e termina na segunda-feira, 3 de janeiro de 2022.
Exemplo 5: Exemplo de objeto de gráfico
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 e cenário do primeiro exemplo.
No entanto, neste exemplo, o conjunto de dados inalterado é carregado no aplicativo. O cálculo que retorna o número da semana é criado como uma medida em um objeto de gráfico.
Carregue os dados e abra uma pasta. Crie uma nova tabela.
Adicione os seguintes campos como dimensões:
id
date
Em seguida, crie a seguinte medida:
=week (date)
Crie uma medida, week_day para mostrar o valor do dia da semana de cada data de transação:
=weekday(date)
Tabela de resultados
id
date
=week(date)
=weekday(date)
8183
12/27/2021
53
Seg
8184
12/28/2021
53
Ter
8185
12/29/2021
53
Qua
8186
12/30/2021
53
Qui
8187
12/31/2021
53
Sex
8188
01/01/2022
1
Sáb
8189
01/02/2022
2
Dom
8190
01/03/2022
2
Seg
8191
01/04/2022
2
Ter
8192
01/05/2022
2
Qua
8193
01/06/2022
2
Qui
8194
01/07/2022
2
Sex
8195
01/08/2022
2
Sáb
8196
01/09/2022
3
Dom
8197
01/10/2022
3
Seg
8198
01/11/2022
3
Ter
8199
01/12/2022
3
Qua
8200
01/13/2022
3
Qui
8201
01/14/2022
3
Sex
O campo week_number é criado na instrução de carregamento anterior usando a função week() e transmitindo o campo date como o argumento da função.
Nenhum outro parâmetro é informado para a função e, portanto, as seguintes variáveis padrão que afetam a função week() estão em vigor:
BrokenWeeks: A contagem semanal começa em 1º de janeiro
FirstWeekDay: O primeiro dia da semana é domingo
Como o aplicativo está usando a variável de sistema BrokenWeeks padrão, a semana 1 começa em 1º de janeiro, um sábado.
Por causa da variável de sistema FirstWeekDay padrão, as semanas começam em um domingo. O primeiro domingo após 1º de janeiro ocorre em 2 de janeiro, que é quando começa a semana 2.
Exemplo 6: 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 para a última semana de 2019 e as duas primeiras semanas de 2020. Esse conjunto é carregado em uma tabela denominada Transactions.
O campo de data fornecido no formato da variável de sistema DateFormat (MM/DD/AAAA).
O aplicativo usa principalmente semanas interrompidas em seu painel. No entanto, o usuário final deseja um objeto de gráfico que apresentasse o total de vendas por semana usando semanas ininterruptas. O dia de referência deve ser 2 de janeiro, com semanas começando em uma terça-feira. Isso pode ser alcançado mesmo quando essa dimensão não está disponível no modelo de dados. Para isso, use a função week() como uma dimensão calculada no gráfico.
Carregue os dados e abra uma pasta. Crie uma nova tabela.
Crie a seguinte dimensão calculada:
=week(date)
Em seguida, crie a seguinte medida de agregação:
=sum(amount)
Defina o Formato numérico da medida como Dinheiro.
Selecione o menu Classificação e, para a dimensão calculada, remova a classificação personalizada.
Desmarque as opções Classificar numericamente e Classificar alfabeticamente.
Tabela de resultados
week(date)
sum(amount)
52
$125.69
53
$146.42
1
$200.09
2
$347.57
3
$122.01
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!