Essa função determina se timestamp está dentro da semana lunar que contém base_date. As semanas lunares no Qlik Sense são definidas contando 1º de janeiro como o primeiro dia da semana. Além da última semana do ano, cada semana conterá exatamente sete dias.
No Qlik Sense, o valor booleano “true” é representado por -1, e o valor falso é representado por 0.
A função inlunarweek() determina em qual semana lunar a base_date cai. Em seguida, ela retorna um resultado booleano depois de determinar se cada valor de carimbo de data/hora ocorre durante a mesma semana lunar que base_date.
Quando usar
A função inlunarweek() retorna um resultado booleano. Normalmente, esse tipo de função será usado como uma condição em uma expressão IF. Isso retornaria uma agregação ou cálculo dependendo se a data avaliada ocorreu durante a semana lunar em questão.
Por exemplo, a função inlunarweek() pode ser usada para identificar todos os equipamentos fabricados em uma determinada semana lunar.
Argumentos
Argumento
Descrição
timestamp
A data que você deseja comparar com base_date.
base_date
Data que é usada para avaliar a semana lunar.
period_no
A semana lunar pode ser deslocada por period_no. period_n é um inteiro, em que o valor 0 indica a semana lunar que contém base_date. Valores negativos em period_no indicam semanas lunares precedentes e valores positivos indicam semanas lunares sucessivas.
first_week_day
Um deslocamento que pode ser maior ou menor que zero. Isso muda o início do ano por um número determinado de dias e/ou frações de um dia.
Exemplos de funções
Exemplo
Resultado
inlunarweek('01/12/2013', '01/14/2013',
0)
Retorna TRUE, já que o valor de timestamp, 01/12/2013, cai na semana de 01/08/2013 a 01/14/2013.
inlunarweek('01/12/2013', '01/07/2013',
0)
Retorna FALSE, já que base_date01/07/2013 está na semana lunar definida como 01/01/2013 a 01/07/2013.
inlunarweek('01/12/2013', '01/14/2013',
-1)
Retorna FALSE. Especificar um valor de period_no como -1 muda a semana para a semana anterior, 01/01/2013 para 01/07/2013.
inlunarweek('01/07/2013', 01/14/2013',
-1)
Retorna TRUE. Em comparação com o exemplo anterior, timestamp está na semana seguinte, depois de considerar a mudança para trás.
inlunarweek('01/11/2006', '01/08/2006',
0, 3)
Retorna FALSE. Especificar um valor de 3 para first_week_day significa que o início do ano é calculado a partir de 01/04/2013. Portanto, o valor de base_date cai na primeira semana, e o valor de timestamp cai na semana de 01/11/2013 a 01/17/2013.
A função inlunarweek() é frequentemente usada em combinação com as seguintes funções:
Essa função é usada para determinar o número da semana lunar do ano em que ocorre uma data de entrada.
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.
Exemplo 1: Nenhum argumento adicional
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 de transações para o mês de janeiro, que é carregado em uma tabela denominada Transactions.
O campo de data foi fornecido no formato da variável de sistema DateFormat (MM/DD/AAAA).
Crie um campo, in_lunar_week, que determina se as transações ocorreram na mesma semana lunar de 10 de janeiro.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
in_lunar_week
Tabela de resultados
date
in_lunar_week
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
O campo in_lunar_week é criado na instrução de carregamento anterior usando a função inlunarweek() e transmitindo o seguinte como argumentos da função:
O campo date
Uma data codificada para 10 de janeiro como base_date
Um period_no de 0
Como as semanas lunares começam em 1º de janeiro, 10 de janeiro cairia na semana lunar que começa em 8 de janeiro e termina em 14 de janeiro. Portanto, qualquer transação que ocorra entre essas duas datas em janeiro retornaria um valor booleano de TRUE. Isso é validado na tabela de resultados.
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 e cenário do primeiro exemplo.
O campo de data foi fornecido no formato da variável de sistema DateFormat (MM/DD/AAAA).
No entanto, neste exemplo, a tarefa é criar um campo, 2_lunar_weeks_later, que determina se as transações ocorreram ou não duas semanas lunares após 10 de janeiro.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
2_lunar_weeks_later
Tabela de resultados
date
2_lunar_weeks_later
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
0
1/9/2022
0
1/10/2022
0
1/11/2022
0
1/12/2022
0
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
-1
1/23/2022
-1
Nesse caso, como uma period_no de 2 foi usada como argumento offset na função inlunarweek(), a função define a semana que começa em 22 de janeiro como a semana lunar para validar transações. Portanto, qualquer transação que ocorra entre 22 e 28 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 usa o mesmo conjunto de dados e cenário do primeiro exemplo. No entanto, no exemplo, definimos que as semanas lunares começam em 6 de janeiro.
O mesmo conjunto de dados e cenário do primeiro exemplo.
A variável de sistema DateFormat padrão MM/DD/AAAA é usada.
Um argumento first_week_day de 5. Isso define que as semanas lunares comecem em 5 de janeiro.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
in_lunar_week
Tabela de resultados
date
in_lunar_week
1/5/2022
0
1/6/2022
-1
1/7/2022
-1
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
Nesse caso, como o argumento first_week_date de 5 é usado na função inlunarweek(), ele desloca o início do calendário da semana lunar para 6 de janeiro. Portanto, 10 de janeiro cai na semana lunar que começa em 6 de janeiro e termina em 12 de janeiro. Qualquer transação que esteja entre essas duas datas retornará um valor booleano de TRUE.
Exemplo 4: 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.
O campo de data foi fornecido no formato da variável de sistema DateFormat (MM/DD/AAAA).
No entanto, neste exemplo, o conjunto de dados inalterado é carregado no aplicativo. O cálculo que determina se as transações ocorreram na mesma semana lunar de 10 de janeiro é 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 esse campo como uma dimensão: date.
Para calcular se uma transação ocorre na semana lunar que contém 10 de janeiro, crie a seguinte medida:
= inlunarweek(date,'01/10/2022', 0)
Tabela de resultados
date
=inlunarweek(date,'01/10/2022', 0)
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
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.
Informações que consistem em ID do produto, data de fabricação e preço de custo.
Foi identificado que, devido a um erro de equipamento, os produtos que foram fabricados na semana lunar que inclui 12 de janeiro estavam com defeito. O usuário final deseja um objeto de gráfico que mostre, por nome da semana lunar, o status que indica se os produtos fabricados estavam "com defeito" ou "sem defeito", bem como o custo dos produtos fabricados naquele mês.
A função inlunarweek() retorna um valor booleano ao avaliar as datas de fabricação de cada um dos produtos. Para qualquer produto fabricado na semana lunar que contém 10 de janeiro, a função inlunarweek() retorna um valor booleano de TRUE e marca os produtos como “com defeito”. Para qualquer produto que retorne um valor de FALSE e, portanto, não tenha sido fabricado nessa semana, ela marca os produtos como “sem defeito”.
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!