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 variável de sistema FirstWeekDay. No entanto, você também pode alterar o primeiro dia da semana usando o argumento first_week_day na 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
Date
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 é 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
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.
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 guia.
O script de carregamento contém:
Um conjunto de dados contendo um conjunto de transações para a última semana de 2021 e as duas primeiras 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
date
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 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çará em 1º de janeiro.
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).
Como o aplicativo está usando semanas quebradas, e o primeiro dia da semana é domingo, as transações que ocorrem de 2 a 8 de janeiro retornam 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 guia.
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
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.
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 guia.
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
date
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
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.
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
date
=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.
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 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 é 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)
date
=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 - informe-nos como podemos melhorar!