Essa função retorna um valor correspondente a um carimbo de data/hora do primeiro milissegundo do primeiro dia da semana lunar que contém 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.
A função lunarweekstart() determina em qual semana lunar a date cai. Em seguida, ela retorna um carimbo de data/hora, em formato de data, para o primeiro milissegundo daquela semana.
Argumentos
Argumento
Descrição
date
A data ou o carimbo de data/hora a ser avaliado.
period_no
period_no é um inteiro ou uma expressão que resolve um inteiro em que o valor 0 indica a semana lunar que contém 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 lunarweekstart() é comumente usada como parte de uma expressão quando o usuário deseja que o cálculo use a fração da semana decorrida até o momento. Diferentemente da função weekstart(), no início de cada novo ano civil, a semana começa em 1º de janeiro e cada semana subsequente começa sete dias depois. A função lunarweekstart() não é afetada pela variável de sistema FirstWeekDay.
Por exemplo, lunarweekstart() pode ser usado para calcular os juros acumulados em uma semana até o momento.
Exemplos de funções
Exemplo
Resultado
lunarweekstart('01/12/2013')
Retorna 01/08/2013.
lunarweekstart('01/12/2013', -1)
Retorna 01/01/2013.
lunarweekstart('01/12/2013', 0, 1
)
Retorna 01/09/2013, porque definir first_week_day como 1 significa que o início do ano foi alterado para 01/02/2013.
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: 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 2022, que é carregado em uma tabela denominada Transactions.
O campo de data fornecido no formato da variável de sistema DateFormat (MM/DD/AAAA).
A criação de um campo, start_of_week, que retorna um carimbo de data/hora para o início da semana lunar em que as transações ocorreram.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
start_of_week
start_of_week_timestamp
Tabela de resultados
date
start_of_week
start_of_week_timestamp
1/7/2022
01/01/2022
1/1/2022 12:00:00 AM
1/19/2022
01/15/2022
1/15/2022 12:00:00 AM
2/5/2022
02/05/2022
2/5/2022 12:00:00 AM
2/28/2022
02/26/2022
2/26/2022 12:00:00 AM
3/16/2022
03/12/2022
3/12/2022 12:00:00 AM
4/1/2022
03/26/2022
3/26/2022 12:00:00 AM
5/7/2022
05/07/2022
5/7/2022 12:00:00 AM
5/16/2022
05/14/2022
5/14/2022 12:00:00 AM
6/15/2022
06/11/2022
6/11/2022 12:00:00 AM
6/26/2022
06/25/2022
6/25/2022 12:00:00 AM
7/9/2022
07/09/2022
7/9/2022 12:00:00 AM
7/22/2022
07/16/2022
7/16/2022 12:00:00 AM
7/23/2022
07/23/2022
7/23/2022 12:00:00 AM
7/27/2022
07/23/2022
7/23/2022 12:00:00 AM
8/2/2022
07/30/2022
7/30/2022 12:00:00 AM
8/8/2022
08/06/2022
8/6/2022 12:00:00 AM
8/19/2022
08/13/2022
8/13/2022 12:00:00 AM
9/26/2022
09/24/2022
9/24/2022 12:00:00 AM
10/14/2022
10/08/2022
10/8/2022 12:00:00 AM
10/29/2022
10/29/2022
10/29/2022 12:00:00 AM
O campo start_of_week é criado na instrução de carregamento anterior usando a função lunarweekstart() e transmitindo o campo date como o argumento da função.
A função lunarweekstart() identifica a semana lunar na qual a data cai, retornando um carimbo de data/hora para o primeiro milissegundo dessa semana.
A transação 8189 ocorreu em 19 de janeiro. A função lunarweekstart() identifica que a semana lunar começa em 15 de janeiro. Portanto, o valor start_of_week dessa transação retorna o primeiro milissegundo desse dia, que é 15 de janeiro às 12:00:00 AM.
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.
A criação de um campo previous_lunar_week_start, que retorna o carimbo de data/hora do início da semana antes da transação.
Nesse caso, como um period_no de -1 foi usado como argumento de deslocamento na função lunarweekstart(), a função primeiro identifica a semana lunar em que as transações ocorrem. Em seguida, ela muda uma semana antes e identifica o primeiro milissegundo dessa semana lunar.
A transação 8189 ocorreu em 19 de janeiro. A função lunarweekstart() identifica que a semana lunar começa em 15 de janeiro. Portanto, a semana lunar anterior começou em 8 de janeiro às 12h00; esse é o valor retornado para o campo previous_lunar_week_start.
Exemplo 3: first_week_day
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. Neste exemplo, definimos que as semanas lunares devem começar em 5 de janeiro.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
start_of_week
start_of_week_timestamp
Tabela de resultados
date
start_of_week
start_of_week_timestamp
1/7/2022
01/05/2022
1/5/2022 12:00:00 AM
1/19/2022
01/19/2022
1/19/2022 12:00:00 AM
2/5/2022
02/02/2022
2/2/2022 12:00:00 AM
2/28/2022
02/23/2022
2/23/2022 12:00:00 AM
3/16/2022
03/16/2022
3/16/2022 12:00:00 AM
4/1/2022
03/30/2022
3/30/2022 12:00:00 AM
5/7/2022
05/04/2022
5/4/2022 12:00:00 AM
5/16/2022
05/11/2022
5/11/2022 12:00:00 AM
6/15/2022
06/15/2022
6/15/2022 12:00:00 AM
6/26/2022
06/22/2022
6/22/2022 12:00:00 AM
7/9/2022
07/06/2022
7/6/2022 12:00:00 AM
7/22/2022
07/20/2022
7/20/2022 12:00:00 AM
7/23/2022
07/20/2022
7/20/2022 12:00:00 AM
7/27/2022
07/27/2022
7/27/2022 12:00:00 AM
8/2/2022
07/27/2022
7/27/2022 12:00:00 AM
8/8/2022
08/03/2022
8/3/2022 12:00:00 AM
8/19/2022
08/17/2022
8/17/2022 12:00:00 AM
9/26/2022
09/21/2022
9/21/2022 12:00:00 AM
10/14/2022
10/12/2022
10/12/2022 12:00:00 AM
10/29/2022
10/26/2022
10/26/2022 12:00:00 AM
Nesse caso, como o argumento first_week_date de 4 é usado na função lunarweekstart(), ele desloca o início do ano de 1º de janeiro a 5 de janeiro.
A transação 8189 ocorreu em 19 de janeiro. Como as semanas lunares começam em 5 de janeiro, a função lunarweekstart() identifica que a semana lunar contendo 19 de janeiro também começa em 19 de janeiro às 12:00:00 AM. Portanto, esse é o valor retornado para o campo start_of_week.
Exemplo 4: Exemplo de 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.
No entanto, neste exemplo, o conjunto de dados inalterado é carregado no aplicativo. O cálculo que retorna um carimbo de data/hora para o início da semana lunar em que 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 esse campo como uma dimensão: date.
Adicione as seguintes medidas:
=lunarweekstart(date)
=timestamp(lunarweekstart(date))
Tabela de resultados
date
=lunarweekstart(date)
=timestamp(lunarweekstart(date))
1/7/2022
01/01/2022
1/1/2022 12:00:00 AM
1/19/2022
01/15/2022
1/15/2022 12:00:00 AM
2/5/2022
02/05/2022
2/5/2022 12:00:00 AM
2/28/2022
02/26/2022
2/26/2022 12:00:00 AM
3/16/2022
03/12/2022
3/12/2022 12:00:00 AM
4/1/2022
03/26/2022
3/26/2022 12:00:00 AM
5/7/2022
05/07/2022
5/7/2022 12:00:00 AM
5/16/2022
05/14/2022
5/14/2022 12:00:00 AM
6/15/2022
06/11/2022
6/11/2022 12:00:00 AM
6/26/2022
06/25/2022
6/25/2022 12:00:00 AM
7/9/2022
07/09/2022
7/9/2022 12:00:00 AM
7/22/2022
07/16/2022
7/16/2022 12:00:00 AM
7/23/2022
07/23/2022
7/23/2022 12:00:00 AM
7/27/2022
07/23/2022
7/23/2022 12:00:00 AM
8/2/2022
07/30/2022
7/30/2022 12:00:00 AM
8/8/2022
08/06/2022
8/6/2022 12:00:00 AM
8/19/2022
08/13/2022
8/13/2022 12:00:00 AM
9/26/2022
09/24/2022
9/24/2022 12:00:00 AM
10/14/2022
10/08/2022
10/8/2022 12:00:00 AM
10/29/2022
10/29/2022
10/29/2022 12:00:00 AM
A medida start_of_week é criada no objeto de gráfico usando a função lunarweekstart() e transmitindo o campo de data como o argumento da função.
A função lunarweekstart() identifica em qual semana lunar o valor da data cai, retornando um carimbo de data/hora para o último milissegundo dessa semana.
A transação 8189 ocorreu em 19 de janeiro. A função lunarweekstart() identifica que a semana lunar começa em 15 de janeiro. Portanto, o valor de start_of_week dessa transação é o primeiro milissegundo desse dia, que é 15 de janeiro às 12h00.
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 saldos de empréstimos, que é carregado em uma tabela denominada Loans.
Dados que consistem em IDs de empréstimos, saldo no início da semana e taxa de juros simples cobrada em cada empréstimo por ano.
O usuário final deseja um objeto de gráfico que mostre, por ID de empréstimo, os juros atuais que foram acumulados em cada empréstimo na semana até o momento.
A função lunarweekstart(), usando a data de hoje como seu único argumento, retorna a data de início do ano atual. Ao subtrair esse resultado da data atual, a expressão retorna o número de dias decorridos até o momento nesta semana.
Esse valor é então multiplicado pela taxa de juros e dividido por 365 para retornar a taxa de juros efetiva acumulada do período. O resultado é então multiplicado pelo saldo inicial do empréstimo para retornar os juros acumulados até o momento nesta semana.
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!