Especifica o dia no qual inicia a semana. Se omitido, o valor da variávelFirstWeekDay será usado.
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.
Para obter mais informações sobre a variável de sistema, consulte FirstWeekDay.
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.
Para obter mais informações sobre a variável de sistema, consulte BrokenWeeks
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.
Para obter mais informações sobre a variável de sistema, consulte ReferenceDay
A função week() determina em qual semana a data cai e retorna o número da semana.
No Qlik Sense, as configurações regionais são obtidas quando o aplicativo é criado, e as configurações correspondentes são armazenadas no script como variáveis de ambiente. Elas são usados para determinar o número da semana.
Isso significa que a maioria dos desenvolvedores de aplicativos europeus obtém as seguintes variáveis de ambiente, correspondentes à definição ISO 8601:
Set FirstWeekDay =0; // Monday as first week day
Set BrokenWeeks =0; // Use unbroken weeks
Set ReferenceDay =4; // Jan 4th is always in week 1
Um desenvolvedor de aplicativos norte-americano geralmente recebe as seguintes variáveis de ambiente:
Set FirstWeekDay =6; // Sunday as first week day
Set BrokenWeeks =1; // Use broken weeks
Set ReferenceDay =1; // Jan 1st is always in week 1
O primeiro dia da semana é determinado pela variável de sistema FirstWeekDay. Você também pode alterar o primeiro dia da semana usando o argumento first_week_day na função week().
Se seu aplicativo usar semanas interrompidas, a contagem de números de semana começará em 1º de janeiro e terminará no dia anterior à variável do sistema FirstWeekDay, independentemente de quantos dias tenham ocorrido.
Se o seu aplicativo estiver usando semanas não quebradas, a semana 1 pode começar no ano anterior ou nos primeiros dias de janeiro. Isso depende de como você usa as variáveis de ambiente FirstWeekDay e ReferenceDay.
Quando usar
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.
Por exemplo, se você quiser ver o total de vendas de produtos por semana.
Se o aplicativo estiver usando semanas não quebradas, a semana 1 pode conter datas de dezembro do ano anterior ou pode excluir datas em janeiro do ano atual. Se o aplicativo estiver usando semanas quebradas, a semana 1 pode conter menos de sete dias.
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. Para obter mais informações, consulte Modificando configurações regionais para aplicativos e scripts.
As configurações regionais padrão nos aplicativos são baseadas no perfil do usuário. Essas configurações de formato regional não estão relacionadas ao idioma exibido na interface do usuário do Qlik Cloud. O Qlik Cloud será exibido no mesmo idioma do navegador que você está usando.
Set DateFormat= 'MM/DD/YYYY';
Set FirstWeekDay=0;
Set BrokenWeeks=0;
Set ReferenceDay=4;
Exemplos de funções
Exemplo
Resultado
week('12/28/2021')
Retorna 52.
week(44614)
Retorna 8, já que esse é o número de série de 22/02/2022.
week('01/03/2021')
Retorna 53.
week('01/03/2021',6)
Returna 1.
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 de carregamento 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!