week – função de script e gráfico
Essa função retorna um número inteiro representando o número da semana correspondente à data inserida.
Sintaxe:
week(timestamp [, first_week_day [, broken_weeks [, reference_day]]])
Tipo de dados de retorno: inteiro
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. 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:
Um desenvolvedor de aplicativos norte-americano geralmente recebe as seguintes variáveis de ambiente:
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 as configurações regionais do aplicativo.
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.
Se você for um criador de aplicativos, poderá definir a região padrão para os aplicativos que criar. Para obter mais informações, consulte Definindo suas configurações regionais preferidas para criar aplicativos no Qlik Cloud Analytics.
Os exemplos abaixo pressupõem
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
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
Diagrama da função week(), usando variáveis de sistema padrão

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
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.
Diagrama da função week(), exemplo de first_week_day

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
Diagrama da função week(), exemplo de objeto de gráfico

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.
Diagrama da função week(), exemplo de uso de 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
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.
Diagrama da função week(), exemplo de reference_day

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.
Script de carregamento
Transactions:
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
Faça o seguinte:
-
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)
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
Diagrama da função week(), exemplo de objeto de gráfico

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.
Script de carregamento
SET BrokenWeeks=1;
SET ReferenceDay=0;
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*
Inline
[
id,date,amount
8183,12/27/2019,58.27
8184,12/28/2019,67.42
8185,12/29/2019,23.80
8186,12/30/2019,82.06
8187,12/31/2019,40.56
8188,01/01/2020,37.23
8189,01/02/2020,17.17
8190,01/03/2020,88.27
8191,01/04/2020,57.42
8192,01/05/2020,53.80
8193,01/06/2020,82.06
8194,01/07/2020,40.56
8195,01/08/2020,53.67
8196,01/09/2020,26.63
8197,01/10/2020,72.48
8198,01/11/2020,18.37
8199,01/12/2020,45.26
8200,01/13/2020,58.23
8201,01/14/2020,18.52
];
Resultados
Faça o seguinte:
-
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.
week(date) | sum(amount) |
---|---|
52 | $125.69 |
53 | $146.42 |
1 | $200.09 |
2 | $347.57 |
3 | $122.01 |