yearend - función de script y de gráfico
Esta función devuelve un valor correspondiente a una marca de tiempo del último milisegundo del último día del año que contiene a date. El formato de salida predeterminado será el DateFormat definido en el script.
Sintaxis:
YearEnd( date[, period_no[, first_month_of_year = 1]])
En otras palabras, la función yearend() determina en qué año cae la fecha. Luego devuelve una marca de tiempo, en formato de fecha, del último milisegundo de ese año. El primer mes del año es, por defecto, enero. No obstante, también puede cambiar cuál será el primer mes del año usando el argumento first_month_of_year en la función yearend().
Cuándo se utiliza
La función yearend() se utiliza como parte de una expresión cuando el usuario desea que el cálculo utilice la fracción del año que aún no ha ocurrido. Por ejemplo, si desea calcular el interés total aún no devengado durante el año.
Tipo de datos que devuelve: dual
Argumento | Descripción |
---|---|
date | La fecha o marca de tiempo para evaluar. |
period_no | period_no es un entero, donde el valor 0 indica el año que contiene a date. Los valores negativos en period_no indican años precedentes y los valores positivos indican años subsiguientes. |
first_month_of_year | Si desea trabajar con años (fiscales) que no comiencen en enero, indique un valor entre 2 y 12 en first_month_of_year. |
Puede utilizar los siguientes valores para establecer el primer mes del año en el argumento first_month_of_year:
Month | Valor |
---|---|
Febrero | 2 |
Marzo | 3 |
Abril | 4 |
May | 5 |
Junio | 6 |
Julio | 7 |
Agosto | 8 |
Septiembre | 9 |
Octubre | 10 |
Noviembre | 11 |
Diciembre | 12 |
Configuraciones regionales
A menos que se especifique algo distinto, los ejemplos de este tema utilizan el siguiente formato de fecha: MM/DD/YYYY. El formato de fecha se especifica en la sentencia SET DateFormat de su script de carga de datos. El formato de fecha predeterminado puede ser diferente en su sistema, debido a su configuración regional y otros factores. Puede cambiar el formato en los ejemplos a continuación para ajustarlo a sus necesidades. O puede cambiar los formatos en su script de carga para que coincidan con estos ejemplos. Para más información, vea Modificar la configuración regional para aplicaciones y scripts.
La configuración regional predeterminada en las aplicaciones se basa en el perfil de usuario. Estos ajustes de formato regional no están relacionados con el idioma mostrado en la interfaz de usuario de Qlik Cloud. Qlik Cloud se mostrará en el mismo idioma que esté utilizando su navegador.
Si es un creador de aplicaciones, puede establecer la región por defecto para las apps que cree. Para más información, vea Establecer sus configuraciones regionales preferidas para crear apps y scripts en Analítica de Qlik Cloud.
Ejemplo | Resultado |
---|---|
yearend('10/19/2001') | Devuelve 12/31/2001 23:59:59. |
yearend('10/19/2001', -1) | Devuelve 12/31/2000 23:59:59. |
yearend('10/19/2001', 0, 4) | Devuelve 03/31/2002 23:59:59. |
Ejemplo 1: sin argumentos adicionales
Vista general
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
-
Un conjunto de datos que contiene un conjunto de transacciones entre 2020 y 2022 se carga en una tabla llamada "Transactions".
-
El campo de fecha se ha proporcionado en el formato (MM/DD/YYYY) de la variable del sistema DateFormat.
-
Una instrucción load precedente que contiene lo siguiente:
-
La función yearend() que está establecida como el campo year_end.
-
La función Timestamp() que está establecida como el campo year_end_timestamp.
-
Script de carga
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
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
-
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 | 12/31/2021 11:59:59 PM |
8197 | 02/03/2021 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8198 | 03/17/2021 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8199 | 04/23/2021 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8200 | 05/04/2021 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8201 | 06/30/2021 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8202 | 07/26/2021 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8203 | 12/27/2021 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8204 | 06/06/2022 | 12/31/2022 | 12/31/2022 11:59:59 PM |
8205 | 07/18/2022 | 12/31/2022 | 12/31/2022 11:59:59 PM |
8206 | 11/14/2022 | 12/31/2022 | 12/31/2022 11:59:59 PM |
8207 | 12/12/2022 | 12/31/2022 | 12/31/2022 11:59:59 PM |
El campo "year_end" se crea en la instrucción load anterior utilizando la función yearend() e introduciendo el campo de fecha como argumento de la función.
La función yearend() identifica inicialmente en qué año cae el valor de la fecha y devuelve una marca de tiempo del último milisegundo de ese año.
La transacción 8199 tuvo lugar el 23 de abril de 2021. La función yearend() devuelve el último milisegundo de ese año, que es el 31 de diciembre a las 23:59:59.
Ejemplo 2: period_no
Vista general
Se utilizan el mismo conjunto de datos y el mismo escenario que en el primer ejemplo.
Sin embargo, en este ejemplo, la tarea es crear un campo, "previous_year_end", que devuelva la marca de tiempo de la fecha de finalización del año anterior al año en que tuvo lugar una transacción.
Script de carga
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
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
-
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 | 12/31/2019 11:59:59 PM |
8189 | 02/26/2020 | 12/31/2019 | 12/31/2019 11:59:59 PM |
8190 | 03/27/2020 | 12/31/2019 | 12/31/2019 11:59:59 PM |
8191 | 04/16/2020 | 12/31/2019 | 12/31/2019 11:59:59 PM |
8192 | 05/21/2020 | 12/31/2019 | 12/31/2019 11:59:59 PM |
8193 | 08/14/2020 | 12/31/2019 | 12/31/2019 11:59:59 PM |
8194 | 10/07/2020 | 12/31/2019 | 12/31/2019 11:59:59 PM |
8195 | 12/05/2020 | 12/31/2019 | 12/31/2019 11:59:59 PM |
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 | 12/31/2021 11:59:59 PM |
8205 | 07/18/2022 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8206 | 11/14/2022 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8207 | 12/12/2022 | 12/31/2021 | 12/31/2021 11:59:59 PM |
Como se usó un period_no de -1 como el argumento de desplazamiento en la función yearend(), la función identifica primero el año en que se realizan las transacciones. Luego busca un año antes e identifica el último milisegundo de ese año.
La transacción 8199 tuvo lugar el 23 de abril de 2021. La función yearend() devuelve el último milisegundo del año anterior, 31 de diciembre de 2020 a las 11:59:59 PM, del campo "previous_year_end".
Ejemplo 3: first_month_of_year
Vista general
Se utilizan el mismo conjunto de datos y el mismo escenario que en el primer ejemplo.
Sin embargo, en este ejemplo, la política de la empresa es que el año comience a partir del 1 de abril.
Script de carga
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
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
-
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 | 3/31/2021 11:59:59 PM |
8192 | 05/21/2020 | 03/31/2021 | 3/31/2021 11:59:59 PM |
8193 | 08/14/2020 | 03/31/2021 | 3/31/2021 11:59:59 PM |
8194 | 10/07/2020 | 03/31/2021 | 3/31/2021 11:59:59 PM |
8195 | 12/05/2020 | 03/31/2021 | 3/31/2021 11:59:59 PM |
8196 | 01/22/2021 | 03/31/2021 | 3/31/2021 11:59:59 PM |
8197 | 02/03/2021 | 03/31/2021 | 3/31/2021 11:59:59 PM |
8198 | 03/17/2021 | 03/31/2021 | 3/31/2021 11:59:59 PM |
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 el argumento first_month_of_year de 4 se utiliza en la función yearend(), establece el primer día del año en el 1 de abril y el último día del año en el 31 de marzo.
La transacción 8199 tuvo lugar el 23 de abril de 2021. Como la función yearend() establece el inicio del año en el 1 de abril, devuelve el 31 de marzo de 2022 como el valor "year_end" de la transacción.
Ejemplo 4: ejemplo de objeto gráfico
Vista general
Se utilizan el mismo conjunto de datos y el mismo escenario que en el primer ejemplo.
Sin embargo, en este ejemplo, el conjunto de datos sin modificar se carga en la aplicación. El cálculo que devuelve la marca de tiempo de la fecha de finalización del año en el que se realizó una transacción se crea como una medida en un objeto gráfico de la aplicación.
Script de carga
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
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
-
id
-
date
Para calcular en qué año tuvo lugar una transacción, cree las siguientes 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 | 12/31/2021 11:59:59 PM |
8197 | 02/03/2021 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8198 | 03/17/2021 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8199 | 04/23/2021 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8200 | 05/04/2021 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8201 | 06/30/2021 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8202 | 07/26/2021 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8203 | 12/27/2021 | 12/31/2021 | 12/31/2021 11:59:59 PM |
8204 | 06/06/2022 | 12/31/2022 | 12/31/2022 11:59:59 PM |
8205 | 07/18/2022 | 12/31/2022 | 12/31/2022 11:59:59 PM |
8206 | 11/14/2022 | 12/31/2022 | 12/31/2022 11:59:59 PM |
8207 | 12/12/2022 | 12/31/2022 | 12/31/2022 11:59:59 PM |
La medida "end_of_year" se crea en el objeto gráfico utilizando la función yearend() e introduciendo el campo de fecha como argumento de la función.
La función yearend() identifica inicialmente en qué año cae el valor de la fecha y devuelve una marca de tiempo del último milisegundo de ese año.
La transacción 8199 tuvo lugar el 23 de abril de 2021. La función yearend() devuelve el último milisegundo de ese año, que es el 31 de diciembre a las 23:59:59.
Ejemplo 5: Escenario
Vista general
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
-
Un conjunto de datos se carga en una tabla denominada "Employee_Expenses". La tabla contiene los siguientes campos:
-
employee IDs
-
employee name
-
reclamaciones de gastos diarios promedio de cada empleado
-
Al usuario final le gustaría tener un objeto gráfico que muestre, por ID y nombre de empleado, las reclamaciones de gastos estimados que aún deben realizarse para el resto del año. El año fiscal comienza en enero.
Script de carga
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
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
-
employee_id
-
employee_name
Para calcular las estimaciones de gastos proyectadas, cree la siguiente medida:
=(yearend(today(1))-today(1))*avg_daily_claim
Establezca el Formato numérico de la medida en Moneda.
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 |
Al utilizar la fecha de hoy como único argumento, la función yearend() devuelve la fecha de finalización del año actual. Luego, al restar la fecha de hoy de la fecha de finalización del año, la expresión devuelve la cantidad de días que quedan en este año.
Luego, este valor se multiplica por la reclamación de gastos diarios promedio de cada empleado para calcular el valor estimado de las reclamaciones que se espera que haga cada empleado en el año restante.