Especifica el día en el que se inicia la semana. Si se omite, se utiliza el valor de la variable FirstWeekDay.
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.
Para más información sobre la variable del sistema, vea FirstWeekDay.
broken_weeks
Si no especifica broken_weeks, el valor de la variable BrokenWeeks se usará para definir si las semanas se rompen o no.
Para más información sobre la variable del sistema, vea BrokenWeeks
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.
Para más información sobre la variable del sistema, vea ReferenceDay
La función week() determina en qué semana cae la fecha y devuelve el número de semana.
En Qlik Sense, la configuración regional se obtiene cuando se crea la app y la configuración correspondiente se almacena en el script como variables de entorno. Estos se utilizan para determinar el número de semana.
Esto significa que la mayoría de los desarrolladores de aplicaciones europeos obtienen las siguientes variables de entorno, correspondientes a la definición ISO 8601:
Set FirstWeekDay =0; // Monday as first week day
Set BrokenWeeks =0; // Use unbroken weeks
Set ReferenceDay =4; // Jan 4th is always in week 1
Un desarrollador de aplicaciones norteamericano a menudo obtiene las siguientes variables de entorno:
Set FirstWeekDay =6; // Sunday as first week day
Set BrokenWeeks =1; // Use broken weeks
Set ReferenceDay =1; // Jan 1st is always in week 1
El primer día de la semana viene determinado por la variable del sistema FirstWeekDay. También puede cambiar el primer día de la semana usando el argumento first_week_day en la función week().
Si su aplicación utiliza semanas interrumpidas, el número de semanas comienza el 1 de enero y finaliza el día anterior a la variable del sistema FirstWeekDay, independientemente de cuántos días hayan transcurrido.
Si su aplicación utiliza semanas ininterrumpidas, la semana 1 puede comenzar en el año anterior o en los primeros días de enero. Esto depende de cómo use las variables de entorno FirstWeekDay y ReferenceDay.
Cuándo se utiliza
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.
Por ejemplo, si desea ver el total de ventas de productos por semana.
Si la aplicación utiliza semanas ininterrumpidas, la semana 1 puede contener fechas de diciembre del año anterior o excluir fechas de enero del año en curso. Si la aplicación utiliza semanas interrumpidas, la semana 1 puede contener menos de siete días.
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 en su navegador.
Los siguientes ejemplos suponen
Set DateFormat= 'MM/DD/YYYY';
Set FirstWeekDay=0;
Set BrokenWeeks=0;
Set ReferenceDay=4;
Ejemplos de funciones
Ejemplo
Resultado
week('12/28/2021')
Devuelve 52.
week(44614)
Devuelve 8, ya que este es el número de serie del 22/02/2022.
week('01/03/2021')
Devuelve 53.
week('01/03/2021',6)
Devuelve 1.
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.