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

Esta función devuelve un valor de visualización que representa el rango de los meses del período (con formato de acuerdo con la variable de script MonthNames), así como el año. El valor numérico subyacente corresponde a una marca de tiempo del primer milisegundo del periodo mensual, bimensual, trimestral, cuatrimestral o semestral que contiene una fecha base.

Sintaxis:

MonthsName(n\_months, date[, period\_no[, first\_month\_of\_year]])

Tipo de datos que devuelve: dual

Diagrama de la función monthsname

Diagrama de la función monthsname

Diagrama de la función monthsname ![Diagrama a modo de ejemplo que muestra el rango de meses que devuelve la función monthsname, dada una fecha de entrada específica.](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthsname-general.png)

La función `monthsname()` divide el año en segmentos basándose en el argumento `n_months` proporcionado. A continuación, evalúa el segmento al que pertenece cada uno de los `date` proporcionados y devuelve los nombres de los meses de inicio y finalización de ese segmento, así como el año. La función también brinda la capacidad de devolver estos límites de segmentos anteriores o posteriores, así como redefinir cuál 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`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 utilizar monthsname

La función `monthsname()` es útil cuando desea proporcionar al usuario la funcionalidad de comparar agregaciones por un período de su elección. Por ejemplo, podría proporcionar una variable de entrada para que el usuario pueda ver las ventas totales de productos por mes, trimestre o semestre.

Estas dimensiones se pueden crear en el script de carga agregando la función como un campo en una tabla de Calendario maestro o, alternativamente, creando la dimensión directamente en un gráfico como una dimensión calculada.

Ejemplos de funciones

| Ejemplo | Resultado |
| --- | --- |
| `monthsname(4, '10/19/2013')` | Devuelve "Sep-Dec 2013". En este y en los demás ejemplos, la sentencia SET Monthnames está configurada en Jan;Feb;Mar, y así sucesivamente. |
| `monthsname(4, '10/19/2013', -1)` | Devuelve "May-Aug 2013". |
| ` monthsname(4, '10/19/2013', 0, 2)  ` | Devuelve "Oct-Jan 2014", ya que el año se especifica para comenzar en el mes 2. Por lo tanto, el período de cuatro meses termina el primer mes del año siguiente. |

## 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](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

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 aplicaciones que cree. Para más información, vea [Establecer sus configuraciones regionales preferidas para crear apps y scripts en Analítica de Qlik Cloud](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

## Ejemplo 1: ejemplo básico

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthsname.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`".

* 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_range`, que agrupa las transacciones en segmentos bimensuales y devuelve los nombres de límite de ese segmento para cada transacción.

Script de carga

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        monthsname(2,date) as bi_monthly_range
        ;
Load
*
Inline
[
id,date,amount
8188,2/19/2022,37.23
8189,3/7/2022,17.17
8190,3/30/2022,88.27
8191,4/5/2022,57.42
8192,4/16/2022,53.80
8193,5/1/2022,82.06
8194,5/7/2022,40.39
8195,5/22/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`

* `bi_monthly_range`

Tabla de resultados

| date | bi\_monthly\_range |
| --- | --- |
| 2/19/2022 | Ene-Feb 2022 |
| 3/7/2022 | Mar-Abr 2022 |
| 3/30/2022 | Mar-Abr 2022 |
| 4/5/2022 | Mar-Abr 2022 |
| 4/16/2022 | Mar-Abr 2022 |
| 5/1/2022 | May-Jun 2022 |
| 5/7/2022 | May-Jun 2022 |
| 5/22/2022 | May-Jun 2022 |
| 6/15/2022 | May-Jun 2022 |
| 6/26/2022 | May-Jun 2022 |
| 7/9/2022 | Jul-Ago 2022 |
| 7/22/2022 | Jul-Ago 2022 |
| 7/23/2022 | Jul-Ago 2022 |
| 7/27/2022 | Jul-Ago 2022 |
| 8/2/2022 | Jul-Ago 2022 |
| 8/8/2022 | Jul-Ago 2022 |
| 8/19/2022 | Jul-Ago 2022 |
| 9/26/2022 | Sep-Oct 2022 |
| 10/14/2022 | Sep-Oct 2022 |
| 10/29/2022 | Sep-Oct 2022 |

El campo "`bi_monthly_range`" se crea en la instrucción load anterior, mediante el uso de la función `monthsname()`. El primer argumento proporcionado es 2, dividiendo el año en segmentos bimensuales. El segundo argumento identifica qué campo se está evaluando.

Diagrama de la función monthsname, ejemplo básico

Diagrama de la función monthsname, ejemplo básico

Diagrama de la función monthsname, ejemplo básico ![Diagrama que muestra los resultados de usar la función monthsname para determinar el rango de meses en el que se realizó una transacción.](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthsname-basic-example.png)

La transacción 8195 tuvo lugar el 22 de mayo. La función `monthsname()` 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 estos meses en el formato de la variable de sistema `MonthNames`, así como el año, mayo-junio de 2022.

## Ejemplo 2: period\_no

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthsname.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:

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

* La creación de un campo, `prev_bi_monthly_range`, que agrupa las transacciones en segmentos bimensuales y devuelve los nombres de los límites del segmento anterior para cada transacción.

Agregue su otro texto aquí, según sea necesario, con listas, etc.

Script de carga

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        MonthsName(2,date,-1) as prev_bi_monthly_range
        ;
Load
*
Inline
[
id,date,amount
8188,2/19/2022,37.23
8189,3/7/2022,17.17
8190,3/30/2022,88.27
8191,4/5/2022,57.42
8192,4/16/2022,53.80
8193,5/1/2022,82.06
8194,5/7/2022,40.39
8195,5/22/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`

* `prev_bi_monthly_range`

Tabla de resultados

| date | prev\_bi\_monthly\_range |
| --- | --- |
| 2/19/2022 | Nov-Dic 2021 |
| 3/7/2022 | Ene-Feb 2022 |
| 3/30/2022 | Ene-Feb 2022 |
| 4/5/2022 | Ene-Feb 2022 |
| 4/16/2022 | Ene-Feb 2022 |
| 5/1/2022 | Mar-Abr 2022 |
| 5/7/2022 | Mar-Abr 2022 |
| 5/22/2022 | Mar-Abr 2022 |
| 6/15/2022 | Mar-Abr 2022 |
| 6/26/2022 | Mar-Abr 2022 |
| 7/9/2022 | May-Jun 2022 |
| 7/22/2022 | May-Jun 2022 |
| 7/23/2022 | May-Jun 2022 |
| 7/27/2022 | May-Jun 2022 |
| 8/2/2022 | May-Jun 2022 |
| 8/8/2022 | May-Jun 2022 |
| 8/19/2022 | May-Jun 2022 |
| 9/26/2022 | Jul-Ago 2022 |
| 10/14/2022 | Jul-Ago 2022 |
| 10/29/2022 | Jul-Ago 2022 |

En este ejemplo, -1 se usa como el argumento `period_no` de la función `monthsname()`. Tras dividir inicialmente un año en segmentos bimensuales, la función devuelve a continuación los límites del segmento anterior a cuando se realiza una transacción.

Diagrama de la función monthsname, ejemplo de period\_no

Diagrama de la función monthsname, ejemplo de period\_no

Diagrama de la función monthsname, ejemplo de period\_no ![Diagrama que muestra los resultados de usar la función monthsname para determinar el rango de meses en el que se realizó una transacción.](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthsname-example-period-no.png)

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 Mar-Abr 2022.

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthsname.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:

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

* La creación de un campo diferente, `bi_monthly_range`, que agrupa las transacciones en segmentos bimensuales y devuelve los límites de segmento de cada transacción.

Sin embargo, en este ejemplo, también debemos establecer abril como el primer mes del año fiscal.

Script de carga

```
SET DateFormat='MM/DD/YYYY';
						
Transactions:
    Load
        *,
        MonthsName(2,date,0,4) as bi_monthly_range
        ;
Load
*
Inline
[
id,date,amount
8188,2/19/2022,37.23
8189,3/7/2022,17.17
8190,3/30/2022,88.27
8191,4/5/2022,57.42
8192,4/16/2022,53.80
8193,5/1/2022,82.06
8194,5/7/2022,40.39
8195,5/22/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`

* `bi_monthly_range`

Tabla de resultados

| date | bi\_monthly\_range |
| --- | --- |
| 2/19/2022 | Feb-Mar 2021 |
| 3/7/2022 | Feb-Mar 2021 |
| 3/30/2022 | Feb-Mar 2021 |
| 4/5/2022 | Abr-May 2022 |
| 4/16/2022 | Abr-May 2022 |
| 5/1/2022 | Abr-May 2022 |
| 5/7/2022 | Abr-May 2022 |
| 5/22/2022 | Abr-May 2022 |
| 6/15/2022 | Jun-Jul 2022 |
| 6/26/2022 | Jun-Jul 2022 |
| 7/9/2022 | Jun-Jul 2022 |
| 7/22/2022 | Jun-Jul 2022 |
| 7/23/2022 | Jun-Jul 2022 |
| 7/27/2022 | Jun-Jul 2022 |
| 8/2/2022 | Ago-Sep 2022 |
| 8/8/2022 | Ago-Sep 2022 |
| 8/19/2022 | Ago-Sep 2022 |
| 9/26/2022 | Ago-Sep 2022 |
| 10/14/2022 | Oct-Nov 2022 |
| 10/29/2022 | Oct-Nov 2022 |

Al utilizar 4 como argumento `first_month_of_year` en la función `monthsname()`, la función comienza el año el 1 de abril. A continuación, divide el año en segmentos bimensuales: Abr-May, Jun-Jul, Ago-Sep, Oct-Nov, Dic-Ene, Feb-Mar.

Texto de párrafo para Resultados.

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 abril-mayo de 2022.

Diagrama de la función monthsname, ejemplo de first\_month\_of\_year

Diagrama de la función monthsname, ejemplo de first\_month\_of\_year

Diagrama de la función monthsname, ejemplo de first\_month\_of\_year ![Diagrama que muestra los resultados de usar la función monthsname para determinar el rango de meses en el que se realizó una transacción.](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthsname-example-first-month-of-year.png)

## Ejemplo 4: ejemplo de objeto gráfico

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

#### Script de carga y expresión de 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 inline 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 los límites del segmento para cada transacción se crea como una medida en un objeto gráfico de la aplicación.

Script de carga

```
SET DateFormat='MM/DD/YYYY';

Transactions:
Load
*
Inline
[
id,date,amount
8188,2/19/2022,37.23
8189,3/7/2022,17.17
8190,3/30/2022,88.27
8191,4/5/2022,57.42
8192,4/16/2022,53.80
8193,5/1/2022,82.06
8194,5/7/2022,40.39
8195,5/22/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.

Cree la siguiente medida:

=monthsname(2,date)

Tabla de resultados

| date | =monthsname(2,date) |
| --- | --- |
| 2/19/2022 | Ene-Feb 2022 |
| 3/7/2022 | Mar-Abr 2022 |
| 3/30/2022 | Mar-Abr 2022 |
| 4/5/2022 | Mar-Abr 2022 |
| 4/16/2022 | Mar-Abr 2022 |
| 5/1/2022 | May-Jun 2022 |
| 5/7/2022 | May-Jun 2022 |
| 5/22/2022 | May-Jun 2022 |
| 6/15/2022 | May-Jun 2022 |
| 6/26/2022 | May-Jun 2022 |
| 7/9/2022 | Jul-Ago 2022 |
| 7/22/2022 | Jul-Ago 2022 |
| 7/23/2022 | Jul-Ago 2022 |
| 7/27/2022 | Jul-Ago 2022 |
| 8/2/2022 | Jul-Ago 2022 |
| 8/8/2022 | Jul-Ago 2022 |
| 8/19/2022 | Jul-Ago 2022 |
| 9/26/2022 | Sep-Oct 2022 |
| 10/14/2022 | Sep-Oct 2022 |
| 10/29/2022 | Sep-Oct 2022 |

El campo bi\_monthly\_range se crea como una medida en el objeto gráfico usando la función monthsname(). El primer argumento proporcionado es 2, dividiendo el año en segmentos bimensuales. El segundo argumento identifica qué campo se está evaluando.

Diagrama de la función monthsname, ejemplo de objeto gráfico

Diagrama de la función monthsname, ejemplo de objeto gráfico

Diagrama de la función monthsname, ejemplo de objeto gráfico ![Diagrama que muestra los resultados del uso de la función monthsname con un objeto gráfico.](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthsname-example-chart-object.png)

La transacción 8195 tuvo lugar el 22 de mayo. La función monthsname() 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 estos meses en el formato de la variable de sistema MonthNames, así como el año, mayo-junio de 2022.

## Ejemplo 5: Escenario

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

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

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.

* El campo de fecha proporcionado en el formato de la variable del sistema DateFormat: (MM/DD/AAAA).

Al usuario final le gustaría tener un objeto gráfico que muestre las ventas totales por un período de su elección. Esto podría lograrse incluso cuando esta dimensión no esté disponible en el modelo de datos, utilizando la función monthsname() como una dimensión calculada que se modifica dinámicamente mediante un control de entrada variable.

Script de carga

```
SET vPeriod = 1;
SET DateFormat='MM/DD/YYYY';

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.

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:

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 objeto gráfico.

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

5. En Valores, configure el objeto para que utilice valores dinámicos. Inserte 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:

1. Cree una nueva tabla y agregue la siguiente dimensión calculada:

   =monthsname($(vPeriod),date)

2. Agregue esta medida para calcular el total de ventas:

   =sum(amount)

3. Configure el Formato numérico de la medida en Moneda.Haga clic en Editar hoja para finalizar la edición. 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 tertial seleccionada:

Tabla de resultados

| monthsname($(vPeriod),date) | =sum(amount) |
| --- | --- |
| Ene-Abr 2022 | 253.89 |
| May-ago 2022 | 713.58 |
| Sep-Dic 2022 | 248.12 |