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

Esta función devuelve el año al que pertenece el número de semana según las variables de entorno. El número de semana varía entre 1 y 52 aproximadamente.

Sintaxis:

weekyear(timestamp [, first\_week\_day [, broken\_weeks [, reference\_day]]])

Tipo de datos que devuelve: Entero

Argumentos

| Argumento | Descripción |
| --- | --- |
| timestamp | La fecha o marca de tiempo para evaluar. |
| first\_week\_day | Especifica el día en el que se inicia la semana. Si se omite, se utiliza el valor de la variable FirstWeekDay.<br><br>Los valores posibles de first\_week\_day son 0 para el lunes, 1 para el martes, 2 para el miércoles, 3 para el jueves, 4 para el viernes, 5 para el sábado y 6 para el domingo.<br><br>Para más información sobre la variable del sistema, vea [FirstWeekDay](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm). |
| broken\_weeks | Si no especifica broken\_weeks, el valor de la variable BrokenWeeks se usará para definir si las semanas se rompen o no.<br><br>Para más información sobre la variable del sistema, vea [BrokenWeeks](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/BrokenWeeks.htm) |
| reference\_day | Si no especifica reference\_day, el valor de la variable ReferenceDay se usará para definir qué día de enero debe configurarse como día de referencia para definir la semana 1. De forma predeterminada, las funciones Qlik Sense usan 4 como día de referencia. Esto significa que la semana 1 debe incluir el 4 de enero o, dicho de otro modo, que la semana 1 siempre debe incluir 4 días de enero como mínimo.<br><br>Para más información sobre la variable del sistema, vea [ReferenceDay](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ReferenceDay.htm) |

La función `weekyear()` determina en qué semana de un año cae una fecha. Luego devuelve el año correspondiente a ese número de semana.

Si `BrokenWeeks` está configurado como `0` (false), `weekyear()` devolverá lo mismo que `year()`.

Diagrama del rango de la función `weekyear()`

Diagrama del rango de la función `weekyear()`

Diagrama del rango de la función `weekyear()`weekyear() ![Diagrama que muestra el rango de tiempo que evalúa la función weekyear().](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-diagram1.png)

Sin embargo, si la variable del sistema `BrokenWeeks` está configurada para usar semanas ininterrumpidas, la semana 1 solo debe contener una cierta cantidad de días en enero conforme al valor especificado en la variable del sistema `ReferenceDay`.

Por ejemplo, si se utiliza un valor `ReferenceDay` de `4`, la semana 1 debe incluir al menos cuatro días en enero. Es posible que la semana 1 incluya fechas de diciembre del año anterior o que el número de semana final de un año incluya fechas de enero del año siguiente. En situaciones como esta, la función `weekyear()` devolverá un valor diferente al de la función `year()`.

Diagrama del rango de la función `weekyear()` cuando se usan semanas no interrumpidas

Diagrama del rango de la función `weekyear()` cuando se usan semanas no interrumpidas

Diagrama del rango de la función `weekyear()`weekyear() cuando se usan semanas no interrumpidas ![Diagrama que muestra el funcionamiento de weekyear() con semanas no interrumpidas.](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-diagram2.png)

Cuándo utilizar weekyear

La función `weekyear()` es útil cuando se desea comparar agregaciones por años. Por ejemplo, si desea ver el total de ventas de productos por año. La función `weekyear()` se elige preferentemente por delante de `year()` cuando el usuario desea mantener la coherencia con la variable del sistema `BrokenWeeks` en la aplicación.

## 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).

Ejemplos de funciones

| Ejemplo | Resultado |
| --- | --- |
| `weekyear('12/30/1996',0,0,4)` | devuelve 1997, porque la semana 1 de 1997 empieza el 30/12/1996 |
| `weekyear('01/02/1997',0,0,4)` | Devuelve 1997 |
| `weekyear('12/28/1997',0,0,4)` | Devuelve 1997 |
| `weekyear('12/30/1997',0,0,4)` | Devuelve 1998, porque la semana 1 de 1998 empieza el 29/12/1997 |
| `weekyear('01/02/1999',0,0,4)` | Devuelve 1998, porque la semana 53 de 1998 finaliza el 03/01/1999 |

Temas relacionados

| Tema | Interacción |
| --- | --- |
| [week Función de script y de gráfico](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/week.htm) | Esta función devuelve un entero que representa el número de semana conforme a la ISO 8601 |
| [year Función de script y de gráfico](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/year.htm) | Devuelve un entero que representa el año en que la expresión se interpreta como una fecha según la interpretación numérica estándar. |

## Ejemplo 1: semanas interrumpidas

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekyear.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 la última semana de 2020 y la primera semana de 2021, que se carga en una tabla llamada "`Transactions`".

* La variable `BrokenWeeks` que está establecida en 1.

* Un load precedente que contiene lo siguiente:

  * La función `weekyear()`, configurada como el campo ''`week_year`", que devuelve el año en que se realizaron las transacciones.

  * La función `week()`, configurada como el campo "`week`" que muestra el número de semana de cada fecha de transacción.

Script de carga

```
SET BrokenWeeks=1; 
						
Transactions: 
	Load 
       *, 
       week(date) as week, 
       weekyear(date) as week_year 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `id`
* `date`
* `week`
* `week_year`

Tabla de resultados

| ID | date | semana | week\_year |
| --- | --- | --- | --- |
| 8176 | 12/28/2020 | 53 | 2020 |
| 8177 | 12/29/2020 | 53 | 2020 |
| 8178 | 12/30/2020 | 53 | 2020 |
| 8179 | 12/31/2020 | 53 | 2020 |
| 8180 | 01/01/2021 | 1 | 2021 |
| 8181 | 01/02/2021 | 1 | 2021 |
| 8182 | 01/03/2021 | 2 | 2021 |
| 8183 | 01/04/2021 | 2 | 2021 |
| 8184 | 01/05/2021 | 2 | 2021 |
| 8185 | 01/06/2021 | 2 | 2021 |
| 8186 | 01/07/2021 | 2 | 2021 |

El campo `week_year` se crea en la instrucción load anterior utilizando la función `weekyear()` e introduciendo el campo de fecha como argumento de la función.

La variable del sistema `BrokenWeeks` está configurada en `1` para indicar que la aplicación utiliza semanas interrumpidas. La semana 1 comienza el 1 de enero.

Diagrama del rango de la función `weekyear()` cuando se usan semanas interrumpidas

Diagrama del rango de la función `weekyear()` cuando se usan semanas interrumpidas

Diagrama del rango de la función `weekyear()`weekyear() cuando se usan semanas interrumpidas ![Diagrama que muestra la función weekyear(), esta identifica que la transacción 8181 tuvo lugar en la semana 1 y devuelve el año de esa semana, 2021.](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-examples1_and3-diagram.png)

La transacción 8181 tiene lugar el 2 de enero, que forma parte de la semana 1. Por lo tanto, devuelve un valor de 2021 para el campo "`week_year`".

## Ejemplo 2: semanas no interrumpidas

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekyear.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 la última semana de 2020 y la primera semana de 2021, que se carga en una tabla llamada "`Transactions`".

* La variable `BrokenWeeks` que está establecida en "`0`".

* Un load precedente que contiene lo siguiente:

  * La función `weekyear()`, configurada como el campo ''`week_year`" que devuelve el año en que se realizaron las transacciones.

  * La función `week()`, configurada como el campo "`week`" que muestra el número de semana de cada fecha de transacción.

Sin embargo, en este ejemplo, la política de la empresa es utilizar semanas no interrumpidas.

Script de carga

```
SET BrokenWeeks=0; 
						
Transactions: 
	Load 
       *, 
       week(date) as week, 
       weekyear(date) as week_year 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `id`
* `date`
* `week`
* `week_year`

Tabla de resultados

| ID | date | semana | week\_year |
| --- | --- | --- | --- |
| 8176 | 12/28/2020 | 53 | 2020 |
| 8177 | 12/29/2020 | 53 | 2020 |
| 8178 | 12/30/2020 | 53 | 2020 |
| 8179 | 12/31/2020 | 53 | 2020 |
| 8180 | 01/01/2021 | 53 | 2020 |
| 8181 | 01/02/2021 | 53 | 2020 |
| 8182 | 01/03/2021 | 1 | 2021 |
| 8183 | 01/04/2021 | 1 | 2021 |
| 8184 | 01/05/2021 | 1 | 2021 |
| 8185 | 01/06/2021 | 1 | 2021 |
| 8186 | 01/07/2021 | 1 | 2021 |

La variable del sistema `BrokenWeeks` está configurada en `0` para indicar que la aplicación utiliza semanas no interrumpidas. Por lo tanto, no se requiere que la semana 1 comience el 1 de enero.

La semana 53 de 2020 continúa hasta el final del 2 de enero de 2021; y la semana 1 de 2020 comienza el domingo 3 de enero de 2021.

Diagrama del rango de la función `weekyear()` con semanas no interrumpidas

Diagrama del rango de la función `weekyear()` con semanas no interrumpidas

Diagrama del rango de la función `weekyear()`weekyear() con semanas no interrumpidas ![Diagrama que muestra el funcionamiento de weekyear() con semanas no interrumpidas y que la semana 53 tiene días en 2020 y 2021.](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-example2-diagram.png)

La transacción 8181 tiene lugar el 2 de enero, que forma parte de la semana 1. Por lo tanto, devuelve un valor de 2021 para el campo "`week_year`".

## Ejemplo 3: ejemplo de objeto gráfico

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

Sin embargo, en este ejemplo, el conjunto de datos sin modificar se carga en la aplicación. El cálculo que devuelve el número de semana del año en que se realizaron las transacciones se crea como una medida en un gráfico de la aplicación.

Script de carga

```
SET BrokenWeeks=1; 
						
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `id`
* `date`

Para calcular la semana en que se realiza una transacción, cree la siguiente medida:

* `=week(date)`

Para calcular el año en que se realiza una transacción en función del número de semana, cree la siguiente medida:

* `=weekyear(date)`

Tabla de resultados

| ID | date | semana | week\_year |
| --- | --- | --- | --- |
| 8176 | 12/28/2020 | 53 | 2020 |
| 8177 | 12/29/2020 | 53 | 2020 |
| 8178 | 12/30/2020 | 53 | 2020 |
| 8179 | 12/31/2020 | 53 | 2020 |
| 8180 | 01/01/2021 | 1 | 2021 |
| 8181 | 01/02/2021 | 1 | 2021 |
| 8182 | 01/03/2021 | 2 | 2021 |
| 8183 | 01/04/2021 | 2 | 2021 |
| 8184 | 01/05/2021 | 2 | 2021 |
| 8185 | 01/06/2021 | 2 | 2021 |
| 8186 | 01/07/2021 | 2 | 2021 |

El campo `week_year` se crea en la instrucción load anterior utilizando la función `weekyear()` e introduciendo el campo de fecha como argumento de la función.

La variable del sistema `BrokenWeeks` está configurada en `1`, lo que significa que la aplicación utiliza semanas interrumpidas. La semana 1 comienza el 1 de enero.

Diagrama del rango de la función `weekyear()` cuando se usan semanas interrumpidas

Diagrama del rango de la función `weekyear()` cuando se usan semanas interrumpidas

Diagrama del rango de la función `weekyear()`weekyear() cuando se usan semanas interrumpidas ![Diagrama que muestra la función weekyear(), esta identifica que la transacción 8181 tuvo lugar en la semana 1 y devuelve el año de esa semana, 2021.](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-examples1_and3-diagram.png)

La transacción 8181 tiene lugar el 2 de enero, que forma parte de la semana 1. Por lo tanto, devuelve un valor de 2021 para el campo "`week_year`".

## Ejemplo 4: escenario

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekyear.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 la última semana de 2020 y la primera semana de 2021, que se carga en una tabla llamada "`Transactions`".

* La variable `BrokenWeeks` que está establecida en "`0`". Esto significa que la aplicación utilizará semanas ininterrumpidas.

* La variable `ReferenceDay` que está establecida en "`2`". Esto significa que el año comenzará el 2 de enero y contendrá un mínimo de dos días en enero.

* La variable `FirstWeekDay` que está establecida en "`1`". Esto significa que el primer día de la semana será el martes.

La política de la empresa es utilizar semanas interrumpidas. Al usuario final le gustaría tener un gráfico que presente el total de ventas por año. La aplicación usa semanas ininterrumpidas y la semana 1 contiene un mínimo de dos días en enero.

Script de carga

```
SET BrokenWeeks=0; 
SET ReferenceDay=2; 
SET FirstWeekDay=1; 
 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42 
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla.

Para calcular el año en que se realiza una transacción en función del número de semana, cree la siguiente medida:

* `=weekyear(date)`

Para calcular el total de ventas, cree la siguiente medida:

* `sum(amount)`

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

Tabla de resultados

| weekyear(date) | =sum(amount) |
| --- | --- |
| 2020 | 19.42 |
| 2021 | 373.37 |