No Qlik Sense, o valor booleano “true” é representado por -1, e o valor falso é representado por 0.
A função inweek() usa o argumento base_date para identificar em qual período de sete dias a data cai. O dia de início da semana é baseado na variável de sistema FirstWeekDay. No entanto, você também pode alterar o primeiro dia da semana usando o argumento first_week_day da função inweek().
Depois que a semana selecionada for definida, a função retornará resultados booleanos ao comparar os valores de data prescritos com esse segmento da semana.
Quando usar
A função inweek() retorna um resultado booleano. Normalmente, esse tipo de função será usado como uma condição em um if expression. A função inweek() retorna uma agregação ou cálculo que depende se uma data avaliada ocorreu na semana com a data selecionada do argumento base_date.
Por exemplo, a função inweek() pode ser usada para identificar todos os equipamentos fabricados em uma semana específica.
Argumentos
Argumento
Descrição
timestamp
A data que você deseja comparar com base_date.
base_date
Data que é usada para avaliar a semana.
period_no
A semana pode ser deslocada por period_no. period_no é um inteiro, em que o valor 0 indica a semana que contém base_date. Os valores negativos em period_no indicam semanas precedentes e os valores positivos indicam semanas subsequentes.
first_week_day
Por padrão, o primeiro dia da semana é domingo (conforme determinado pela variável de sistema FirstWeekDay), começando à meia-noite entre sábado e domingo. O parâmetro first_week_day substitui a variável FirstWeekDay. Para indicar a semana que começa em outro dia, especifique um sinalizador entre 0 e 6.
Valores de first_week_day
Dia
Valor
Segunda-feira
0
Terça-feira
1
Quarta-feira
2
Quinta-feira
3
Sexta-feira
4
Sábado
5
Domingo
6
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.
Exemplos de funções
Exemplo
Resultado
inweek ('01/12/2006', '01/14/2006', 0)
Retorna TRUE
inweek ('01/12/2006', '01/20/2006', 0 )
Retorna FALSE
inweek ('01/12/2006', '01/14/2006', -1 )
Retorna FALSE
inweek ('01/07/2006', '01/14/2006', -1)
Retorna TRUE
inweek ('01/12/2006', '01/09/2006', 0, 3)
Retorna FALSE porque first_week_day está especificado como 3 (quinta-feira), o que torna 01/12/2006 o primeiro dia da semana seguinte à semana contendo 01/09/2006.
Estes tópicos podem ajudar você a trabalhar com essa função:
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
week_day
in_week
Tabela de resultados
date
week_day
in_week
01/02/2022
Dom
0
01/05/2022
Qua
0
01/06/2022
Qui
0
01/08/2022
Sáb
0
01/09/2022
Dom
-1
01/10/2022
Mon
-1
01/11/2022
Ter
-1
01/12/2022
Qua
-1
01/13/2022
Qui
-1
01/14/2022
Fri
-1
01/15/2022
Sáb
-1
01/16/2022
Dom
0
01/17/2022
Mon
0
01/18/2022
Ter
0
01/26/2022
Qua
0
01/27/2022
Qui
0
01/28/2022
Fri
0
01/29/2022
Sáb
0
01/30/2022
Dom
0
01/31/2022
Mon
0
O campo "in_week" é criado na instrução de carregamento anterior usando a função inweek(). O primeiro argumento identifica qual campo está sendo avaliado. O segundo argumento é uma data codificada para 14 de janeiro, que é a base_date. O argumento base_date funciona com a variável de sistema FirstWeekDay para identificar a semana comparadora. period_no de 0, significando que a função não está comparando semanas anteriores ou posteriores à semana segmentada, é o argumento final.
A variável de sistema FirstWeekDay determina que as semanas começam em um domingo e terminam em um sábado. Portanto, janeiro seria dividido em semanas de acordo com o diagrama abaixo, com as datas entre 9 e 15 de janeiro fornecendo o período válido para o cálculo de inweek():
Qualquer transação que ocorra entre 9 e 15 de janeiro retorna um resultado booleano de TRUE.
Exemplo 2: period_no
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 contendo um conjunto de transações para 2022 é carregado em uma tabela denominada "Transactions".
A variável de sistema FirstWeekDay que é definida como 6 (domingo).
Um carregamento anterior que contém o seguinte:
A função inweek (), definida como o campo "prev_week", que determina quais transações ocorreram uma semana inteira antes da semana de 14 de janeiro de 2022.
A função weekday(), definida como o campo "week_day", que mostra qual dia da semana corresponde a cada data.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
week_day
prev_week
Tabela de resultados
date
week_day
prev_week
01/02/2022
Dom
-1
01/05/2022
Qua
-1
01/06/2022
Qui
-1
01/08/2022
Sáb
-1
01/09/2022
Dom
0
01/10/2022
Mon
0
01/11/2022
Ter
0
01/12/2022
Qua
0
01/13/2022
Qui
0
01/14/2022
Fri
0
01/15/2022
Sáb
0
01/16/2022
Dom
0
01/17/2022
Mon
0
01/18/2022
Ter
0
01/26/2022
Qua
0
01/27/2022
Qui
0
01/28/2022
Fri
0
01/29/2022
Sáb
0
01/30/2022
Dom
0
01/31/2022
Mon
0
Usar -1 como argumento period_no na função inweek() altera os limites da semana comparadora em sete dias completos. Com um period_no de 0, a semana seria entre 9 e 15 de janeiro. Mas, neste exemplo, o period_no de -1 desloca o limite inicial e final desse segmento para trás em uma semana. Os limites da data passam de 2 de janeiro a 8 de janeiro.
Portanto, qualquer transação que ocorra entre 2 de janeiro e 8 de janeiro retornará um resultado booleano de TRUE.
Exemplo 3: 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:
O mesmo conjunto de dados contendo um conjunto de transações para 2022 é carregado em uma tabela denominada "Transactions".
A variável de sistema FirstWeekDay que é definida como 6 (domingo).
Um carregamento anterior que contém o seguinte:
A função inweek(), definida como o campo "in_week", que determina quais transações ocorreram na semana de 14 de janeiro de 2022.
A função weekday(), definida como o campo "week_day", que mostra qual dia da semana corresponde a cada data.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
week_day
in_week
Tabela de resultados
date
week_day
in_week
01/02/2022
Dom
0
01/05/2022
Qua
0
01/06/2022
Qui
0
01/08/2022
Sáb
0
01/09/2022
Dom
0
01/10/2022
Mon
-1
01/11/2022
Ter
-1
01/12/2022
Qua
-1
01/13/2022
Qui
-1
01/14/2022
Fri
-1
01/15/2022
Sáb
-1
01/16/2022
Dom
-1
01/17/2022
Mon
0
01/18/2022
Ter
0
01/26/2022
Qua
0
01/27/2022
Qui
0
01/28/2022
Fri
0
01/29/2022
Sáb
0
01/30/2022
Dom
0
01/31/2022
Mon
0
O uso de 0 como argumento first_week_day na função inweek() substitui a variável de sistema FirstWeekDay e define segunda-feira como o primeiro dia da semana.
Portanto, qualquer transação que ocorra entre 10 e 16 de janeiro retornará um resultado booleano de TRUE.
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. Crie uma medida na tabela de resultados para determinar quais transações ocorreram na semana de 14 de janeiro de 2022.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:
date
Crie as seguintes medidas:
=inweek (date,'01/14/2022',0), para calcular se as transações ocorreram na mesma semana de 14 de janeiro.
=weekday(date), para mostrar qual dia da semana corresponde a cada data.
Tabela de resultados
date
week_day
=inweek (date,'01/14/2022',0)
01/02/2022
Dom
0
01/05/2022
Qua
0
01/06/2022
Qui
0
01/08/2022
Sáb
0
01/09/2022
Dom
-1
01/10/2022
Mon
-1
01/11/2022
Ter
-1
01/12/2022
Qua
-1
01/13/2022
Qui
-1
01/14/2022
Fri
-1
01/15/2022
Sáb
-1
01/16/2022
Dom
0
01/17/2022
Mon
0
01/18/2022
Ter
0
01/26/2022
Qua
0
01/27/2022
Qui
0
01/28/2022
Fri
0
01/29/2022
Sáb
0
01/30/2022
Dom
0
01/31/2022
Mon
0
A medida "in_week" é criada no gráfico usando a função inweek(). O primeiro argumento identifica qual campo está sendo avaliado. O segundo argumento é uma data codificada para 14 de janeiro, que é a base_date. O argumento base_date funciona com a variável de sistema FirstWeekDay para identificar a semana comparadora. Um period_no de 0 é o argumento final.
A variável de sistema FirstWeekDay determina que as semanas começam em um domingo e terminam em um sábado. Portanto, janeiro seria dividido em semanas de acordo com o diagrama abaixo, com as datas entre 9 e 15 de janeiro fornecendo o período válido para o cálculo de inweek():
Qualquer transação que ocorra entre 9 e 15 de janeiro retorna um resultado booleano de TRUE.
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 que é carregado em uma tabela denominada “Products”.
A tabela contém os seguintes campos:
product ID
product type
manufacture date
cost price
Foi identificado que, devido a um erro de equipamento, os produtos fabricados na semana de 12 de janeiro estavam com defeito. O usuário final gostaria de um gráfico que exibisse, por semana, o status de quais produtos fabricados estavam “com defeito” ou “sem defeito”, bem como o custo dos produtos fabricados naquela semana.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:
=weekname(manufacture_date)
Crie as seguintes medidas:
=if(only(inweek(manufacture_date,makedate(2022,01,12),0)),'Defective','Faultless'), para identificar quais produtos estão com defeito e quais estão sem defeito usando a função inweek().
=sum(cost_price), para mostrar a soma do custo de cada produto.
Faça o seguinte:
Defina o Formato numérico da medida como Dinheiro.
A função inweek() retorna um valor booleano ao avaliar as datas de fabricação de cada um dos produtos. Para qualquer produto fabricado na semana de 12 de janeiro, a função inweek() retorna um valor booleano de TRUE e marca os produtos como “Defective”. Para qualquer produto que retorne um valor de FALSE e, portanto, não fabricado naquela semana, ela marca os produtos como “Faultless”.
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!