# monthend – função de script e gráfico

Esta função retorna um valor correspondente ao carimbo de data/hora do último milissegundo do último dia do mês que contém `date`. O formato de saída padrão será o `DateFormat` definido no script.

Sintaxe:

MonthEnd(date[, period\_no])

Em outras palavras, a função `monthend()` determina em qual mês a data cai. Em seguida, ela retorna um carimbo de data/hora, em formato de data, para o último milissegundo daquele mês.

Diagrama da função `monthend`.

Diagrama da função `monthend`.

Diagrama da função `monthend`monthend. ![Diagrama mostrando como a função de fim de mês pode ser usada para identificar o carimbo de data/hora mais recente de um mês escolhido.](https://help.qlik.com/pt-BR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-diagram1.png)

Quando usar

A função `monthend()` é usada como parte de uma expressão quando você deseja que o cálculo use a fração do mês que ainda não ocorreu. Por exemplo, se você quiser calcular o total de juros ainda não acumulados durante o mês.

Tipo de dados de retorno: dual

Argumentos

| Argumento | Descrição |
| --- | --- |
| date | A data ou o carimbo de data/hora a ser avaliado. |
| period\_no | period\_no é um inteiro, no qual, se 0 ou omitido, indica o mês que contém date. Valores negativos em period\_no indicam meses precedentes e valores positivos indicam meses sucessivos. |

## 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 |
| --- | --- |
| `monthend('02/19/2012')` | Retorna 02/29/2012 23:59:59. |
| `monthend('02/19/2001', -1)` | Retorna 01/31/2001 23:59:59. |

## Exemplo 1: Exemplo básico

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthend.htm)

#### Script de carregamento e resultados

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".``

* Um campo de data na `variável` de sistema DateFormat, no formato (`MM/DD/YYYY`).

* Um comando de carregamento anterior que contém:

  * A função `monthend()` que é definida como o campo “`end_of_month`”.

  * A função `timestamp` que é definida como o campo “`end_of_month_timestamp`”.

Script de carregamento

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
    Load 
    *, 
    monthend(date) as end_of_month, 
    timestamp(monthend(date)) as end_of_month_timestamp 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,1/7/2022,17.17 
8189,1/19/2022,37.23 
8190,2/28/2022,88.27 
8191,2/5/2022,57.42 
8192,3/16/2022,53.80 
8193,4/1/2022,82.06 
8194,5/7/2022,40.39 
8195,5/16/2022,87.21 
8196,6/15/2022,95.93 
8197,6/26/2022,45.89 
8198,7/9/2022,36.23 
8199,7/22/2022,25.66 
8200,7/23/2022,82.77 
8201,7/27/2022,69.98 
8202,8/2/2022,76.11 
8203,8/8/2022,25.12 
8204,8/19/2022,46.23 
8205,9/26/2022,84.21 
8206,10/14/2022,96.24 
8207,10/29/2022,67.67 
]; 
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `id`
* `date`
* `end_of_month`
* `end_of_month_timestamp`

Tabela de resultados

| id | data | end\_of\_month | end\_of\_month\_timestamp |
| --- | --- | --- | --- |
| 8188 | 1/7/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8189 | 1/19/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8190 | 2/5/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8191 | 2/28/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8192 | 3/16/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8193 | 4/1/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8194 | 5/7/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8195 | 5/16/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8196 | 6/15/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8197 | 6/26/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8198 | 7/9/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8199 | 7/22/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8200 | 7/23/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8201 | 7/27/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8202 | 8/2/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8203 | 8/8/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8204 | 8/19/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8205 | 9/26/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |
| 8206 | 10/14/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
| 8207 | 10/29/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |

O campo "`end_of_month`" é criado na instrução de carregamento anterior usando a função `monthend()` e transmitindo o campo de data como o argumento da função.

A função `monthend()` identifica em qual mês o valor da data cai, retornando um carimbo de data/hora para o último milissegundo desse mês.

Diagrama da função `monthend` com março como o mês selecionado.

Diagrama da função `monthend` com março como o mês selecionado.

Diagrama da função `monthend`monthend com março como o mês selecionado.![Diagrama mostrando como a função de fim de mês pode ser usada para identificar o carimbo de data/hora mais recente de um mês escolhido.](https://help.qlik.com/pt-BR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-example1-diagram.png)

A transação 8192 ocorreu em 16 de março. A função `monthend()` retorna o último milissegundo desse mês, que é 31 de março às 11:59:59 PM.

## Exemplo 2: period\_no

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthend.htm)

#### Script de carregamento e resultados

Visão geral

São usados o mesmo conjunto de dados e cenário do primeiro exemplo.

Neste exemplo, a tarefa é criar um campo, “`previous_month_end`”, que retorna o carimbo de data/hora do final do mês antes da transação.

Script de carregamento

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    monthend(date,-1) as previous_month_end, 
    timestamp(monthend(date,-1)) as previous_month_end_timestamp 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,1/7/2022,17.17 
8189,1/19/2022,37.23 
8190,2/28/2022,88.27 
8191,2/5/2022,57.42 
8192,3/16/2022,53.80 
8193,4/1/2022,82.06 
8194,5/7/2022,40.39 
8195,5/16/2022,87.21 
8196,6/15/2022,95.93 
8197,6/26/2022,45.89 
8198,7/9/2022,36.23 
8199,7/22/2022,25.66 
8200,7/23/2022,82.77
8201,7/27/2022,69.98 
8202,8/2/2022,76.11 
8203,8/8/2022,25.12 
8204,8/19/2022,46.23 
8205,9/26/2022,84.21 
8206,10/14/2022,96.24 
8207,10/29/2022,67.67 
]; 
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `id`
* `date`
* `previous_month_end`
* `previous_month_end_timestamp`

Tabela de resultados

| id | data | previous\_month\_end | previous\_month\_end\_timestamp |
| --- | --- | --- | --- |
| 8188 | 1/7/2022 | 12/31/2021 | 12/31/2021 11:59:59 PM |
| 8189 | 1/19/2022 | 12/31/2021 | 12/31/2021 11:59:59 PM |
| 8190 | 2/5/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8191 | 2/28/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8192 | 3/16/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8193 | 4/1/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8194 | 5/7/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8195 | 5/16/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8196 | 6/15/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8197 | 6/26/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8198 | 7/9/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8199 | 7/22/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8200 | 7/23/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8201 | 7/27/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8202 | 8/2/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8203 | 8/8/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8204 | 8/19/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8205 | 9/26/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8206 | 10/14/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |
| 8207 | 10/29/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |

A função `monthend()`primeiro identifica o mês em que as transações ocorrem como um `period_no` de `-1` usado como argumento offset. Em seguida, ela muda para um mês antes e identifica o último milissegundo desse mês.

Diagrama da função `monthend` com a variável period\_no.

Diagrama da função `monthend` com a variável period\_no.

Diagrama da função `monthend`monthend com a variável period\_no.![Diagrama mostrando como a função monthend pode ser usada com a variável period_no para identificar o último carimbo de data/hora no mês anterior ao definido na função monthend().](https://help.qlik.com/pt-BR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-example2-diagram.png)

A transação 8192 ocorreu em 16 de março. A função `monthend()` identifica que o mês anterior à realização da transação foi em fevereiro. Em seguida, ela retorna o último milissegundo desse mês, 28 de fevereiro às 11:59:59 PM.

## Exemplo 3: Exemplo de gráfico

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthend.htm)

#### Script de carregamento e expressão de gráfico

Visão geral

São usados o mesmo conjunto de dados e cenário do primeiro exemplo.

Neste exemplo, o conjunto de dados permanece inalterado e carregado no aplicativo. A tarefa é criar um cálculo que retorne um timestamp do final do mês em que ocorreram as transações como medida em um gráfico do aplicativo.

Script de carregamento

```
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,1/7/2022,17.17 
8189,1/19/2022,37.23 
8190,2/28/2022,88.27 
8191,2/5/2022,57.42 
8192,3/16/2022,53.80 
8193,4/1/2022,82.06 
8194,5/7/2022,40.39 
8195,5/16/2022,87.21 
8196,6/15/2022,95.93 
8197,6/26/2022,45.89 
8198,7/9/2022,36.23 
8199,7/22/2022,25.66 
8200,7/23/2022,82.77 
8201,7/27/2022,69.98 
8202,8/2/2022,76.11 
8203,8/8/2022,25.12 
8204,8/19/2022,46.23 
8205,9/26/2022,84.21 
8206,10/14/2022,96.24 
8207,10/29/2022,67.67 
]; 
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `date`

* `id`

Para calcular a data de término do mês em que uma transação ocorre, crie as seguintes medidas:

* `=monthend(date)`
* `=timestamp(monthend(date))`

Tabela de resultados

| id | data | =monthend(date) | =timestamp(monthend(date)) |
| --- | --- | --- | --- |
| 8188 | 10/14/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
| 8189 | 10/29/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
| 8190 | 9/26/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |
| 8191 | 8/2/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8192 | 8/8/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8193 | 8/19/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8194 | 7/9/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8195 | 7/22/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8196 | 7/23/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8197 | 7/27/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8198 | 6/15/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8199 | 6/26/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8200 | 5/7/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8201 | 5/16/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8202 | 4/1/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8203 | 3/16/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8204 | 2/5/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8205 | 2/28/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8206 | 1/7/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8207 | 1/19/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |

A medida "`end_of_month`" é criada no objeto de gráfico usando a função `monthend()` e transmitindo o campo de data como o argumento da função.

A função `monthend()` identifica em qual mês o valor da data cai e retorna um carimbo de data/hora para o último milissegundo desse mês.

Diagrama da função `monthend` com a variável period\_no.

Diagrama da função `monthend` com a variável period\_no.

Diagrama da função `monthend`monthend com a variável period\_no.![](https://help.qlik.com/pt-BR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-example3-diagram.png)

A transação 8192 ocorreu em 16 de março. A função `monthend()` retorna o último milissegundo desse mês, que é 31 de março às 11:59:59 PM.

## Exemplo 4: Cenário

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthend.htm)

#### Script de carregamento e resultados

Visão geral

Neste exemplo, um conjunto de dados é carregado em uma tabela chamada "`Employee_Expenses`". A tabela contém os seguintes campos:

* IDs de funcionários

* Nomes de funcionários

* As reivindicações de despesas médias diárias de cada funcionário.

O usuário final deseja um gráfico que mostra, por ID de funcionário e nome do funcionário, a declaração de despesas estimada para o restante do mês.

Script de carregamento

```
Employee_Expenses: 
Load 
* 
Inline  
[ 
employee_id,employee_name,avg_daily_claim 
182,Mark, $15 
183,Deryck, $12.5  
184,Dexter, $12.5 
185,Sydney,$27 
186,Agatha,$18 
]; 
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `employee_id`
* `employee_name`

Para calcular os juros acumulados, crie esta medida:

`=floor(monthend(today(1),0)-today(1))*avg_daily_claim`

Nota informativaEssa medida é dinâmica e produzirá resultados de tabela diferentes, dependendo da data em que você carrega os dados.

Defina o Formato numérico da medida como Dinheiro.

Tabela de resultados

| employee\_id | employee\_name | =floor(monthend(today(1),0)-today(1))\*avg\_daily\_claim |
| --- | --- | --- |
| 182 | Mark | $30.00 |
| 183 | Deryck | $25.00 |
| 184 | Dexter | $25.00 |
| 185 | Sydney | $54.00 |
| 186 | Agatha | $36.00 |

A função `monthend()` retorna a data de término do mês atual usando a data de hoje como seu único argumento. A expressão retorna o número de dias que restam neste mês, subtraindo a data de hoje da data de término do mês.

Esse valor é então multiplicado pela média de solicitações de despesas diárias por cada funcionário para calcular o valor estimado das solicitações que cada funcionário deve fazer no mês restante.