Esta función devuelve un valor correspondiente a la marca de tiempo del primer milisegundo del periodo mensual, bimensual, trimestral, cuatrimestral o semestral que contiene una fecha base. También es posible hallar la marca de tiempo de un periodo anterior o posterior.El formato de salida predefinido es el DateFormat definido en el script.
La función monthsstart() divide el año en segmentos basándose en el argumento n_months proporcionado. Luego evalúa en qué segmento cae cada fecha proporcionada y devuelve el primer milisegundo de ese segmento, en formato de fecha. La función también brinda la capacidad de devolver la marca de tiempo de inicio de los segmentos anteriores o posteriores, así como redefinir cuál habrá de ser el primer mes del año.
Los siguientes segmentos del año están disponibles en la función n_month como argumentos:
Posibles argumentos de n_month
Períodos
Número de meses
mes
1
bimestre
2
trimestre
3
cuatrimestre
4
semestre
6
Argumentos
Argumento
Descripción
n_months
El número de meses que define el periodo. Un entero o expresión que devuelve un entero que debe ser uno de los siguientes: 1 (equivalente a la función inmonth() ), 2 (bimestral), 3 (equivalente a la función inquarter()), 4 (cuatrimestral) o 6 (medio año).
date
La fecha o marca de tiempo para evaluar.
period_no
El período se puede desplazar mediante period_no, un entero o una expresión que devuelve un entero, donde el valor 0 indica el período que contiene a base_date. Los valores negativos en period_no indican períodos precedentes y los valores positivos indican períodos 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 monthsstart() se suele utilizar como parte de una expresión cuando el usuario desea que el cálculo utilice la fracción de un período que aún no ha transcurrido. Esto podría usarse, por ejemplo, para tener una variable de entrada que permita al usuario calcular el interés total que se ha acumulado hasta el momento en el mes, trimestre o semestre.
Ejemplos de funciones
Ejemplo
Resultado
monthsstart(4, '10/19/2013')
Devuelve 09/01/2013.
monthsstart(4, '10/19/2013, -1)
Devuelve 05/01/2013.
monthsstart(4, '10/19/2013', 0, 2
)
Devuelve 10/01/2013, porque el inicio del año se convierte en el mes 2.
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, bi_monthly_start, que agrupa las transacciones en segmentos bimensuales y devuelve la marca de tiempo inicial del segmento para cada transacción.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
date
bi_monthly_start
bi_monthly_start_timestamp
Tabla de resultados
date
bi_monthly_start
bi_monthly_start_timestamp
2/19/2022
01/01/2022
1/1/2022 12:00:00 AM
3/7/2022
03/01/2022
3/1/2022 12:00:00 AM
3/30/2022
03/01/2022
3/1/2022 12:00:00 AM
4/5/2022
03/01/2022
3/1/2022 12:00:00 AM
4/16/2022
03/01/2022
3/1/2022 12:00:00 AM
5/1/2022
05/01/2022
5/1/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/22/2022
05/01/2022
5/1/2022 12:00:00 AM
6/15/2022
05/01/2022
5/1/2022 12:00:00 AM
6/26/2022
05/01/2022
5/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
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
El campo bi_monthly_start se crea en la instrucción de carga anterior mediante el uso de la función monthsstart(). El primer argumento proporcionado es 2, dividiendo el año en segmentos bimensuales. El segundo argumento identifica qué campo se está evaluando.
La transacción 8195 tuvo lugar el 22 de mayo. La función monthsstart() inicialmente divide el año en segmentos bimensuales. La transacción 8195 cae en el segmento entre el 1 de mayo y el 30 de junio. Por lo tanto, la función devuelve el primer milisegundo de este segmento, 1 de mayo de 2022 a las 00:00.
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.
Creación de un campo, prev_bi_monthly_start, que devuelve el primer milisegundo del segmento bimensual anterior a la transacción.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
date
prev_bi_monthly_start
prev_bi_monthly_start_timestamp
Tabla de resultados
date
prev_bi_monthly_start
prev_bi_monthly_start_timestamp
2/19/2022
11/01/2021
11/1/2021 12:00:00 AM
3/7/2022
01/01/2022
1/1/2022 12:00:00 AM
3/30/2022
01/01/2022
1/1/2022 12:00:00 AM
4/5/2022
01/01/2022
1/1/2022 12:00:00 AM
4/16/2022
01/01/2022
1/1/2022 12:00:00 AM
5/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/22/2022
03/01/2022
3/1/2022 12:00:00 AM
6/15/2022
03/01/2022
3/1/2022 12:00:00 AM
6/26/2022
03/01/2022
3/1/2022 12:00:00 AM
7/9/2022
05/01/2022
5/1/2022 12:00:00 AM
7/22/2022
05/01/2022
5/1/2022 12:00:00 AM
7/23/2022
05/01/2022
5/1/2022 12:00:00 AM
7/27/2022
05/01/2022
5/1/2022 12:00:00 AM
8/2/2022
05/01/2022
5/1/2022 12:00:00 AM
8/8/2022
05/01/2022
5/1/2022 12:00:00 AM
8/19/2022
05/01/2022
5/1/2022 12:00:00 AM
9/26/2022
07/01/2022
7/1/2022 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
Usando -1 como argumento de period_no en la función monthsstart(), después de dividir inicialmente un año en segmentos bimensuales, la función devuelve el primer milisegundo del segmento bimensual anterior al momento en que se realizó una transacción.
La transacción 8195 ocurre en el segmento entre el mayo y junio. Por lo tanto, el segmento bimensual anterior fue entre el 1 de marzo y el 30 de abril, por lo que la función devuelve el primer milisegundo de este segmento, el 1 de marzo de 2022 a las 00:00.
Ejemplo 3: first_month_of_year
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, bi_monthly_start, que agrupa las transacciones en segmentos bimensuales y devuelve la marca de tiempo inicial del conjunto de cada transacción.
Sin embargo, en este ejemplo, también debemos establecer abril como el primer mes del año fiscal.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
date
bi_monthly_start
bi_monthly_start_timestamp
Tabla de resultados
date
bi_monthly_start
bi_monthly_start_timestamp
2/19/2022
02/01/2022
2/1/2022 12:00:00 AM
3/7/2022
02/01/2022
2/1/2022 12:00:00 AM
3/30/2022
02/01/2022
2/1/2022 12:00:00 AM
4/5/2022
04/01/2022
4/1/2022 12:00:00 AM
4/16/2022
04/01/2022
4/1/2022 12:00:00 AM
5/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/22/2022
04/01/2022
4/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
08/01/2022
8/1/2022 12:00:00 AM
8/8/2022
08/01/2022
8/1/2022 12:00:00 AM
8/19/2022
08/01/2022
8/1/2022 12:00:00 AM
9/26/2022
08/01/2022
8/1/2022 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
Utilizando 4 como el argumento de first_month_of_year en la función monthsstart(), la función comienza el año el 1 de abril y luego divide el año en segmentos bimensuales. Abr-May,Jun-Jul,Ago-Sep,Oct-Nov,Dic-Ene,Feb-Mar.
La transacción 8195 tuvo lugar el 22 de mayo y cae en el segmento entre el 1 de abril y el 31 de mayo. Por lo tanto, la función devuelve el primer milisegundo de este segmento, 1 de abril de 2022 a las 00:00.
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 agrupa las transacciones en segmentos bimensuales y devuelve la marca de tiempo de inicio del conjunto para cada transacción se crea como una medida en un objeto gráfico de la aplicación.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión: date.
Cree las siguientes medidas:
=monthsstart(2,date)
=timestamp(monthsstart(2,date))
Estos cálculos recuperarán el momento de inicio del segmento bimensual en el que tuvo lugar cada transacción.
Tabla de resultados
date
=monthsstart(2,date)
=timestamp(monthsstart(2,date))
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
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
5/1/2022
05/01/2022
5/1/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/22/2022
05/01/2022
5/1/2022 12:00:00 AM
6/15/2022
05/01/2022
5/1/2022 12:00:00 AM
6/26/2022
05/01/2022
5/1/2022 12:00:00 AM
3/7/2022
03/01/2022
3/1/2022 12:00:00 AM
3/30/2022
03/01/2022
3/1/2022 12:00:00 AM
4/5/2022
03/01/2022
3/1/2022 12:00:00 AM
4/16/2022
03/01/2022
3/1/2022 12:00:00 AM
2/19/2022
01/01/2022
1/1/2021 12:00:00 AM
La transacción 8195 tuvo lugar el 22 de mayo. La función monthsstart() inicialmente divide el año en segmentos bimensuales. La transacción 8195 cae en el segmento entre el 1 de mayo y el 30 de junio. Por lo tanto, la función devuelve el primer milisegundo de este segmento, 1 de mayo de 2022 a las 12:00 a. m.
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.
Los datos consisten en varios ID de préstamos, el saldo al comienzo del mes 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 durante el período de su elección. El año fiscal comienza en enero.
Al comienzo del script de carga, se ha creado una variable (vPeriod) que se vinculará al control de entrada de la variable. A continuación, configure la variable como un objeto personalizado en la hoja.
Haga lo siguiente:
En el panel de activos, haga clic en Objetos personalizados.
Seleccione Qlik Dashboard bundle y cree un objeto Entrada de variables.
Escriba un título para el objeto gráfico.
En Variable, seleccione vPeriod como Nombre y configure el objeto para que se muestre como un Menú desplegable.
En Valores, configure el objeto para que utilice valores dinámicos. Escriba lo siguiente: ='1~month|2~bi-month|3~quarter|4~tertial|6~half-year'
A continuación, cree la tabla de resultados.
Haga lo siguiente:
Cree una nueva tabla. Agregue los siguientes campos como dimensiones:
employee_id
employee_name
Cree una medida para calcular el interés acumulado:
Establezca el Formato numérico de la medida en Moneda. Haga clic en Edición finalizada. Ahora puede modificar los datos que se muestran en la tabla ajustando el segmento de tiempo en el objeto variable.
Así es como se verá la tabla de resultados con la opción del período month seleccionada:
La función monthsstart() utiliza lo que ha introducido el usuario como primer argumento y la fecha de hoy como segundo argumento y devuelve la fecha de inicio del período elegido por el usuario. 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 este período.
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. A continuación el resultado se multiplica por el saldo inicial del préstamo para devolver el interés que se ha acumulado en lo que va de este período.
¿Esta página le ha sido útil?
No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.