Esta función devuelve un entero que representa el número de semana conforme a la ISO 8601. El número de semana se calcula a partir de la interpretación de la fecha de la expresión, conforme a la interpretación numérica estándar.
El recuento de números de semana comienza el 1 de enero (esto se debe a que Qlik Sense está configurado de forma predeterminada para utilizar semanas interrumpidas). La primera semana finaliza el día anterior a la variable del sistema FirstWeekDay, independientemente de cuántos días hayan transcurrido en esa semana. La variable del sistema FirstWeekDay puede reemplazarse dentro de la función week() por el argumento de first_week_day.
La función week() también ofrece la posibilidad de especificar si se utilizan semanas interrumpidas o ininterrumpidas mediante el argumento de broken_weeks. Si se utiliza la función de semana interrumpida, la semana 1 debe contener una cierta cantidad de días en enero según lo definido por la variable del sistema ReferenceDay. Por lo tanto, la semana 1 puede comenzar potencialmente en diciembre o, si lo desea, las semanas 52 o 53 pueden continuar hasta enero. Por último, el argumento de reference_day permite que la función anule la variable del sistema ReferenceDay.
A diferencia de la función weekname(), la función week() tampoco devuelve el valor del año. Esto permite agregaciones que comparan semanas a lo largo de años.
Hay cuatro argumentos que se pueden utilizar dentro de esta función.
Argumento # 1: timestamp
Esta es la fecha para evaluar como una marca de tiempo (o una expresión que devuelve una marca de tiempo), para convertir, por ejemplo, "2012-10-12".
Argumento # 2: first_week_day
Si no especifica first_week_day, el valor de la variable FirstWeekDay se usará como el primer día de la semana.
Si desea usar otro día como el primer día de la semana, defina first_week_day en:
0 para lunes
1 para martes
2 para miércoles
3 para jueves
4 para viernes
5 para sábado
6 para domingo
El entero devuelto por la función ahora usará el primer día de la semana que configuró con first_week_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.
Se pueden utilizar los siguientes valores para establecer un día de referencia diferente:
La función The week() es útil cuando se desea comparar agregaciones por semanas. Por ejemplo, si desea ver el total de ventas de productos por semana. La función week() se elige por encima de weekname() cuando el usuario desea que el cálculo no utilice necesariamente las variables del sistema, BrokenWeeks, FirstWeekDay o ReferenceDay de la aplicación.
Además, la función week() se elige cuando desea comparar varios años. Mediante el uso de la función week(), el usuario puede crear su propia combinación de estas variables para utilizarlas en los casos en que se utilice la función.
Estas dimensiones se pueden crear en el script de carga utilizando la función para crear un campo en una tabla de calendario maestro o se pueden utilizar directamente en un gráfico como una dimensión calculada.
Ejemplos de funciones
Ejemplo
Resultado
week(
'10/12/2012')
Devuelve 41.
week(
'35648')
Devuelve 32, porque 35648 = 08/06/1997.
week('10/12/2012', 0, 1)
Devuelve 42.
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: variables predeterminadas del sistema
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 la última semana de 2021 y las primeras dos semanas de 2022 y 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, week_number, que devuelve el año y el número de semana en que se realizaron las transacciones.
La creación de un campo denominado week_day, que muestra el valor del día de la semana de cada fecha de transacción.
Script de carga
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2021,58.27
8184,12/28/2021,67.42
8185,12/29/2021,23.80
8186,12/30/2021,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
id
date
week_day
week_number
Tabla de resultados
id
date
week_day
week_number
8183
12/27/2021
Lun
53
8184
12/28/2021
Mar
53
8185
12/29/2021
Mié
53
8186
12/30/2021
Jue
53
8187
12/31/2021
Vie
53
8188
01/01/2022
Sáb
1
8189
01/02/2022
Dom
2
8190
01/03/2022
Lun
2
8191
01/04/2022
Mar
2
8192
01/05/2022
Mié
2
8193
01/06/2022
Jue
2
8194
01/07/2022
Vie
2
8195
01/08/2022
Sáb
2
8196
01/09/2022
Dom
3
8197
01/10/2022
Lun
3
8198
01/11/2022
Mar
3
8199
01/12/2022
Mié
3
8200
01/13/2022
Jue
3
8201
01/14/2022
Vie
3
El campo week_number se crea en la instrucción load anterior utilizando la función week() e introduciendo el campo date como argumento de la función.
No se indica ningún otro parámetro en la función y, por lo tanto, las siguientes variables predeterminadas que afectan a la función week() siguen vigentes:
BrokenWeeks: El recuento de semanas comienza el 1 de enero
FirstWeekDay: El primer día de la semana es domingo
Debido a que la aplicación utiliza la variable del sistema predeterminada BrokenWeeks, la semana 1 comienza el 1 de enero, un sábado.
Debido a la variable del sistema predeterminada FirstWeekDay, las semanas comienzan en domingo. El primer domingo después del 1 de enero ocurre el 2 de enero, que es cuando comienza la semana 2.
Ejemplo 2: first_week_day
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:
La creación de un campo, week_number, que devuelve el año y el número de semana en que se realizaron las transacciones.
La creación de un campo denominado week_day, que muestra el valor del día de la semana de cada fecha de transacción.
En este ejemplo, nos gustaría configurar el martes como inicio de la semana laboral.
Script de carga
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,1) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
id
date
week_day
week_number
Tabla de resultados
id
date
week_day
week_number
8183
12/27/2021
Lun
52
8184
12/28/2021
Mar
53
8185
12/29/2021
Mié
53
8186
12/30/2021
Jue
53
8187
12/31/2021
Vie
53
8188
01/01/2022
Sáb
1
8189
01/02/2022
Dom
1
8190
01/03/2022
Lun
1
8191
01/04/2022
Mar
2
8192
01/05/2022
Mié
2
8193
01/06/2022
Jue
2
8194
01/07/2022
Vie
2
8195
01/08/2022
Sáb
2
8196
01/09/2022
Dom
2
8197
01/10/2022
Lun
2
8198
01/11/2022
Mar
3
8199
01/12/2022
Mié
3
8200
01/13/2022
Jue
3
8201
01/14/2022
Vie
3
La aplicación sigue utilizando semanas interrumpidas. Sin embargo, el argumento de first_week_day se ha definido en 1 en la función week(). Esto establece el primer día de la semana en martes.
La aplicación utiliza la variable de sistema predeterminada BrokenWeeks, por lo que la semana 1 comienza el 1 de enero, un sábado.
El argumento de first_week_day de la función week() establece el primer día de la semana en martes. Por lo tanto, la semana 53 comienza el 28 de diciembre de 2021.
Sin embargo, debido a que la función todavía utiliza semanas interrumpidas, la semana 1 solo durará dos días, debido a que el primer martes después del 1 de enero se produce el 3 de enero.
Ejemplo 3: unbroken_weeks
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.
En este ejemplo, usamos semanas no interrumpidas.
Script de carga
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,6,0) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
id
date
week_day
week_number
Tabla de resultados
id
date
week_day
week_number
8183
12/27/2021
Lun
52
8184
12/28/2021
Mar
52
8185
12/29/2021
Mié
52
8186
12/30/2021
Jue
52
8187
12/31/2021
Vie
52
8188
01/01/2022
Sáb
52
8189
01/02/2022
Dom
1
8190
01/03/2022
Lun
1
8191
01/04/2022
Mar
1
8192
01/05/2022
Mié
1
8193
01/06/2022
Jue
1
8194
01/07/2022
Vie
1
8195
01/08/2022
Sáb
1
8196
01/09/2022
Dom
2
8197
01/10/2022
Lun
2
8198
01/11/2022
Mar
2
8199
01/12/2022
Mié
2
8200
01/13/2022
Jue
2
8201
01/14/2022
Vie
2
El parámetro de first_week_date está definido en 1, lo que hace que el martes sea el primer día de la semana. El parámetro de broken_weeks está establecido en 0, lo que obliga a la función a utilizar semanas ininterrumpidas. Por último, el tercer parámetro establece el día de referencia "reference_day" en 2.
El parámetro de first_week_date se establece en 6, lo que hace que el domingo sea el primer día de la semana. El parámetro de broken_weeks se establece en 0, lo que obliga a la función a utilizar semanas ininterrumpidas.
Al usar semanas continuas, ininterrumpidas, la semana 1 no necesariamente comienza el 1 de enero; en cambio, se requiere tener un mínimo de cuatro días. Por lo tanto, en el conjunto de datos, la semana 52 concluye el sábado 1 de enero de 2022. Luego, la semana 1 comienza en la variable del sistema FirstWeekDay, que es el domingo 2 de enero. Esta semana concluirá el siguiente sábado, 8 de enero.
Ejemplo 4: reference_day
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 tercer ejemplo.
La creación de un campo, week_number, que devuelve el año y el número de semana en que se realizaron las transacciones.
La creación de un campo denominado week_day, que muestra el valor del día de la semana de cada fecha de transacción.
Además, se deben cumplir las siguientes condiciones:
La semana laboral comienza un martes.
La empresa utiliza semanas no interrumpidas.
El valor de reference_day es 2. En otras palabras, el número mínimo de días en enero en la semana 1 será de 2.
Script de carga
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,1,0,2) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
id
date
week_day
week_number
Tabla de resultados
id
date
week_day
week_number
8183
12/27/2021
Lun
52
8184
12/28/2021
Mar
1
8185
12/29/2021
Mié
1
8186
12/30/2021
Jue
1
8187
12/31/2021
Vie
1
8188
01/01/2022
Sáb
1
8189
01/02/2022
Dom
1
8190
01/03/2022
Lun
1
8191
01/04/2022
Mar
2
8192
01/05/2022
Mié
2
8193
01/06/2022
Jue
2
8194
01/07/2022
Vie
2
8195
01/08/2022
Sáb
2
8196
01/09/2022
Dom
2
8197
01/10/2022
Lun
2
8198
01/11/2022
Mar
3
8199
01/12/2022
Mié
3
8200
01/13/2022
Jue
3
8201
01/14/2022
Vie
3
El parámetro de first_week_date está establecido en 1, lo que hace que el martes sea el primer día de la semana. El parámetro de broken_weeks está establecido en 0, lo que obliga a la función a utilizar semanas no interrumpidas. Por último, el tercer parámetro establece el parámetro de reference_day en 2.
Con la función utilizando semanas no interrumpidas y un valor de reference_day de 2 como parámetro, la semana 1 solo necesita incluir dos días en enero. Debido a que el primer día de la semana es martes, la semana 1 comienza el 28 de diciembre de 2021 y concluye el lunes 3 de enero de 2022.
Ejemplo 5: 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 el número de la semana se crea como una medida en un objeto gráfico.
Cargue los datos y abra una hoja.Cree una nueva tabla.
Agregue los siguientes campos como dimensiones:
id
date
A continuación, cree la siguiente medida:
=week (date)
Cree una medida , week_day, para mostrar el valor del día de la semana de cada fecha de transacción:
=weekday(date)
Tabla de resultados
id
date
=week(date)
=weekday(date)
8183
12/27/2021
53
Lun
8184
12/28/2021
53
Mar
8185
12/29/2021
53
Mié
8186
12/30/2021
53
Jue
8187
12/31/2021
53
Vie
8188
01/01/2022
1
Sáb
8189
01/02/2022
2
Dom
8190
01/03/2022
2
Lun
8191
01/04/2022
2
Mar
8192
01/05/2022
2
Mié
8193
01/06/2022
2
Jue
8194
01/07/2022
2
Vie
8195
01/08/2022
2
Sáb
8196
01/09/2022
3
Dom
8197
01/10/2022
3
Lun
8198
01/11/2022
3
Mar
8199
01/12/2022
3
Mié
8200
01/13/2022
3
Jue
8201
01/14/2022
3
Vie
El campo week_number se crea en la instrucción load anterior utilizando la función week() e introduciendo el campo date como argumento de la función.
No se indica ningún otro parámetro en la función y, por lo tanto, las siguientes variables predeterminadas que afectan a la función week() siguen vigentes:
BrokenWeeks: El recuento de semanas comienza el 1 de enero
FirstWeekDay: El primer día de la semana es domingo
Debido a que la aplicación utiliza la variable del sistema predeterminada BrokenWeeks, la semana 1 comienza el 1 de enero, un sábado.
Debido a la variable del sistema predeterminada FirstWeekDay, las semanas comienzan en domingo. El primer domingo después del 1 de enero ocurre el 2 de enero, que es cuando comienza la semana 2.
Ejemplo 6: 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:
Se carga un conjunto de datos que contiene una serie de transacciones de la última semana de 2019 y las primeras dos semanas de 2020 en una tabla llamada Transactions.
El campo de fecha proporcionado en el formato de la variable del sistema DateFormat (MM/DD/AAAA).
La aplicación utiliza principalmente semanas interrumpidas en su tablero. Sin embargo, al usuario final le gustaría tener un objeto gráfico que presente el total de ventas por semana utilizando semanas no interrumpidas. El día de referencia debe ser el 2 de enero y las semanas comienzan en martes. Esto podría lograrse incluso cuando esta dimensión no esté disponible en el modelo de datos, utilizando la función week() como una dimensión calculada en el gráfico.
Cargue los datos y abra una hoja.Cree una nueva tabla.
Cree la siguiente dimensión calculada:
=week(date)
A continuación, cree la siguiente medida de agregación:
=sum(amount)
Establezca el Formato numérico de la medida en Moneda.
Seleccione el menú Ordenar y, para la dimensión calculada, elimine la ordenación personalizada.
Desmarque las opciones Ordenar numéricamente y Ordenar alfabéticamente.
Tabla de resultados
=week(date)
sum(amount)
52
$125.69
53
$146.42
1
$200.09
2
$347.57
3
$122.01
¿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.