quarterstart - función de script y de gráfico
Esta función devuelve un valor correspondiente a una marca de tiempo con el primer milisegundo del trimestre que contiene a date. El formato de salida predeterminado será el DateFormat establecido en el script.
Sintaxis:
QuarterStart(date[, period_no[, first_month_of_year]])
Tipo de datos que devuelve: dual
La función quarterstart() determina en qué trimestre cae la fecha date. Luego devuelve una marca de tiempo, en formato de fecha, con el primer milisegundo del primer mes de ese trimestre.
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 trimestre que contiene a date. Los valores negativos en period_no indican trimestres precedentes y los valores positivos indican trimestres 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. |
Cuándo se utiliza
La función quarterstart() se suele utilizar como parte de una expresión cuando el usuario desea que el cálculo utilice la fracción del trimestre que ya ha transcurrido. Por ejemplo, se puede utilizar para calcular el interés que se ha acumulado en un trimestre hasta la fecha.
Ejemplo | Resultado |
---|---|
quarterstart('10/29/2005') | Devuelve 10/01/2005. |
quarterstart('10/29/2005', -1 ) | Devuelve 07/01/2005. |
quarterstart('10/29/2005', 0, 3) | Devuelve 09/01/2005. |
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.
La configuración regional predeterminada en las aps se basa en la configuración del sistema regional de la computadora o servidor donde esté instalado Qlik Sense. Si el servidor de Qlik Sense al que está accediendo está configurado en Suecia, el editor de carga de datos utilizará la configuración regional sueca para las fechas, la hora y la moneda. Estos ajustes de formato regional no están relacionados con el idioma mostrado en la interfaz de usuario de Qlik Sense. Qlik Sense se mostrará en el mismo idioma que esté utilizando su navegador.
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 de 2022, que se carga en una tabla llamada Transactions.
-
El campo de fecha proporcionado en el formato de la variable del sistema DateFormat (MM/DD/AAAA).
-
La creación de un campo, start_of_quarter, que devuelve una marca de tiempo con el inicio del trimestre en el que se realizaron las transacciones.
Script de carga
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
quarterstart(date) as start_of_quarter,
timestamp(quarterstart(date)) as start_of_quarter_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
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
-
date
-
start_of_quarter
-
start_of_quarter_timestamp
date | start_of_quarter | start_of_quarter_timestamp |
---|---|---|
1/7/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
1/19/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
2/5/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
2/28/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
3/16/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
4/1/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
5/7/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
5/16/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
6/15/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
6/26/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
7/9/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
7/22/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
7/23/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
7/27/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
8/2/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
8/8/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
8/19/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
9/26/2022 | 07/01/2022 | 7/1/2021 12:00:00 AM |
10/14/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
10/29/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
El campo start_of_quarter se crea en la instrucción load anterior utilizando la función quarterstart() e introduciendo el campo de fecha como argumento de la función. La función uarterstart() identifica inicialmente en qué trimestre cae el valor de la fecha. Luego devuelve una marca de tiempo con el primer milisegundo de ese trimestre.
La transacción 8203 tuvo lugar el 8 de agosto. La función quarterstart() identifica que la transacción tuvo lugar en el tercer trimestre y devuelve el primer milisegundo de ese trimestre, que es el 1 de julio a las 12:00:00 a. m.
Ejemplo 2: period_no
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:
-
Se utilizan el mismo conjunto de datos y escenario que en el primer ejemplo.
-
La creación de un campo, previous_quarter_start, que devuelve la marca de tiempo de inicio del trimestre anterior a la transacción.
Script de carga
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
quarterstart(date,-1) as previous_quarter_start,
timestamp(quarterstart(date,-1)) as previous_quarter_start_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
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
-
date
-
previous_quarter_start
-
previous_quarter_start_timestamp
date | previous_quarter_start | previous_quarter_start_timestamp |
---|---|---|
1/7/2022 | 10/01/2021 | 10/1/2021 12:00:00 AM |
1/19/2022 | 10/01/2021 | 10/1/2021 12:00:00 AM |
2/5/2022 | 10/01/2021 | 10/1/2021 12:00:00 AM |
2/28/2022 | 10/01/2021 | 10/1/2021 12:00:00 AM |
3/16/2022 | 10/01/2021 | 10/1/2021 12:00:00 AM |
4/1/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
5/7/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
5/16/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
6/15/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
6/26/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
7/9/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
7/22/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
7/23/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
7/27/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
8/2/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
8/8/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
8/19/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
9/26/2022 | 04/01/2022 | 4/1/2021 12:00:00 AM |
10/14/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
10/29/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
En este caso, debido a que se usó un period_no de -1 como argumento de desplazamiento en la función quarterstart(), la función primero identifica el trimestre en el que se realizan las transacciones. Luego cambia a un trimestre antes e identifica el primer milisegundo de ese trimestre.
La transacción 8203 tuvo lugar el 8 de agosto. La función quarterstart() identifica que el trimestre anterior a la transacción fue entre el 1 de abril y el 30 de junio. Luego devuelve el primer milisegundo de ese trimestre, el 1 de abril a las 12:00:00 a. m.
Ejemplo 3: first_month_of_year
Vista general
Abra el editor de carga de datos y agregue el script de carga a continuación en una nueva pestaña.
El script de carga contiene el mismo conjunto de datos y escenario que el primer ejemplo. Sin embargo, en este ejemplo, necesitamos establecer el 1 de marzo como el comienzo del año fiscal.
Script de carga
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
quarterstart(date,0,3) as start_of_quarter,
timestamp(quarterstart(date,0,3)) as start_of_quarter_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
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
-
date
-
start_of_quarter
-
start_of_quarter_timestamp
date | start_of_quarter | start_of_quarter_timestamp |
---|---|---|
1/7/2022 | 12/01/2021 | 12/1/2021 12:00:00 AM |
1/19/2022 | 12/01/2021 | 12/1/2021 12:00:00 AM |
2/5/2022 | 12/01/2021 | 12/1/2021 12:00:00 AM |
2/28/2022 | 12/01/2021 | 12/1/2021 12:00:00 AM |
3/16/2022 | 03/01/2022 | 3/1/2022 12:00:00 AM |
4/1/2022 | 03/01/2022 | 3/1/2022 12:00:00 AM |
5/7/2022 | 03/01/2022 | 3/1/2022 12:00:00 AM |
5/16/2022 | 03/01/2022 | 3/1/2022 12:00:00 AM |
6/15/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
6/26/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
7/9/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
7/22/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
7/23/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
7/27/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
8/2/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
8/8/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
8/19/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
9/26/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
10/14/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
10/29/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
En este caso, como el argumento first_month_of_year de 3 se utiliza en la función quarterstart(), el inicio del año se desplaza del 1 de enero al 1 de marzo.
La transacción 8203 tuvo lugar el 8 de agosto. Debido a que el comienzo del año es el 1 de marzo, los trimestres del año ocurren entre marzo y mayo, junio y agosto, septiembre y noviembre, y diciembre y febrero. La función quarterstart() identifica que la transacción tuvo lugar en el trimestre entre el comienzo de junio y de agosto y devuelve el primer milisegundo de ese trimestre, que es el 1 de junio a las 12:00:00 a. m.
Ejemplo 4: ejemplo de objeto gráfico
Vista general
Abra el editor de carga de datos y agregue el script de carga a continuación en una nueva pestaña.
El script de carga contiene el mismo conjunto de datos y escenario que 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 una marca de tiempo del final del trimestre en que se realizaron las transacciones se crea como una medida en un objeto gráfico de la aplicación.
Script de carga
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
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión: date.
Agregue las siguientes medidas:
-
=quarterstart(date)
-
=timestamp(quarterstart(date))
date | =quarterstart(date) | =timestamp(quarterstart(date)) |
---|---|---|
10/14/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
10/29/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
7/9/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
7/22/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
7/23/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
7/27/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
8/2/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
8/8/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
8/19/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
9/26/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
4/1/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
5/7/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
5/16/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
6/15/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
6/26/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
1/7/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
1/19/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
2/5/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
2/28/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
3/16/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
La medida start_of_quarter se crea en el objeto gráfico utilizando la función quarterstart() e introduciendo el campo date como argumento de la función.
La función quarterstart() identifica en qué trimestre cae el valor de la fecha y devuelve una marca de tiempo con el primer milisegundo de ese trimestre.
La transacción 8203 tuvo lugar el 8 de agosto. La función quarterstart() identifica que la transacción tuvo lugar en el tercer trimestre y devuelve el primer milisegundo de ese trimestre. El valor que devuelve es el 1 de julio a las 12:00:00
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 que contiene un conjunto de saldos de préstamos, que se carga en una tabla llamada Loans.
-
Datos que consisten en ID de préstamos, el saldo al comienzo del trimestre y la tasa de interés simple cobrada en cada préstamo por año.
Al usuario final le gustaría tener un objeto gráfico que muestre, por ID de préstamo, el interés actual que se ha acumulado en cada préstamo en el trimestre hasta la fecha.
Script de carga
Loans:
Load
*
Inline
[
loan_id,start_balance,rate
8188,$10000.00,0.024
8189,$15000.00,0.057
8190,$17500.00,0.024
8191,$21000.00,0.034
8192,$90000.00,0.084
];
Resultados
Haga lo siguiente:
-
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
-
loan_id
-
start_balance
-
-
A continuación, cree una medida para calcular el interés acumulado:
=start_balance*(rate*(today(1)-quarterstart(today(1)))/365)
-
Establezca el Formato numérico de la medida en Moneda.
loan_id | start_balance | =start_balance*(rate*(today(1)-quarterstart(today(1)))/365) |
---|---|---|
8188 | $10000.00 | $15.07 |
8189 | $15000.00 | $128.84 |
8190 | $17500.00 | $63.29 |
8191 | $21000.00 | $107.59 |
8192 | $90000.00 | $1139.18 |
La función quarterstart(), utilizando la fecha de hoy como único argumento, devuelve la fecha de inicio del año actual. Al restar ese resultado de la fecha actual, la expresión devuelve el número de días que han transcurrido en lo que va de trimestre.
Luego, este valor se multiplica por la tasa de interés y se divide por 365 para obtener la tasa de interés efectiva en que se ha incurrido durante este período. Luego, el resultado se multiplica por el saldo inicial del préstamo para devolver el interés que se ha acumulado en lo que va del trimestre.