Esta função retorna um valor que mostra o número do ano e da semana com um valor numérico subjacente que corresponde a um carimbo de hora do primeiro milissegundo do primeiro dia da semana que contém a date.
A função weekname() determina em qual semana a data cai e retorna o número e o ano dessa semana. O primeiro dia da semana é determinado pela FirstWeekDayvariável de sistema . No entanto, você também pode alterar o primeiro dia da semana usando o argumento first_week_day da função weekname().
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.
Um desenvolvedor de aplicativos norte-americano geralmente obtém Set BrokenWeeks=1; no script, o que corresponde a semanas interrompidas. Um desenvolvedor de aplicativos europeu geralmente obtém Set BrokenWeeks=0; no script, correspondendo a semanas ininterruptas.
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.
No entanto, 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 sistema ReferenceDay e FirstWeekDay.
Exemplo da função Weekname
Data
Nome da semana ISO
Nome da semana dos EUA
Sat 2020 Dec 26
2020/52
2020/52
Sun 2020 Dec 27
2020/52
2020/53
Mon 2020 Dec 28
2020/53
2020/53
Tue 2020 Dec 29
2020/53
2020/53
Wed 2020 Dec 30
2020/53
2020/53
Thu 2020 Dec 31
2020/53
2020/53
Fri 2021 Jan 1
2020/53
2021/01
Sat 2021 Jan 2
2020/53
2021/01
Sun 2021 Jan 3
2020/53
2021/02
Mon 2021 Jan 4
2021/01
2021/02
Ter 2021, 5 de janeiro
2021/01
2021/02
Quando usar
A função weekname() é útil para quando você deseja comparar agregações por semanas.
Por exemplo, se você quiser ver o total de vendas de produtos por semana. Para manter a consistência com a variável de ambiente BrokenWeeks no aplicativo, use weekname() em vez de lunarweekname(). 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.
Tipo de dados de retorno: Dual
Argumentos
Argumento
Descrição
timestamp
A data ou o carimbo de data/hora a ser avaliado.
period_no
shift é um inteiro, em que o valor 0 indica a semana que contém a date. Os valores negativos no deslocamento indicam semanas precedentes e os valores positivos indicam semanas subsequentes.
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 de janeiro definir como dia de referência para definir a semana 1. Por padrão, as funções do 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
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 onde 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 Qlik Sense interface do usuário. Qlik Sense será exibido no mesmo idioma do navegador que você está usando.
Os exemplos abaixo pressupõem que:
Set FirstWeekDay=0;
Set BrokenWeeks=0;
Set ReferenceDay=4;
Exemplos de funções
Exemplo
Resultado
weekname('01/12/2013')
Retorna 2013/02.
weekname('01/12/2013', -1)
Retorna 2013/01.
weekname('01/12/2013', 0, 1)
Retorna 2013/02.
Exemplo 1: data sem argumentos adicionais
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 2021 e das primeiras duas semanas de 2022 é carregado em uma tabela chamada ‘Transactions’.
A variável de sistema DateFormat que é definida como o formato MM/DD/YYYY.
A variável de sistema BrokenWeeks que é definida como 1.
A variável de sistema FirstWeekDay que é definida como 6.
Um carregamento anterior que contém o seguinte:
A função weekday() definida como o campo "week_number", que retorna o número do ano e da semana quando as transações ocorreram.
A função weekname() definida como o campo chamado "week_day" para mostrar o valor do dia da semana de cada data de transação.
Script de carregamento
SET BrokenWeeks=1;
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
Transactions:
Load
*,
WeekDay(date) as week_day,
Weekname(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
Data
week_day
week_number
8183
12/27/2021
Seg
2021/53
8184
12/28/2021
Ter
2021/53
8185
12/29/2021
Qua
2021/53
8186
12/30/2021
Qui
2021/53
8187
12/31/2021
Sex
2021/53
8188
01/01/2022
Sáb
2022/01
8189
01/02/2022
Dom
2022/02
8190
01/03/2022
Seg
2022/02
8191
01/04/2022
Ter
2022/02
8192
01/05/2022
Qua
2022/02
8193
01/06/2022
Qui
2022/02
8194
01/07/2022
Sex
2022/02
8195
01/08/2022
Sáb
2022/02
8196
01/09/2022
Dom
2022/03
8197
01/10/2022
Seg
2022/03
8198
01/11/2022
Ter
2022/03
8199
01/12/2022
Qua
2022/03
8200
01/13/2022
Qui
2022/03
8201
01/14/2022
Sex
2022/03
O campo "week_number" é criado na instrução de carregamento anterior usando a função weekname() e transmitindo o campo de data como o argumento da função.
A weekname() função identifica inicialmente em qual semana o valor da data cai e retorna a contagem do número da semana e o ano em que a transação ocorre.
A variável de sistema FirstWeekDay define o domingo como o primeiro dia da semana. A variável de sistema BrokenWeeks define o aplicativo para usar semanas quebradas, o que significa que a semana 1 começará em 1º de janeiro.
Diagrama da função weekname() com as variáveis padrão.
A semana 1 começa em 1º de janeiro, que é um sábado e, portanto, as transações que ocorrem nessa data retornam o valor 2022/01 (o ano e o número da semana).
Diagrama da função weekname() que identifica o número da semana da transação 8192.
Como o aplicativo está usando semanas quebradas e o primeiro dia da semana é domingo, as transações que ocorrerem de 2 a 8 de janeiro retornarão o valor 2022/02 (semana número 2 em 2022.) Um exemplo disso seria a transação 8192, que ocorreu em 5 de janeiro e retorna o valor 2022/02 para o campo 'week_number'.
Exemplo 2 – period_no
Visão geral
São usados o mesmo conjunto de dados e cenário do primeiro exemplo.
No entanto, neste exemplo, a tarefa é criar um campo, "previous_week_number", que retorna o ano e o número da semana, antes da ocorrência das transações.
Abra o Editor da carga de dados e adicione o script de carregamento a seguir a uma nova seção.
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
Data
week_day
week_number
8183
12/27/2021
Seg
2021/52
8184
12/28/2021
Ter
2021/52
8185
12/29/2021
Qua
2021/52
8186
12/30/2021
Qui
2021/52
8187
12/31/2021
Sex
2021/52
8188
01/01/2022
Sáb
2021/52
8189
01/02/2022
Dom
2021/53
8190
01/03/2022
Seg
2021/53
8191
01/04/2022
Ter
2021/53
8192
01/05/2022
Qua
2021/53
8193
01/06/2022
Qui
2021/53
8194
01/07/2022
Sex
2021/53
8195
01/08/2022
Sáb
2022/01
8196
01/09/2022
Dom
2022/02
8197
01/10/2022
Seg
2022/02
8198
01/11/2022
Ter
2022/02
8199
01/12/2022
Qua
2022/02
8200
01/13/2022
Qui
2022/02
8201
01/14/2022
Sex
2022/02
Como um period_no de -1 foi usado como o argumento de deslocamento na função weekname(), a função primeiro identifica a semana em que as transações ocorrem. Em seguida, ela procura uma semana antes e identifica o primeiro milissegundo daquela semana.
Diagrama da função weekname() com um deslocamento de period_no de -1.
A transação 8192 ocorreu em 5 de janeiro de 2022. A função weekname() procura uma semana antes, 30 de dezembro de 2021, e retorna o número da semana e o ano dessa data: 2021/53.
Exemplo 3: first_week_day
Visão geral
São usados o mesmo conjunto de dados e cenário do primeiro exemplo.
No entanto, neste exemplo, a política da empresa é que a semana de trabalho comece na terça-feira.
Abra o Editor da carga de dados e adicione o script de carregamento a seguir a uma nova seção.
Script de carregamento
SET BrokenWeeks=1;
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
weekday(date) as week_day,
weekname(date,0,1) 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
Data
week_day
week_number
8183
12/27/2021
Seg
2021/52
8184
12/28/2021
Ter
2021/53
8185
12/29/2021
Qua
2021/53
8186
12/30/2021
Qui
2021/53
8187
12/31/2021
Sex
2021/53
8188
01/01/2022
Sáb
2022/01
8189
01/02/2022
Dom
2022/01
8190
01/03/2022
Seg
2022/01
8191
01/04/2022
Ter
2022/02
8192
01/05/2022
Qua
2022/02
8193
01/06/2022
Qui
2022/02
8194
01/07/2022
Sex
2022/02
8195
01/08/2022
Sáb
2022/02
8196
01/09/2022
Dom
2022/02
8197
01/10/2022
Seg
2022/02
8198
01/11/2022
Ter
2022/03
8199
01/12/2022
Qua
2022/03
8200
01/13/2022
Qui
2022/03
8201
01/14/2022
Sex
2022/03
Diagrama da função weekname() com a terça-feira como o primeiro dia da semana.
Como o argumento first_week_date de 1 é usado na função weekname(), ele usa a terça-feira como o primeiro dia da semana. Portanto, a função determina que a semana 53 de 2021 começa na terça-feira, 28 de dezembro e, devido ao uso de semanas quebradas pelo aplicativo, a semana 1 começa em 1º de janeiro de 2022 e termina no último milissegundo de segunda-feira, 3 de janeiro de 2022.
Diagrama mostrando o número da semana da transação 8192 com a terça-feira como o primeiro dia da semana.
A transação 8192 ocorreu em 5 de janeiro de 2022. Portanto, usando um parâmetro first_week_day de terça-feira, a função weekname() retorna o valor 2022/02 para o campo "week_number".
Exemplo 4: 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 do ano da semana para quando as transações ocorreram é criado como uma medida em um objeto de gráfico do aplicativo.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
id
date
=week_day (date)
Para calcular o início da semana em que uma transação ocorre, crie a seguinte medida:
=weekname(date)
Tabela de resultados
ID
Data
=weekday(date)
=weekname(date)
8183
12/27/2021
Seg
2021/53
8184
12/28/2021
Ter
2021/53
8185
12/29/2021
Qua
2021/53
8186
12/30/2021
Qui
2021/53
8187
12/31/2021
Sex
2021/53
8188
01/01/2022
Sáb
2022/01
8189
01/02/2022
Dom
2022/02
8190
01/03/2022
Seg
2022/02
8191
01/04/2022
Ter
2022/02
8192
01/05/2022
Qua
2022/02
8193
01/06/2022
Qui
2022/02
8194
01/07/2022
Sex
2022/02
8195
01/08/2022
Sáb
2022/02
8196
01/09/2022
Dom
2022/03
8197
01/10/2022
Seg
2022/03
8198
01/11/2022
Ter
2022/03
8199
01/12/2022
Qua
2022/03
8200
01/13/2022
Qui
2022/03
8201
01/14/2022
Sex
2022/03
O campo "week_number" é criado como uma medida no objeto de gráfico usando a função weekname() e transmitindo o campo de data como argumento dessa função.
A função weekname() identifica inicialmente em qual semana o valor da data cai e retorna a contagem do número da semana e o ano em que ocorre a transação.
A variável de sistema FirstWeekDay define o domingo como o primeiro dia da semana. A variável de sistema BrokenWeeks define o aplicativo para usar semanas quebradas, o que significa que a semana 1 começa em 1º de janeiro.
Diagrama mostrando o número da semana com domingo como o primeiro dia da semana.
Diagrama mostrando que a transação 8192 ocorreu na semana número dois.
Como o aplicativo está usando semanas quebradas, e o primeiro dia da semana é domingo, as transações que ocorrerem de 2 a 8 de janeiro retornarão o valor 2022/02, a semana número 2 em 2022. Observe que a transação 8192 ocorreu em 5 de janeiro e retorna o valor 2022/02 para o campo "week_number".
Exemplo 5: Cenário
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 para a última semana de 2019 e as duas primeiras semanas de 2020 é carregado em uma tabela chamada "Transactions".
A variável de sistema BrokenWeeks que é definida como 0.
A variável de sistema ReferenceDay que é definida como 2.
A variável de sistema DateFormat que é definida como o formato MM/DD/YYYY.
Carregue os dados e abra uma pasta. Crie uma nova tabela.
Crie uma dimensão calculada usando a seguinte expressão:
=weekname(date)
Para calcular o total de vendas, crie a seguinte medida de agregação:
=sum(amount)
Defina o Formato numérico da medida como Dinheiro.
Tabela de resultados
weekname(date)
=sum(amount)
2019/52
$125.69
2020/01
$346.51
2020/02
$347.57
2020/03
$122.01
Para demonstrar os resultados do uso da função weekname() nesse cenário, adicione o seguinte campo como uma dimensão:
date
Tabela de resultados com o campo de data
weekname(date)
Data
=sum(amount)
2019/52
12/27/2019
$58.27
2019/52
12/28/2019
$67.42
2020/01
12/29/2019
$23.80
2020/01
12/30/2019
$82.06
2020/01
12/31/2019
$40.56
2020/01
01/01/2020
$37.23
2020/01
01/02/2020
$17.17
2020/01
01/03/2020
$88.27
2020/01
01/04/2020
$57.42
2020/02
01/05/2020
$53.80
2020/02
01/06/2020
$82.06
2020/02
01/07/2020
$40.56
2020/02
01/08/2020
$53.67
2020/02
01/09/2020
$26.63
2020/02
01/10/2020
$72.48
2020/02
01/11/2020
$18.37
2020/03
01/12/2020
$45.26
2020/03
01/13/2020
$58.23
2020/03
01/14/2020
$18.52
Como o aplicativo usa semanas não quebradas, e a semana 1 exige no mínimo dois dias em janeiro devido à variável de sistema ReferenceDay, a semana 1 de 2020 inclui transações de 29 de dezembro de 2019.
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 – avise-nos!