Essa função retorna um valor correspondente ao carimbo de data/hora do primeiro milissegundo do mês, bimestre, trimestre, quadrimestre ou semestre contendo uma data base. Também é possível descobrir a data/hora de um período de tempo anterior ou seguinte.O formato de saída padrão é o DateFormat definido no script.
A função monthsstart() divide o ano em segmentos com base no argumento n_months fornecido. Em seguida, ela avalia em qual segmento cada data fornecida se encaixa e retorna o primeiro milissegundo desse segmento, em formato de data. A função também fornece a capacidade de retornar o carimbo de data/hora inicial dos segmentos anteriores ou seguintes, bem como de redefinir qual é o primeiro mês do ano.
Os seguintes segmentos do ano estão disponíveis na função como argumentos n_month:
Possíveis argumentos n_month
Períodos
Número de meses
mês
1
bimestre
2
trimestre
3
quadrimestre
4
semestre
6
Argumentos
Argumento
Descrição
n_months
O número de meses que define o período. Um inteiro ou uma expressão que se resolve como um inteiro que deve ser um dos seguintes: 1 (equivalente à função inmonth()), 2 (bimestre), 3 (equivalente à função inquarter()), 4 (quadrimestre) ou 6 (semestre).
date
A data ou o carimbo de data/hora a ser avaliado.
period_no
O período pode ser deslocado por period_no, um inteiro ou expressão que resolve um inteiro, no qual o valor 0 indica o período que contém base_date. Valores negativos em period_no indicam períodos precedentes e valores positivos indicam períodos sucessivos.
first_month_of_year
Se desejar trabalhar com anos (fiscais) que não comecem em janeiro, indique um valor entre 2 e 12 em first_month_of_year.
Quando usar
A função monthsstart() é normalmente usada como parte de uma expressão quando o usuário deseja que o cálculo use a fração de um período que ainda não ocorreu. Isso pode ser usado, por exemplo, para fornecer uma variável de entrada para permitir que o usuário calcule o total de juros acumulados até o momento no mês, trimestre ou semestre.
Exemplos de funções
Exemplo
Resultado
monthsstart(4, '10/19/2013')
Retorna 09/01/2013.
monthsstart(4, '10/19/2013, -1)
Retorna 05/01/2013.
monthsstart(4, '10/19/2013', 0, 2
)
Retorna 10/01/2013, porque o início do ano se torna o mês 2.
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 chamada Transactions.
O campo de data fornecido no formato da variável de sistema DateFormat (MM/DD/AAAA).
A criação de um campo, bi_monthly_start, que agrupa as transações em segmentos bimestrais e retorna o carimbo de data/hora inicial do segmento para cada transação.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
bi_monthly_start
bi_monthly_start_timestamp
Tabela de resultados
date
bi_monthly_start
bi_monthly_start_timestamp
2/19/2022
01/01/2022
1/1/2022 12:00:00 AM
3/7/2022
03/01/2022
3/1/2022 12:00:00 AM
3/30/2022
03/01/2022
3/1/2022 12:00:00 AM
4/5/2022
03/01/2022
3/1/2022 12:00:00 AM
4/16/2022
03/01/2022
3/1/2022 12:00:00 AM
5/1/2022
05/01/2022
5/1/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/22/2022
05/01/2022
5/1/2022 12:00:00 AM
6/15/2022
05/01/2022
5/1/2022 12:00:00 AM
6/26/2022
05/01/2022
5/1/2022 12:00:00 AM
7/9/2022
07/01/2022
7/1/2022 12:00:00 AM
7/22/2022
07/01/2022
7/1/2022 12:00:00 AM
7/23/2022
07/01/2022
7/1/2022 12:00:00 AM
7/27/2022
07/01/2022
7/1/2022 12:00:00 AM
8/2/2022
07/01/2022
7/1/2022 12:00:00 AM
8/8/2022
07/01/2022
7/1/2022 12:00:00 AM
8/19/2022
07/01/2022
7/1/2022 12:00:00 AM
9/26/2022
09/01/2022
9/1/2022 12:00:00 AM
10/14/2022
09/01/2022
9/1/2022 12:00:00 AM
10/29/2022
09/01/2022
9/1/2022 12:00:00 AM
O campo bi_monthly_start é criado na instrução de carregamento anterior usando a função monthsstart(). O primeiro argumento fornecido é 2, dividindo o ano em segmentos bimestrais. O segundo argumento identifica qual campo está sendo avaliado.
A transação 8195 ocorre em 22 de maio. A função monthsstart() inicialmente divide o ano em segmentos bimestrais. A transação 8195 cai no segmento entre 1º de maio e 30 de junho. Portanto, a função retorna o primeiro milissegundo desse segmento, 1º de maio de 2022 às 12:00:00.
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, prev_bi_monthly_start, que retorna o primeiro milissegundo do segmento bimestral antes da transação.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
prev_bi_monthly_start
prev_bi_monthly_start_timestamp
Tabela de resultados
date
prev_bi_monthly_start
prev_bi_monthly_start_timestamp
2/19/2022
11/01/2021
11/1/2021 12:00:00 AM
3/7/2022
01/01/2022
1/1/2022 12:00:00 AM
3/30/2022
01/01/2022
1/1/2022 12:00:00 AM
4/5/2022
01/01/2022
1/1/2022 12:00:00 AM
4/16/2022
01/01/2022
1/1/2022 12:00:00 AM
5/1/2022
03/01/2022
3/1/2022 12:00:00 AM
5/7/2022
03/01/2022
3/1/2022 12:00:00 AM
5/22/2022
03/01/2022
3/1/2022 12:00:00 AM
6/15/2022
03/01/2022
3/1/2022 12:00:00 AM
6/26/2022
03/01/2022
3/1/2022 12:00:00 AM
7/9/2022
05/01/2022
5/1/2022 12:00:00 AM
7/22/2022
05/01/2022
5/1/2022 12:00:00 AM
7/23/2022
05/01/2022
5/1/2022 12:00:00 AM
7/27/2022
05/01/2022
5/1/2022 12:00:00 AM
8/2/2022
05/01/2022
5/1/2022 12:00:00 AM
8/8/2022
05/01/2022
5/1/2022 12:00:00 AM
8/19/2022
05/01/2022
5/1/2022 12:00:00 AM
9/26/2022
07/01/2022
7/1/2022 12:00:00 AM
10/14/2022
07/01/2022
7/1/2022 12:00:00 AM
10/29/2022
07/01/2022
7/1/2022 12:00:00 AM
Usando -1 como o argumento period_no na função monthsstart(), depois de dividir inicialmente um ano em segmentos bimestrais, a função retorna o primeiro milissegundo do segmento bimestral anterior até quando uma transação ocorre.
A transação 8195 ocorre no segmento entre maio e junho. Portanto, o segmento bimestral anterior estava entre 1º de março e 30 de abril, então a função retorna o primeiro milissegundo desse segmento, 1º de março de 2022, às 12:00:00 AM.
Exemplo 3: first_month_of_year
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, bi_monthly_start, que agrupa as transações em segmentos bimestrais e retorna o carimbo de data/hora inicial do conjunto para cada transação.
No entanto, neste exemplo, também precisamos definir abril como o primeiro mês do exercício financeiro.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
bi_monthly_start
bi_monthly_start_timestamp
Tabela de resultados
date
bi_monthly_start
bi_monthly_start_timestamp
2/19/2022
02/01/2022
2/1/2022 12:00:00 AM
3/7/2022
02/01/2022
2/1/2022 12:00:00 AM
3/30/2022
02/01/2022
2/1/2022 12:00:00 AM
4/5/2022
04/01/2022
4/1/2022 12:00:00 AM
4/16/2022
04/01/2022
4/1/2022 12:00:00 AM
5/1/2022
04/01/2022
4/1/2022 12:00:00 AM
5/7/2022
04/01/2022
4/1/2022 12:00:00 AM
5/22/2022
04/01/2022
4/1/2022 12:00:00 AM
6/15/2022
06/01/2022
6/1/2022 12:00:00 AM
6/26/2022
06/01/2022
6/1/2022 12:00:00 AM
7/9/2022
06/01/2022
6/1/2022 12:00:00 AM
7/22/2022
06/01/2022
6/1/2022 12:00:00 AM
7/23/2022
06/01/2022
6/1/2022 12:00:00 AM
7/27/2022
06/01/2022
6/1/2022 12:00:00 AM
8/2/2022
08/01/2022
8/1/2022 12:00:00 AM
8/8/2022
08/01/2022
8/1/2022 12:00:00 AM
8/19/2022
08/01/2022
8/1/2022 12:00:00 AM
9/26/2022
08/01/2022
8/1/2022 12:00:00 AM
10/14/2022
10/01/2022
10/1/2022 12:00:00 AM
10/29/2022
10/01/2022
10/1/2022 12:00:00 AM
Usando 4 como o argumento first_month_of_year na função monthsstart(), a função começa o ano em 1º de abril. Em seguida, ela divide o ano em segmentos bimestrais: Abr-mai, Jun-jul, Ago-set, Out-nov, Dez-jan, Fev-mar.
A transação 8195 ocorreu em 22 de maio e cai no segmento entre 1º de abril e 31 de maio. Portanto, a função retorna o primeiro milissegundo desse segmento, 1º de abril de 2022 às 12:00:00.
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 agrupa as transações em segmentos bimestrais e retorna o carimbo de data/hora inicial do conjunto para cada transação é 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 as seguintes medidas:
=monthsstart(2,date)
=timestamp(monthsstart(2,date))
Esses cálculos recuperarão o carimbo de data/hora inicial do segmento bimestral em que cada transação ocorreu.
Tabela de resultados
date
=monthsstart(2,date)
=timestamp(monthsstart(2,date))
9/26/2022
09/01/2022
9/1/2022 12:00:00 AM
10/14/2022
09/01/2022
9/1/2022 12:00:00 AM
10/29/2022
09/01/2022
9/1/2022 12:00:00 AM
7/9/2022
07/01/2022
7/1/2022 12:00:00 AM
7/22/2022
07/01/2022
7/1/2022 12:00:00 AM
7/23/2022
07/01/2022
7/1/2022 12:00:00 AM
7/27/2022
07/01/2022
7/1/2022 12:00:00 AM
8/2/2022
07/01/2022
7/1/2022 12:00:00 AM
8/8/2022
07/01/2022
7/1/2022 12:00:00 AM
8/19/2022
07/01/2022
7/1/2022 12:00:00 AM
5/1/2022
05/01/2022
5/1/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/22/2022
05/01/2022
5/1/2022 12:00:00 AM
6/15/2022
05/01/2022
5/1/2022 12:00:00 AM
6/26/2022
05/01/2022
5/1/2022 12:00:00 AM
3/7/2022
03/01/2022
3/1/2022 12:00:00 AM
3/30/2022
03/01/2022
3/1/2022 12:00:00 AM
4/5/2022
03/01/2022
3/1/2022 12:00:00 AM
4/16/2022
03/01/2022
3/1/2022 12:00:00 AM
2/19/2022
01/01/2022
1/1/2021 12:00:00 AM
A transação 8195 ocorreu em 22 de maio. A função monthsstart() inicialmente divide o ano em segmentos bimestrais. A transação 8195 cai no segmento entre 1º de maio e 30 de junho. Portanto, a função retorna o primeiro milissegundo desse segmento, 05/01/2022 12:00:00 AM.
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 do mês e taxa de juros simples cobrada em cada empréstimo por ano.
O usuário final gostaria de um objeto de gráfico que mostre, por ID de empréstimo, os juros atuais acumulados em cada empréstimo no período de sua escolha. O exercício financeiro começa em janeiro.
No início do script de carregamento, foi criada uma variável (vPeriod) que será vinculada ao controle de entrada de variável. Em seguida, configure a variável como um objeto personalizado na pasta.
Faça o seguinte:
No painel de ativos, clique em Objetos personalizados.
Selecione Qlik - Pacote Dashboard e crie um objeto de Entrada de variável.
Insira um título para o objeto de gráfico.
Em Variável, selecione vPeriod como o Nome e defina o objeto para ser exibido como um Menu suspenso.
Em Valores, configure o objeto para usar valores dinâmicos. Insira o seguinte: ='1~month|2~bi-month|3~quarter|4~tertial|6~half-year'
Em seguida, crie a tabela de resultados.
Faça o seguinte:
Crie uma nova tabela. Adicione os seguintes campos como dimensões:
employee_id
employee_name
Crie uma medida para calcular os juros acumulados:
Defina o Formato numérico da medida como Dinheiro. Clique em Edição concluída. Agora, você pode modificar os dados mostrados na tabela ajustando o segmento de tempo no objeto de variável.
É assim que a tabela de resultados ficará quando a opção de período month for selecionada:
A função monthsstart(), usando a entrada do usuário como primeiro argumento e a data de hoje como segundo argumento, retorna a data de início do período escolhido pelo usuário. Ao subtrair esse resultado da data atual, a expressão retorna o número de dias decorridos até o momento nesse período.
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 nesse período.
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!