# inmonthstodate Función de script y de gráfico

Esta función determina si una fecha-hora se encuentra dentro de la parte de un período mensual, bimensual, trimestral, cuatrimestral o semestral hasta e incluyendo el último milisegundo de `base_date`. También es posible hallar si la fecha-hora cae dentro de un periodo anterior o posterior.

InMonths (n\_months, timestamp, base\_date, period\_no[, first\_month\_of\_year ])

Tipo de datos que devuelve: Booleano

Diagrama de la función `inmonthstodate`.

Diagrama de la función `inmonthstodate`.

Diagrama de la función `inmonthstodate`inmonthstodate. ![Diagram showing how inmonthstodate function can be used to identify if a timstamp falls within or outside of a set segment of time.](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-diagram1.png)

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). |
| timestamp | La fecha que desea comparar con base\_date. |
| base\_date | La fecha que se utiliza para evaluar el periodo. |
| 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. |

En la función `inmonthstodate()`, la `base_date` actúa como el punto final del segmento de año en particular del que forma parte.

Por ejemplo, si el año se dividió en segmentos cuatrimestrales y la `base_date` era el 15 de mayo, cualquier marca de tiempo entre el comienzo de enero y el final de abril devolvería un resultado booleano de FALSE. Las fechas entre el 1 y el 15 de mayo devolverían TRUE. El resto del año devolvería FALSE.

Diagrama del rango de resultados booleanos de la función `inmonthstodate`.

Diagrama del rango de resultados booleanos de la función `inmonthstodate`.

Diagrama del rango de resultados booleanos de la función `inmonthstodate`inmonthstodate. ![Diagram showing the range of Boolean results of the inmonthstodate function.](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-diagram2.png)

Los siguientes segmentos del año están disponibles en la función `n_month` como argumentos.

`n_month`n\_month argumentos

| Período | Número de meses |
| --- | --- |
| mes | 1 |
| bimestre | 2 |
| trimestre | 3 |
| cuatrimestre | 4 |
| semestre | 6 |

Cuándo se utiliza

La función `inmonthstodate()` devuelve un resultado booleano. Normalmente, este tipo de función se utiliza como condición en una `if expression`. Mediante el uso de la función `inmonthstodate()`, puede seleccionar el período que desea evaluar. Por ejemplo, proporcionar una variable de entrada que permita al usuario identificar los productos fabricados en el mes, trimestre o semestre de un período, hasta una fecha determinada.

## 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 aplicaciones 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 Qlik Sense interfaz de usuario. Qlik Sense se mostrará en el mismo idioma que el navegador que esté utilizando.

Ejemplos de funciones

| Ejemplo | Resultado |
| --- | --- |
| `inmonthstodate(4, '01/25/2013', '04/25/2013',<br>0)` | Devuelve True, porque el valor de timestamp, 01/25/2013, cae dentro del período de cuatro meses, del 01/01/2013 hasta el final de 04/25/2013, en el que se encuentra el valor de base\_date, 04/25/2013. |
| `inmonthstodate(4, '04/26/2013', '04/25/2006',<br>0)` | Devuelve False, porque 04/26/2013 está fuera del mismo período que el ejemplo anterior. |
| `inmonthstodate(4, '09/25/2005', '02/01/2006',<br>-1)` | Devuelve True, porque el valor de period\_no, -1, desplaza el período de búsqueda un período de cuatro meses atrás (el valor de n-months), lo que hace que el período de búsqueda sea del 01/09/2005 al 02/01/2006. |
| `inmonthstodate(4, '04/25/2006', '06/01/2006',<br>0, 3)` | Devuelve True, porque el valor de first\_month\_of\_year está configurado en 3, lo que hace que el período de búsqueda sea del 03/01/2006 al 06/01/2006, en lugar del 05/01/2006 al 06/01/2006. |

## Ejemplo 1: sin argumentos adicionales

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthstodate.htm)

#### Script de carga y resultados

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

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`’.

* Un campo de fecha en el formato `DateFormat` de la variable del sistema (`(MM/DD/YYYY)`).

* Una instrucción load anterior que contiene lo siguiente:

  * La función `inmonthstodate()` que está configurada como el campo "`in_months_to_date`". Esto determina qué transacciones se realizaron en el trimestre hasta el 15 de mayo de 2022.

Script de carga

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthstodate(3,date,'05/15/2022', 0) as in_months_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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`
* `in_months_to_date`

Tabla de resultados

| date | in\_months\_to\_date |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

El campo ‘`in_months_to_date`’ se crea en la instrucción load anterior utilizando la función `inmonthstodate()`.

El primer argumento proporcionado es `3`, que divide el año en segmentos trimestrales. El segundo argumento identifica qué campo se está evaluando. El tercer argumento es una fecha codificada del 15 de mayo, que es el `base_date` que define el límite final del segmento. Un `period_no` de `0` es el argumento final.

Diagrama de la función `inmonthstodate`, sin argumentos adicionales.

Diagrama de la función `inmonthstodate`, sin argumentos adicionales.

Diagrama de la función `inmonthstodate`inmonthstodate, sin argumentos adicionales. ![Diagram showing the range of transactions that are identified as TRUE by the inmonthstodate function.](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-diagram2.png)

Cualquier transacción que ocurra entre el 1 de abril y el 15 de mayo devuelve un resultado booleano de TRUE. Las fechas de transacciones fuera de ese período devuelven FALSE.

## Ejemplo 2: period\_no

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthstodate.htm)

#### Script de carga y resultados

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_qtr_to_date`", que determine si las transacciones se realizaron un trimestre antes del 15 de mayo.

Script de carga

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthstodate(3,date,'05/15/2022', -1) as previous_qtr_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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_qtr_to_date`

Tabla de resultados

| date | previous\_qtr\_to\_date |
| --- | --- |
| 1/7/2022 | -1 |
| 1/19/2022 | -1 |
| 2/5/2022 | -1 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | 0 |
| 5/7/2022 | 0 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Utilizando `-1` como el argumento de `period_no` en la función `inmonthstodate()`, la función desplaza los límites del segmento del año de comparación en un trimestre.

El 15 de mayo cae en el segundo trimestre del año y por lo tanto el segmento inicialmente equivale al período entre el 1 de abril y el 15 de mayo. El argumento de `period_no` desplaza este segmento en tres meses negativos. Los límites de fecha pasan a ser del 1 de enero al 15 de febrero.

Diagrama de la función `inmonthstodate` con un period\_no de -1.

Diagrama de la función `inmonthstodate` con un period\_no de -1.

Diagrama de la función `inmonthstodate`inmonthstodate con un period\_no de -1. ![Diagram showing the range of transactions with the period_no argument set to -1.](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-example2-diagram.png)

Por lo tanto, cualquier transacción que ocurra entre el 1 de enero y el 15 de febrero devolverá un resultado booleano de TRUE.

## Ejemplo 3: first\_month\_of\_year

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthstodate.htm)

#### Script de carga y resultados

Vista general

Se utilizan el mismo conjunto de datos y el mismo escenario que en el primer ejemplo.

En este ejemplo, la política de la organización es que marzo sea el primer mes del año fiscal.

Cree un campo, "`in_months_to_date`", que determine qué transacciones se realizaron en el mismo trimestre hasta el 15 de mayo de 2022.

Script de carga

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthstodate(3,date,'05/15/2022', 0,3) as in_months_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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`

* `in_months_to_date`

Tabla de resultados

| date | previous\_qtr\_to\_date |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | -1 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Utilizando `3` como el argumento `first_month_of_year` en la función `inmonthstodate()`, la función comienza el año el 1 de marzo y luego divide el año en trimestres según el primer argumento proporcionado. Por lo tanto, los segmentos del cuatrimestre son:

* Mar-May

* Jun-Ago

* Sep-Nov

* Dic-Feb

La `base_date` del 15 de mayo segmenta a continuación el trimestre de marzo a mayo estableciendo su límite final en el 15 de mayo.

Diagrama de la función `inmonthstodate` con marzo fijado como primer mes del año.

Diagrama de la función `inmonthstodate` con marzo fijado como primer mes del año.

Diagrama de la función `inmonthstodate`inmonthstodate con marzo fijado como primer mes del año. ![Diagram showing the range of transactions with the first month of the year set as March.](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-example3-diagram.png)

Por lo tanto, cualquier transacción que ocurra entre el 1 de marzo y el 15 de mayo arrojará un resultado booleano de TRUE, y las transacciones que tengan fechas fuera de estos límites arrojarán un valor de FALSE.

## Ejemplo 4: ejemplo de gráfico

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthstodate.htm)

#### Script de carga y expresión de gráfico

Vista general

Se utilizan el mismo conjunto de datos y el mismo escenario que en el primer ejemplo.

En este ejemplo, el conjunto de datos está sin modificar y cargado en la aplicación. La tarea es crear un cálculo que determine si las transacciones se realizaron en el mismo trimestre que el 15 de mayo como una medida en un gráfico de la aplicación.

Script de carga

```
SET DateFormat='MM/DD/YYYY'; 
						 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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`

Para calcular si las transacciones se realizaron en el mismo trimestre que el 15 de mayo, cree la siguiente medida:

`=inmonthstodate(3,date,'05/15/2022', 0)`

Tabla de resultados

| date | =inmonthstodate(3,date,'05/15/2022', 0) |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

La medida `‘in_months_to_date` se crea en el gráfico usando la función `inmonthstodate()`.

El primer argumento proporcionado es `3`, que divide el año en segmentos trimestrales. El segundo argumento identifica qué campo se está evaluando. El tercer argumento es una fecha codificada del 15 de mayo, que es la `base_date` que define el límite final del segmento. Un `period_no` de `0` es el argumento final.

Diagrama de la función `inmonthstodate` con segmentos trimestrales.

Diagrama de la función `inmonthstodate` con segmentos trimestrales.

Diagrama de la función `inmonthstodate`inmonthstodate con segmentos trimestrales. ![Diagram showing the range of transactions that return a TRUE boolean value.](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-example4-diagram.png)

Cualquier transacción que ocurra entre el 1 de abril y el 15 de mayo devolverá un resultado booleano de TRUE. Las fechas de transacción fuera de ese segmento devolverán FALSE.

## Ejemplo 5: Escenario

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthstodate.htm)

#### Script de carga y resultados

Vista general

En este ejemplo, un conjunto de datos se carga en una tabla denominada "Sales". La tabla contiene los siguientes campos:

* ID de producto

* Tipo de producto

* Fecha de venta

* Precio de venta

Al usuario final le gustaría tener un gráfico que muestre, por tipo de producto, las ventas de productos que se produjeron en el período anterior al 24 de diciembre de 2022. Al usuario le gustaría poder definir la duración de ese período.

Script de carga

```
SET vPeriod = 1; 

Products: 
Load 
* 
Inline  
[ 
product_id,product_type,sales_date,sales_price 
8188,product A,'9/19/2022',37.23 
8189,product D,'10/27/2022',17.17 
8190,product C,'10/30/2022',88.27 
8191,product B,'10/31/2022',57.42 
8192,product D,'11/16/2022',53.80 
8193,product D,'11/28/2022',82.06 
8194,product A,'12/2/2022',40.39 
8195,product B,'12/5/2022',87.21 
8196,product C,'12/15/2022',95.93 
8197,product B,'12/16/2022',45.89 
8198,product C,'12/19/2022',36.23 
8199,product D,'12/22/2022',25.66 
8200,product D,'12/23/2022',82.77 
8201,product A,'12/24/2022',69.98 
8202,product A,'12/24/2022',76.11 
8203,product B,'12/26/2022',25.12 
8204,product B,'12/27/2022',46.23 
8205,product B,'12/27/2022',84.21 
8206,product C,'12/28/2022',96.24 
8207,product D,'12/29/2022',67.67 
]; 
```

Resultados

Cargue los datos y abra una hoja.

Al comienzo del script de carga se crea una variable, vPeriod, que se vinculará al control de entrada de la variable.

Haga lo siguiente:

1. En el panel de activos, haga clic en Gráficos.

2. En Objetos de panel, arrastre un Entrada de variable a la hoja.

3. Escriba un título para el gráfico.

4. En Variable, seleccione vPeriod como nombre y configure el objeto para que se muestre como un Menú desplegable.

5. En Valores, haga clic en Valores dinámicos. Introduzca lo siguiente:

   ```
   ='1~month|2~bi-month|3~quarter|4~tertial|6~half-year'.
   ```

6. Agregue una nueva tabla a la hoja.

7. En el panel de propiedades, en Datos, añada product\_type como dimensión.

8. Agregue la siguiente expresión como medida:

   =sum(if(inmonthstodate($(vPeriod),sales\_date,makedate(2022,12,24),0),sales\_price,0))

9. Establezca el Formato numérico de la medida en Moneda.

Tabla de resultados

| product\_type | =sum(if(inmonthstodate($(vPeriod),sales\_date,makedate(2022,12,24),0),sales\_price,0)) |
| --- | --- |
| producto A | $186.48 |
| producto B | $190.52 |
| producto C | $220.43 |
| producto D | $261.46 |

La función inmonthstodate() utiliza la entrada del usuario como argumento para definir el tamaño del segmento inicial del año.

La función introduce la fecha de venta de cada uno de los productos como segundo argumento de la función inmonthstodate(). Al usar el 24 de diciembre como tercer argumento de la función inmonthstodate(), los productos con fechas de venta que ocurren en el período definido hasta el 24 de diciembre inclusive, devuelven un valor booleano de TRUE. La función sum suma las ventas de estos productos.