yearend – função de script e gráfico
Esta função retorna um valor correspondente a um carimbo de data/hora com o último milissegundo do último dia do ano que contém date. O formato de saída padrão será o DateFormat definido no script.
Sintaxe:
YearEnd( date[, period_no[, first_month_of_year = 1]])
Em outras palavras, a função yearend() determina em qual ano a data cai. Em seguida, ela retorna um carimbo de data/hora, em formato de data, para o último milissegundo daquele ano. O primeiro mês do ano é, por padrão, janeiro. No entanto, você pode alterar o mês definido como o primeiro usando o argumento first_month_of_year na função yearend().
Quando usar
A função yearend() é usada como parte de uma expressão quando você deseja que o cálculo use a fração do ano que ainda não ocorreu. Por exemplo, se você quiser calcular o total de juros ainda não acumulados durante o ano.
Tipo de dados de retorno: dual
Argumento | Descrição |
---|---|
date | A data ou o carimbo de data/hora a ser avaliado. |
period_no | period_no é um inteiro, em que o valor 0 indica o ano que contém a date. Valores negativos em period_no indicam anos precedentes e valores positivos indicam anos 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:
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.
Exemplo | Resultado |
---|---|
yearend('10/19/2001') | Returns 12/31/2001 23:59:59. |
yearend('10/19/2001', -1) | Returns 12/31/2000 23:59:59. |
yearend('10/19/2001', 0, 4) | Returns 03/31/2002 23:59:59. |
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 entre 2020 e 2022 é carregado em uma tabela chamada "Transactions".
-
O campo de data foi fornecido no formato (MM/DD/YYYY) da variável de sistema DateFormat.
-
Uma instrução de carregamento anterior que contém o seguinte:
-
Função yearend(), definida como o campo year_end.
-
Função Timestamp(), definida como o campo year_end_timestamp.
-
Script de carregamento
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
yearend(date) as year_end,
timestamp(yearend(date)) as year_end_timestamp
;
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/2022,67.67
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
-
id
-
date
-
year_end
-
year_end_timestamp
id | date | year_end | year_end_timestamp |
---|---|---|---|
8188 | 01/13/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8189 | 02/26/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8190 | 03/27/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8191 | 04/16/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8192 | 05/21/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8193 | 08/14/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8194 | 10/07/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8195 | 12/05/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8196 | 01/22/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8197 | 02/03/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8198 | 03/17/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8199 | 04/23/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8200 | 05/04/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8201 | 06/30/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8202 | 07/26/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8203 | 12/27/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8204 | 06/06/2022 | 12/31/2022 | 31/12/2022 23:59:59 |
8205 | 07/18/2022 | 12/31/2022 | 31/12/2022 23:59:59 |
8206 | 11/14/2022 | 12/31/2022 | 31/12/2022 23:59:59 |
8207 | 12/12/2022 | 12/31/2022 | 31/12/2022 23:59:59 |
O campo "year_end" é criado na instrução de carregamento anterior usando a função yearend() e transmitindo o campo de data como argumento da função.
A função yearend() identifica inicialmente em qual ano o valor da data cai e retorna um carimbo de data/hora para o último milissegundo daquele ano.
A transação 8199 ocorreu em 23 de abril de 2021. A função yearend() retorna o último milissegundo daquele ano, que é 31 de dezembro às 23:59:59.
Exemplo 2: period_no
Visão geral
São usados o mesmo conjunto de dados e cenário do primeiro exemplo.
No entanto, neste exemplo, a tarefa é criar um campo, "previous_year_end", que retorna o carimbo de data/hora de término do ano anterior ao ano em que uma transação ocorreu.
Script de carregamento
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
yearend(date,-1) as previous_year_end,
timestamp(yearend(date,-1)) as previous_year_end_timestamp
;
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/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_year_end
-
previous_ year_end_timestamp
id | date | previous_year_end | previous_year_end_timestamp |
---|---|---|---|
8188 | 01/13/2020 | 12/31/2019 | 31/12/2019 23:59:59 |
8189 | 02/26/2020 | 12/31/2019 | 31/12/2019 23:59:59 |
8190 | 03/27/2020 | 12/31/2019 | 31/12/2019 23:59:59 |
8191 | 04/16/2020 | 12/31/2019 | 31/12/2019 23:59:59 |
8192 | 05/21/2020 | 12/31/2019 | 31/12/2019 23:59:59 |
8193 | 08/14/2020 | 12/31/2019 | 31/12/2019 23:59:59 |
8194 | 10/07/2020 | 12/31/2019 | 31/12/2019 23:59:59 |
8195 | 12/05/2020 | 12/31/2019 | 31/12/2019 23:59:59 |
8196 | 01/22/2021 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8197 | 02/03/2021 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8198 | 03/17/2021 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8199 | 04/23/2021 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8200 | 05/04/2021 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8201 | 06/30/2021 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8202 | 07/26/2021 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8203 | 12/27/2021 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8204 | 06/06/2022 | 12/31/2021 | 31/12/2021 23:59:59 |
8205 | 07/18/2022 | 12/31/2021 | 31/12/2021 23:59:59 |
8206 | 11/14/2022 | 12/31/2021 | 31/12/2021 23:59:59 |
8207 | 12/12/2022 | 12/31/2021 | 31/12/2021 23:59:59 |
Como um period_no de -1 foi usado como o argumento de deslocamento na função yearend(), a função primeiro identifica o ano em que as transações ocorrem. Em seguida, ela procura um ano antes e identifica o último milissegundo daquele ano.
A transação 8199 ocorre em 23 de abril de 2021. A função yearend() retorna o último milissegundo do ano anterior, 31 de dezembro de 2020 às 23:59:59, para o campo "previous_year_end".
Exemplo 3: first_month_of_year
Visão geral
São usados o mesmo conjunto de dados e cenário do primeiro exemplo.
No entanto, neste exemplo, a política da empresa é para o ano começar a partir de 1º de abril.
Script de carregamento
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
yearend(date,0,4) as year_end,
timestamp(yearend(date,0,4)) as year_end_timestamp
;
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/2022,67.67
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
-
id
-
date
-
year_end
-
year_end_timestamp
id | date | year_end | year_end_timestamp |
---|---|---|---|
8188 | 01/13/2020 | 03/31/2020 | 3/31/2020 11:59:59 PM |
8189 | 02/26/2020 | 03/31/2020 | 3/31/2020 11:59:59 PM |
8190 | 03/27/2020 | 03/31/2020 | 3/31/2020 11:59:59 PM |
8191 | 04/16/2020 | 03/31/2021 | 31/3/2021 23:59:59 |
8192 | 05/21/2020 | 03/31/2021 | 31/3/2021 23:59:59 |
8193 | 08/14/2020 | 03/31/2021 | 31/3/2021 23:59:59 |
8194 | 10/07/2020 | 03/31/2021 | 31/3/2021 23:59:59 |
8195 | 12/05/2020 | 03/31/2021 | 31/3/2021 23:59:59 |
8196 | 01/22/2021 | 03/31/2021 | 31/3/2021 23:59:59 |
8197 | 02/03/2021 | 03/31/2021 | 31/3/2021 23:59:59 |
8198 | 03/17/2021 | 03/31/2021 | 31/3/2021 23:59:59 |
8199 | 04/23/2021 | 03/31/2022 | 3/31/2022 11:59:59 PM |
8200 | 05/04/2021 | 03/31/2022 | 3/31/2022 11:59:59 PM |
8201 | 06/30/2021 | 03/31/2022 | 3/31/2022 11:59:59 PM |
8202 | 07/26/2021 | 03/31/2022 | 3/31/2022 11:59:59 PM |
8203 | 12/27/2021 | 03/31/2022 | 3/31/2022 11:59:59 PM |
8204 | 06/06/2022 | 03/31/2023 | 3/31/2023 11:59:59 PM |
8205 | 07/18/2022 | 03/31/2023 | 3/31/2023 11:59:59 PM |
8206 | 11/14/2022 | 03/31/2023 | 3/31/2023 11:59:59 PM |
8207 | 12/12/2022 | 03/31/2023 | 3/31/2023 11:59:59 PM |
Como o argumento first_month_of_year de 4 é usado na função yearend(), ele define o primeiro dia do ano como 1º de abril e o último dia do ano como 31 de março.
A transação 8199 ocorre em 23 de abril de 2021. Como a função yearend() define o início do ano como 1º de abril, ela retorna 31 de março de 2022 como o valor "year_end" para a transação.
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 retorna o carimbo de data/hora de término do ano em que uma transação ocorreu é criado como uma medida em um objeto de gráfico do aplicativo.
Script de carregamento
Transactions:
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/2022,67.67
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
-
id
-
date
Para calcular em qual ano uma transação ocorreu, crie as seguintes medidas:
-
=yearend(date)
-
=timestamp(yearend(date))
id | date | =yearend(date) | =timestamp(yearend(date)) |
---|---|---|---|
8188 | 01/13/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8189 | 02/26/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8190 | 03/27/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8191 | 04/16/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8192 | 05/21/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8193 | 08/14/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8194 | 10/07/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8195 | 12/05/2020 | 12/31/2020 | 12/31/2020 11:59:59 PM |
8196 | 01/22/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8197 | 02/03/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8198 | 03/17/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8199 | 04/23/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8200 | 05/04/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8201 | 06/30/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8202 | 07/26/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8203 | 12/27/2021 | 12/31/2021 | 31/12/2021 23:59:59 |
8204 | 06/06/2022 | 12/31/2022 | 31/12/2022 23:59:59 |
8205 | 07/18/2022 | 12/31/2022 | 31/12/2022 23:59:59 |
8206 | 11/14/2022 | 12/31/2022 | 31/12/2022 23:59:59 |
8207 | 12/12/2022 | 12/31/2022 | 31/12/2022 23:59:59 |
A medida "end_of_year" é criada no objeto de gráfico usando a função yearend() e transmitindo o campo de data como argumento da função.
A função yearend() identifica inicialmente em qual ano o valor da data cai, retornando um carimbo de data/hora para o último milissegundo daquele ano.
A transação 8199 ocorre em 23 de abril de 2021. A função yearend() retorna o último milissegundo daquele ano, que é 31 de dezembro às 23:59:59.
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 é carregado em uma tabela chamada "Employee_Expenses". A tabela contém os seguintes campos:
-
IDs de funcionários
-
nome do funcionário
-
reivindicações de despesas médias diárias de cada funcionário
-
O usuário final deseja um objeto de gráfico que mostre, por ID de funcionário e nome de funcionário, as reivindicações de despesas estimadas ainda a serem acumuladas para o restante do ano. O exercício financeiro começa em janeiro.
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 as reivindicações de despesas projetadas, crie a seguinte medida:
=(yearend(today(1))-today(1))*avg_daily_claim
Defina o Formato numérico da medida como Dinheiro.
employee_id | employee_name | =(yearend(today(1))-today(1))*avg_daily_claim |
---|---|---|
182 | Mark | $3240.00 |
183 | Deryck | $2700.00 |
184 | Dexter | $2700.00 |
185 | Sydney | $5832.00 |
186 | Agatha | $3888.00 |
Usando a data de hoje como o único argumento, a função yearend() retorna a data de término do ano atual. Em seguida, subtraindo a data de hoje da data de término do ano, a expressão retorna o número de dias restantes naquele ano.
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 ano restante.