Essa função descobre se um carimbo de data/hora está dentro do mesmo mês, bimestre, trimestre, quadrimestre ou semestre como data base. Também é possível descobrir se uma data/hora está dentro de um período de tempo anterior ou seguinte.
No Qlik Sense, o valor booleano “true” é representado por -1, e o valor falso é representado por 0.
A função inmonths() divide o ano em segmentos com base no argumento n_months fornecido. Em seguida, ela determina se cada carimbo de data/hora avaliado se enquadra no mesmo segmento do argumento base_date. No entanto, se um argumento period_no for fornecido, a função determinará se os carimbos de data/hora se enquadram em um período anterior ou posterior de base_date.
Os seguintes segmentos do ano estão disponíveis na função como argumentos n_month.
Argumentos n_month
Período
Número de meses
mês
1
bimestre
2
trimestre
3
quadrimestre
4
semestre
6
Quando usar
A função inmonths() retorna um resultado booleano. Normalmente, esse tipo de função será usado como uma condição em um if expression. Usando a função inmonths(), você pode selecionar o período que deseja avaliar. Por exemplo, permitir que o usuário identifique produtos fabricados no mês, trimestre ou semestre de um determinado período.
Tipo de dados de retorno: Booleano
No Qlik Sense, o valor booleano “true” é representado por -1, e o valor falso é representado por 0.
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).
timestamp
A data que você deseja comparar com base_date.
base_date
Data que é usada para avaliar o período.
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.
Você pode usar os seguintes valores para definir o primeiro mês do ano no argumento first_month_of_year:
Valores first_month_of_year
Month
Valor
Fevereiro
2
Março
3
Abril
4
Maio
5
Junho
6
Julho
7
Agosto
8
Setembro
9
Outubro
10
Novembro
11
Dezembro
12
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.
Exemplos de funções
Exemplo
Resultado
inmonths(4, '01/25/2013', '04/25/2013', 0)
Retorna TRUE. Porque o valor de timestamp, 25/01/2013, está dentro do período de quatro meses de 01/01/2013 a 30/04/2013, no qual está o valor de base_date, 25/04/2013.
inmonths(4, '05/25/2013', '04/25/2013', 0)
Retorna FALSE. Porque 25/05/2013 está fora do mesmo período do exemplo anterior.
inmonths(4, '11/25/2012', '02/01/2013', -1 )
Retorna TRUE. Porque o valor de period_no, -1, retrocede o período de pesquisa em um período de quatro meses (o valor de n meses), o que torna o período de pesquisa de 01/09/2012 a 31/12/2012.
inmonths(4, '05/25/2006', '03/01/2006', 0, 3)
Retorna TRUE. Como o valor de first_month_of_year está definido como 3, o que torna o período de pesquisa de 01/03/2006 a 30/07/2006 em vez de 01/01/2006 a 30/04/2006.
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 contendo um conjunto de transações para 2022 é carregado em uma tabela denominada "Transactions".
Um carregamento anterior com uma variável adicional, “in_months”, que determina quais transações ocorreram no mesmo trimestre de 15 de maio de 2022.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
in_months
Tabela de resultados
date
in_months
2/19/2022
0
3/7/2022
0
3/30/2022
0
4/5/2022
-1
4/16/2022
-1
5/1/2022
-1
5/7/2022
-1
5/22/2022
-1
6/15/2022
-1
6/26/2022
-1
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
O campo "in_months" é criado na instrução de carregamento anterior usando a função inmonths(). O primeiro argumento fornecido é 3, que divide o ano em segmentos trimestrais. O segundo argumento identifica qual campo está sendo avaliado, o campo de data neste exemplo. O terceiro argumento é uma data codificada para 15 de maio, que é base_date, e period_no de 0 é o argumento final.
Maio cai no segundo trimestre do ano. Portanto, qualquer transação que ocorra entre 1º de abril e 30 de junho retornará um resultado 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:
Um conjunto de dados contendo um conjunto de transações para 2022, que é carregado em uma tabela denominada "Transactions".
Um carregamento anterior com uma variável adicional, “previous_quarter”, que determina se as transações ocorreram no trimestre anterior a 15 de maio de 2022.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
previous_quarter
Tabela de resultados
date
previous quarter
2/19/2022
-1
3/7/2022
-1
3/30/2022
-1
4/5/2022
0
4/16/2022
0
5/1/2022
0
5/7/2022
0
5/22/2022
0
6/15/2022
0
6/26/2022
0
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
A função avalia se as transações ocorreram no primeiro trimestre do ano usando -1 como argumento period_no na função inmonths(). 15 de maio é base_date e cai no segundo trimestre do ano (abril-junho).
Portanto, qualquer transação que ocorra entre janeiro e março retornará um resultado booleano de TRUE.
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:
Um conjunto de dados contendo um conjunto de transações para 2022, que é carregado em uma tabela denominada "Transactions".
Um carregamento anterior com uma variável adicional, “in_months”, que determina quais transações ocorreram no mesmo trimestre de 15 de maio de 2022.
Neste exemplo, a política organizacional é que março seja 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
in_months
Tabela de resultados
date
in_months
2/19/2022
0
3/7/2022
-1
3/30/2022
-1
4/5/2022
-1
4/16/2022
-1
5/1/2022
-1
5/7/2022
-1
5/22/2022
-1
6/15/2022
0
6/26/2022
0
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Usando 3 como argumento first_month_of_year na função inmonths(), a função começa o ano em 1º de março. A função inmonths() então divide o ano em trimestres: Mar-May, Jun-Aug, Sep-Nov, Dec-Feb. Portanto, 15 de maio cai no primeiro trimestre do ano (março-maio).
Qualquer transação que ocorra nesses meses retornará um resultado booleano de TRUE.
Exemplo 4: Exemplo de objeto de gráfico
Visão geral
São usados o mesmo conjunto de dados e cenário do primeiro exemplo.
No entanto, neste exemplo, o conjunto de dados permanece inalterado e é carregado no aplicativo. O cálculo que determina se as transações ocorreram no mesmo trimestre de 15 de maio de 2022 é criado como uma medida em um gráfico no aplicativo.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:
date
Para calcular se as transações ocorreram no mesmo trimestre de 15 de maio, crie a seguinte medida:
=inmonths(3,date,'05/15/2022', 0)
Tabela de resultados
date
=inmonths(3,date,'05/15/2022', 0)
2/19/2022
0
3/7/2022
0
3/30/2022
0
4/5/2022
-1
4/16/2022
-1
5/1/2022
-1
5/7/2022
-1
5/22/2022
-1
6/15/2022
-1
6/26/2022
-1
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
O campo “in_months” é criado no gráfico usando a função inmonths(). O primeiro argumento fornecido é 3, que divide o ano em segmentos trimestrais. O segundo argumento identifica qual campo está sendo avaliado, o campo de data neste exemplo. O terceiro argumento é uma data codificada para 15 de maio, que é base_date, e period_no de 0 é o argumento final.
Maio cai no segundo trimestre do ano. Portanto, qualquer transação que ocorra entre 1º de abril e 30 de junho retornará um resultado 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”.
A tabela contém os seguintes campos:
product ID
product type
manufacture date
cost price
O usuário final deseja um gráfico que mostre, por tipo de produto, o custo dos produtos fabricados no primeiro segmento de 2021. O usuário gostaria de poder definir o comprimento desse segmento.
A função inmonths() usa a entrada do usuário como argumento para definir o tamanho do segmento inicial do ano. A função transmite a data de fabricação de cada um dos produtos como o segundo argumento da função inmonths(). Ao usar 1º de janeiro como terceiro argumento na função inmonths(), os produtos com datas de fabricação que caem no segmento de abertura do ano retornarão um valor booleano de TRUE e, portanto, a função sum adicionará os custos desses produtos.
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!