Esta função descobre se timestamp está dentro da parte da semana lunar até e inclusive o último milissegundo da base_date. As semanas lunares no Qlik Sense são definidas contando 1º de janeiro como o primeiro dia da semana e, além da última semana do ano, conterão exatamente sete dias.
No Qlik Sense, o valor booleano “true” é representado por -1, e o valor falso é representado por 0.
A função inlunarweektodate() atua como o ponto final da semana lunar. Por outro lado, a função inlunarweek() determina em qual semana lunar a base_date cai. Por exemplo, se base_date fosse 5 de janeiro, qualquer carimbo de data/hora entre 1º de janeiro e 5 de janeiro retornaria um resultado booleano de TRUE, enquanto as datas de 6 e 7 de janeiro e posteriores retornariam um resultado booleano de FALSE.
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.
Quando usar
A função inlunarweektodate() retorna um resultado booleano. Normalmente, esse tipo de função será usado como uma condição em uma expressão IF. A função inlunarweektodate() seria usada quando o usuário quisesse que o cálculo retornasse uma agregação ou um cálculo, dependendo se a data avaliada ocorreu durante um determinado segmento da semana em questão.
Por exemplo, a função inlunarweektodate() pode ser usada para identificar todos os equipamentos fabricados em uma determinada semana até e incluindo uma data específica.
Exemplos de funções
Exemplo
Resultado
inlunarweektodate('01/12/2013', '01/13/2013',
0)
Retorna TRUE, já que o valor de timestamp, 01/12/2013, cai na parte da semana de 01/08/2013 a 01/13/2013.
inlunarweektodate('01/12/2013', '01/11/2013',
0)
Retorna FALSE, já que o valor de timestamp é posterior ao valor de base_date, mesmo que as duas datas estejam na mesma semana lunar anterior a 01/12/2012.
inlunarweektodate('01/12/2006', '01/05/2006',
1)
Retorna TRUE. Especificar um valor de 1 para period_no desloca a base_date para frente uma semana, assim, o valor de timestamp cai na parte da semana lunar.
A função inlunarweektodate() é 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. Para obter mais informações, consulte Modificando configurações regionais para aplicativos e scripts.
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.
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 o mês de janeiro, que é carregado em uma tabela denominada Transactions. A variável de sistema DateFormat padrão MM/DD/AAAA é usada.
Crie um campo, in_lunar_week_to_date, que determina quais transações ocorreram na semana lunar até a data 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_to_date
Tabela de resultados
date
in_lunar_week_to_date
1/1/2022
0
1/4/2022
0
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
O campo in_lunar_week_to_date é criado na instrução de carregamento anterior usando a função inlunarweektodate() e transmitindo o campo date, uma data codificada para 10 de janeiro como base_date e um deslocamento de 0 como argumentos da função.
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, como estamos usando a função inlunarweektodate(), essa semana lunar terminaria no dia 10. 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 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. 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 após a semana lunar até a data de 1º 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/1/2022
0
1/4/2022
0
1/10/2022
0
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
-1
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
Nesse caso, a função inlunarweektodate() determina que a semana lunar até 10 de janeiro equivale a três dias (8, 9, 10 de janeiro). Como um period_no de 2 foi usado como argumento offset, essa semana lunar é alterada em 14 dias. Portanto, isso define que a semana lunar de três dias incluirá 22, 23 e 24 de janeiro. Qualquer transação que ocorra entre 22 de janeiro e 24 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 e cenário do primeiro exemplo.
A variável de sistema DateFormat padrão MM/DD/AAAA é usada.
Um argumento first_week_date de 3. Isso define que as semanas lunares comecem em 3 de janeiro.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
in_lunar_week_to_date
Tabela de resultados
date
in_lunar_week_to_date
1/1/2022
0
1/4/2022
-1
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
Nesse caso, como o argumento the first_week_date de 3 é usado na função inlunarweek(), a primeira semana lunar será de 3 de janeiro a 10 de janeiro. Como 10 de janeiro também é base_date, qualquer transação que ocorra entre essas duas datas retornará um valor booleano de TRUE.
Exemplo 4: Exemplo de objeto de gráfico
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.
No entanto, neste exemplo, o conjunto de dados inalterado é carregado no aplicativo. O cálculo que determina se as transações ocorreram na semana lunar até 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.
Crie a seguinte medida:
=inlunarweektodate(date,'01/10/2022', 0)
Tabela de resultados
date
=inlunarweektodate(date,'01/10/2022', 0)
1/1/2022
0
1/4/2022
0
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
A medida in_lunar_week_to_date é criada no objeto de gráfico usando a função inlunarweektodate() e transmitindo o campo de data, uma data codificada para 10 de janeiro como base_date e um deslocamento de 0 como os argumentos da função.
Como as semanas lunares começam em 1º de janeiro, 10 de janeiro cairia na semana lunar que começa em 8 de janeiro. Além disso, como estamos usando a função inlunarweektodate(), essa semana lunar terminaria no dia 10. 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 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 fabricados na semana lunar de 12 de janeiro estavam com defeito. O problema foi resolvido em 13 de janeiro. O usuário final deseja um objeto de gráfico que mostre, por semana, o status que indica se os produtos fabricados estão "com defeito" ou "sem defeito", bem como o custo dos produtos fabricados naquela semana.
A função inlunarweektodate() retorna um valor booleano ao avaliar as datas de fabricação de cada um dos produtos. Para os casos que retornam um valor booleano de TRUE, ela marca os produtos como ‘Defective’. Para qualquer produto que retorne um valor de FALSE e, portanto, não tenha sido fabricado na semana lunar até 12 de janeiro, 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!