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 encontrar o carimbo de data/hora de um período de tempo anterior ou posterior. 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 onde 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 Qlik Sense interface do usuário. 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 seção.
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, 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
data
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.
Diagrama da função monthsstart(), exemplo sem argumentos adicionais
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 seção.
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
data
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.
Diagrama da função monthsstart(), exemplo de period_no
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 seção.
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
data
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, divide o ano em segmentos bimestrais: Abr-Mai,Jun-Jul,Ago-Set,Out-Nov,Dez-Jan,Fev-Mar.
Diagrama da função monthsstart(), exemplo de first_month_of_year
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 a 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
data
=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
Diagrama da função monthsstart(), exemplo de objeto de gráfico
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 seção.
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 Gráficos.
Em Objetos de painel, arraste uma Entrada de variável para a pasta.
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 – avise-nos!