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

A função lastworkdate retorna a primeira data de término para obter no\_of\_workdays (de segunda a sexta-feira), se começar em start\_date, levando em consideração qualquer holiday opcionalmente listado. start\_date e holiday devem ser datas ou carimbos de data/hora válidos.

Sintaxe:

lastworkdate(start\_date, no\_of\_workdays {, holiday})

Tipo de dados de retorno: inteiro

Um calendário que mostra como a função `lastworkdate()` é usada

Um calendário que mostra como a função `lastworkdate()` é usada

Um calendário que mostra como a função `lastworkdate()`lastworkdate() é usada ![Diagrama que mostra um calendário de um mês.](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-lastworkdate-diagram1.png)

Limitações

Não há nenhum método para modificar a função `lastworkdate()` para regiões ou cenários que envolvam algo diferente de uma semana de trabalho que começa na segunda-feira e termina na sexta-feira.

O parâmetro de feriado deve ser uma constante de cadeia de caracteres. Ele não aceita uma expressão.

Quando usar

A função `lastworkdate()` é comumente usada como parte de uma expressão quando o usuário deseja calcular a data de término proposta de um projeto ou tarefa, com base em quando o projeto começa e nos feriados que ocorrerão nesse período.

## 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.

Argumentos

| Argumento | Descrição |
| --- | --- |
| start\_date | A data inicial para avaliar. |
| no\_of\_workdays | Número de dias úteis para alcançar. |
| holiday | Períodos de feriados a serem excluídos dos dias de trabalho. Um feriado é declarado como uma data constante de string. Você pode especificar várias datas de feriados, separadas por vírgulas.<br><br>Exemplo: `  '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014' ` |

## Exemplo 1: Exemplo básico

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lastworkdate.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 guia.

O script de carregamento contém:

* Um conjunto de dados contendo IDs de projetos, datas de início do projeto e o esforço estimado, em dias, necessário para os projetos. O conjunto de dados é carregado em uma tabela denominada "`Projects`".

* Um carregamento anterior que contém a função `lastworkdate()` que é definida como o campo "`end_date`" e identifica quando cada projeto está programado para terminar.

Script de carregamento

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

Projects: 
    Load 
       *, 
       LastWorkDate(start_date,effort) as end_date 
       ; 
Load 
id, 
start_date, 
effort 
Inline  
[	 
id,start_date,effort 
1,01/01/2022,14 
2,02/10/2022,17 
3,05/17/2022,5 
4,06/01/2022,12 
5,08/10/2022,26 
]; 
```

Resultados

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

* `id`
* `start_date`
* `effort`
* `end_date`

Tabela de resultados

| id | start\_date | effort | end\_date |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 14 | 01/20/2022 |
| 2 | 02/10/2022 | 17 | 03/04/2022 |
| 3 | 05/17/2022 | 5 | 05/23/2022 |
| 4 | 06/01/2022 | 12 | 06/16/2022 |
| 5 | 08/10/2022 | 26 | 09/14/2022 |

Como não há feriados programados, a função adiciona o número definido de dias úteis, de segunda a sexta-feira, à data de início para encontrar a data de término mais próxima possível.

O calendário a seguir mostra as datas de início e término do projeto 3, com os dias úteis destacados em verde.

Um calendário que mostra as datas de início e término do projeto 3

Um calendário que mostra as datas de início e término do projeto 3

Um calendário que mostra as datas de início e término do projeto 3 ![Diagrama que mostra a data de início do projeto 3 como 17 de maio e a última data de trabalho como 23 de maio, totalizando cinco dias úteis.](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-lastworkdate-example1-diagram.png)

## Exemplo 2: Feriado único

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lastworkdate.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 guia.

O script de carregamento contém:

* Um conjunto de dados contendo IDs de projetos, datas de início do projeto e o esforço estimado, em dias, necessário para os projetos. O conjunto de dados é carregado em uma tabela denominada "`Projects`".

* Um carregamento anterior que contém a função `lastworkdate()` que é definida como o campo `end_date` e identifica quando cada projeto está programado para terminar.

No entanto, há um feriado agendado para 18 de maio de 2022. A função `lastworkdate()` na carga anterior inclui o feriado em seu terceiro argumento para identificar quando cada projeto está programado para terminar.

Script de carregamento

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

Projects: 
    Load 
       *, 
       LastWorkDate(start_date,effort, '05/18/2022') as end_date 
       ; 
Load 
id, 
start_date, 
effort 
Inline  
[	 
id,start_date,effort 
1,01/01/2022,14 
2,02/10/2022,17 
3,05/17/2022,5 
4,06/01/2022,12 
5,08/10/2022,26 
]; 
```

Resultados

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

* `id`
* `start_date`
* `effort`
* `end_date`

Tabela de resultados

| id | start\_date | effort | end\_date |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 14 | 01/20/2022 |
| 2 | 02/10/2022 | 17 | 03/04/2022 |
| 3 | 05/17/2022 | 5 | 05/24/2022 |
| 4 | 06/01/2022 | 12 | 06/16/2022 |
| 5 | 08/10/2022 | 26 | 09/14/2022 |

O único feriado agendado é inserido como o terceiro argumento na função `lastworkdate()`. Como resultado, a data de término do projeto 3 é deslocada para um dia depois porque o feriado ocorre em um dos dias úteis antes da data de término.

O calendário a seguir mostra as datas de início e término do projeto 3 e mostra que o feriado altera a data de término do projeto em um dia.

Um calendário que mostra a data de início e término do projeto 3 com um feriado em 18 de maio

Um calendário que mostra a data de início e término do projeto 3 com um feriado em 18 de maio

Um calendário que mostra a data de início e término do projeto 3 com um feriado em 18 de maio ![Diagrama que mostra a data de início do projeto 3 como 17 de maio com um feriado em 18 de maio.](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-lastworkdate-example2-diagram.png)

## Exemplo 3: Vários feriados

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lastworkdate.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 guia.

O script de carregamento contém:

* Um conjunto de dados contendo IDs de projetos, datas de início do projeto e o esforço estimado, em dias, necessário para os projetos. O conjunto de dados é carregado em uma tabela denominada "`Projects`".

* Um carregamento anterior que contém a função `lastworkdate()` que é definida como o campo `end_date` e identifica quando cada projeto está programado para terminar.

No entanto, há três feriados programados para 19, 20, 21 e 22 de maio. A função `lastworkdate()` no carregamento anterior inclui cada um dos feriados em seu terceiro argumento para identificar quando cada projeto está programado para terminar.

Script de carregamento

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

Projects: 
    Load 
       *, 
       LastWorkDate(start_date,effort, '05/19/2022','05/20/2022','05/21/2022','05/22/2022') as end_date 
       ; 
Load 
id, 
start_date, 
effort 
Inline  
[	 
id,start_date,effort 
1,01/01/2022,14 
2,02/10/2022,17 
3,05/17/2022,5 
4,06/01/2022,12 
5,08/10/2022,26 
]; 
```

Resultados

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

* `id`
* `start_date`
* `effort`
* `end_date`

Tabela de resultados

| id | start\_date | effort | end\_date |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 14 | 01/20/2022 |
| 2 | 02/10/2022 | 17 | 03/04/2022 |
| 3 | 05/17/2022 | 5 | 05/25/2022 |
| 4 | 06/01/2022 | 12 | 06/16/2022 |
| 5 | 08/10/2022 | 26 | 09/14/2022 |

Os quatro feriados são inseridos como uma lista de argumentos na função `lastworkdate()` após a data de início e o número de dias úteis.

O calendário a seguir mostra as datas de início e término do projeto 3 e mostra que os feriados alteram a data de término do projeto em três dias.

Um calendário que mostra a data de início e término do projeto 3 com feriados de 19 a 22 de maio

Um calendário que mostra a data de início e término do projeto 3 com feriados de 19 a 22 de maio

Um calendário que mostra a data de início e término do projeto 3 com feriados de 19 a 22 de maio ![Diagrama que mostra a data de início do projeto 3 como 17 de maio e a última data de trabalho como 25 de maio, com quatro feriados extras atrasando a última data de trabalho em três dias e com dois dos feriados caindo no sábado e domingo.](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-lastworkdate-example3-diagram.png)

## Exemplo 4: Feriado único (gráfico)

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lastworkdate.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.

No entanto, neste exemplo, o conjunto de dados permanece inalterado e carregado no aplicativo. O campo `end_date` é calculado como uma medida em um gráfico.

Script de carregamento

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

Projects: 
Load 
id, 
start_date, 
effort 
Inline  
[	 
id,start_date,effort 
1,01/01/2022,14 
2,02/10/2022,17 
3,05/17/2022,5 
4,06/01/2022,12 
5,08/10/2022,26 
]; 
```

Resultados

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

* `id`
* `start_date`
* `effort`

Para calcular end\_date, crie a seguinte medida:

* `=LastWorkDate(start_date,effort,'05/18/2022')`

Tabela de resultados

| id | start\_date | effort | =LastWorkDate(start\_date,effort,'05/18/2022') |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 14 | 01/20/2022 |
| 2 | 02/10/2022 | 17 | 03/04/2022 |
| 3 | 05/17/2022 | 5 | 05/23/2022 |
| 4 | 06/01/2022 | 12 | 06/16/2022 |
| 5 | 08/10/2022 | 26 | 09/14/2022 |

O único feriado programado é inserido como uma medida no gráfico. Como resultado, a data de término do projeto 3 é deslocada para um dia depois porque o feriado ocorre em um dos dias úteis antes da data de término.

O calendário a seguir mostra as datas de início e término do projeto 3 e mostra que o feriado altera a data de término do projeto em um dia.

Um calendário que mostra a data de início e término do projeto 3 com um feriado em 18 de maio

Um calendário que mostra a data de início e término do projeto 3 com um feriado em 18 de maio

Um calendário que mostra a data de início e término do projeto 3 com um feriado em 18 de maio ![Diagrama que mostra a data de início do projeto 3 como 17 de maio com um feriado em 18 de maio.](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-lastworkdate-example2-diagram.png)