Esta función devuelve un valor que muestra el número de año y de semana con un valor numérico subyacente correspondiente a una marca de tiempo del primer milisegundo del primer día de la semana que contiene a date.
La función weekname() determina en qué semana cae la fecha y devuelve el número de semana y el año de esa semana. El primer día de la semana viene determinado por la variable del sistema FirstWeekDay. No obstante, también puede cambiar el primer día de la semana usando el argumento first_week_day en la función weekname().
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.
Un desarrollador de aplicaciones norteamericano a menudo incluye Set BrokenWeeks=1; en el script, lo que corresponde a semanas interrumpidas. Un desarrollador de aplicaciones europeo a menudo incluye Set BrokenWeeks=0; en el script, lo que corresponde a semanas ininterrumpidas.
Si su aplicación utiliza semanas interrumpidas, el recuento 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.
Sin embargo, si su aplicación usa 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 del sistema ReferenceDay y FirstWeekDay.
Ejemplo de la función Weekname
Fecha
Nombre de semana ISO
Nombre de semana en EE. UU.
Sab 2020 Dic 26
2020/52
2020/52
Dom 2020 Dic 27
2020/52
2020/53
Lun 2020 Dic 28
2020/53
2020/53
Mar 2020 Dic 29
2020/53
2020/53
Mie 2020 Dic 30
2020/53
2020/53
Jue 2020 Dic 31
2020/53
2020/53
Vie 2021 Ene 1
2020/53
2021/01
Sab 2021 Ene 2
2020/53
2021/01
Dom 2021 Ene 3
2020/53
2021/02
Lun 2021 Ene 4
2021/01
2021/02
Mar 2021 Ene 5
2021/01
2021/02
Cuándo se utiliza
La función weekname() es útil cuando desea comparar agregaciones por semanas.
Por ejemplo, si desea ver el total de ventas de productos por semana. Para mantener la coherencia con la variable de entorno BrokenWeeks en la aplicación, utilice weekname() en vez de lunarweekname(). 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 segmentadas, la semana 1 puede contener menos de siete días.
Tipo de datos que devuelve: dual
Argumentos
Argumento
Descripción
timestamp
La fecha o marca de tiempo para evaluar.
period_no
shift es un entero, donde el valor 0 indica la semana que contiene a date. Los valores negativos en el desplazamiento indican semanas precedentes y los valores positivos indican semanas subsiguientes.
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.
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
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.
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.
Set FirstWeekDay=0;
Set BrokenWeeks=0;
Set ReferenceDay=4;
Ejemplos de funciones
Ejemplo
Resultado
weekname('01/12/2013')
Devuelve 2013/02.
weekname('01/12/2013', -1)
Devuelve 2013/01.
weekname('01/12/2013', 0, 1)
Devuelve 2013/02.
Ejemplo 1: Fecha sin argumentos adicionales
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 se carga en una tabla llamada "Transactions".
La variable del sistema DateFormat configurada en el formato MM/DD/YYYY.
La variable del sistema BrokenWeeks configurada en 1.
La variable del sistema FirstWeekDay configurada en 6.
Un load precedente que contiene lo siguiente:
La función weekday() que se establece como el campo, ''week_number", que devuelve el año y el número de semana en que se realizaron las transacciones.
La función weekname() que se establece como el campo denominado "week_day", para mostrar el valor del día de la semana de cada fecha de transacción.
Script de carga
SET BrokenWeeks=1;
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
Transactions:
Load
*,
WeekDay(date) as week_day,
Weekname(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
2021/53
8184
12/28/2021
Mar
2021/53
8185
12/29/2021
Mié
2021/53
8186
12/30/2021
Jue
2021/53
8187
12/31/2021
Vie
2021/53
8188
01/01/2022
Sáb
2022/01
8189
01/02/2022
Dom
2022/02
8190
01/03/2022
Lun
2022/02
8191
01/04/2022
Mar
2022/02
8192
01/05/2022
Mié
2022/02
8193
01/06/2022
Jue
2022/02
8194
01/07/2022
Vie
2022/02
8195
01/08/2022
Sáb
2022/02
8196
01/09/2022
Dom
2022/03
8197
01/10/2022
Lun
2022/03
8198
01/11/2022
Mar
2022/03
8199
01/12/2022
Mié
2022/03
8200
01/13/2022
Jue
2022/03
8201
01/14/2022
Vie
2022/03
El campo week_number se crea en la instrucción load anterior utilizando la función weekname() e introduciendo el campo de fecha como argumento de la función.
La función weekname() inicialmente identifica en qué semana cae el valor de la fecha y devuelve el recuento del número de semana y el año en que se lleva a cabo la transacción.
La variable de sistema FirstWeekDay establece el domingo como el primer día de la semana. La variable de sistema BrokenWeeks establece que la aplicación utilice semanas divididas, lo que significa que la semana 1 comenzará el 1 de enero.
La semana 1 comienza el 1 de enero, que es sábado y, por lo tanto, las transacciones que ocurren en esta fecha devuelven el valor 2022/01 (el año y el número de semana).
Debido a que la aplicación usa semanas divididas y el primer día de la semana es el domingo, las transacciones que ocurren del 2 al 8 de enero devuelven el valor 2022/02 (semana número 2 de 2022). Un ejemplo de esto sería la transacción 8192 que tuvo lugar el 5 de enero y devuelve el valor 2022/02 para el campo "week_number".
Ejemplo 2: period_no
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_week_number", que devuelva el año y el número de semana anteriores a que se realizaran las transacciones.
Abra el Editor de carga de datos y agregue el siguiente script de carga en una nueva pestaña.
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
2021/52
8184
12/28/2021
Mar
2021/52
8185
12/29/2021
Mié
2021/52
8186
12/30/2021
Jue
2021/52
8187
12/31/2021
Vie
2021/52
8188
01/01/2022
Sáb
2021/52
8189
01/02/2022
Dom
2021/53
8190
01/03/2022
Lun
2021/53
8191
01/04/2022
Mar
2021/53
8192
01/05/2022
Mié
2021/53
8193
01/06/2022
Jue
2021/53
8194
01/07/2022
Vie
2021/53
8195
01/08/2022
Sáb
2022/01
8196
01/09/2022
Dom
2022/02
8197
01/10/2022
Lun
2022/02
8198
01/11/2022
Mar
2022/02
8199
01/12/2022
Mié
2022/02
8200
01/13/2022
Jue
2022/02
8201
01/14/2022
Vie
2022/02
En este caso, debido a que se usó un valor period_no de -1 como argumento de desplazamiento en la función weekname(), la función primero identifica la semana en la que se realizan las transacciones. Luego busca una semana antes e identifica el primer milisegundo de esa semana.
La transacción 8192 tuvo lugar el 5 de enero de 2022. La función weekname() busca una semana antes, el 30 de diciembre de 2021, y devuelve el número de semana y el año de esa fecha: 2021/53.
Ejemplo: first_week_day
Vista general
Se utilizan el mismo conjunto de datos y el mismo escenario que en el primer ejemplo.
Sin embargo, en este ejemplo, la política de la empresa es que la semana laboral comience el martes.
Abra el Editor de carga de datos y agregue el siguiente script de carga en una nueva pestaña.
Script de carga
SET BrokenWeeks=1;
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
weekday(date) as week_day,
weekname(date,0,1) 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
2021/52
8184
12/28/2021
Mar
2021/53
8185
12/29/2021
Mié
2021/53
8186
12/30/2021
Jue
2021/53
8187
12/31/2021
Vie
2021/53
8188
01/01/2022
Sáb
2022/01
8189
01/02/2022
Dom
2022/01
8190
01/03/2022
Lun
2022/01
8191
01/04/2022
Mar
2022/02
8192
01/05/2022
Mié
2022/02
8193
01/06/2022
Jue
2022/02
8194
01/07/2022
Vie
2022/02
8195
01/08/2022
Sáb
2022/02
8196
01/09/2022
Dom
2022/02
8197
01/10/2022
Lun
2022/02
8198
01/11/2022
Mar
2022/03
8199
01/12/2022
Mié
2022/03
8200
01/13/2022
Jue
2022/03
8201
01/14/2022
Vie
2022/03
Como el argumento first_week_date de 1 se usa en la función weekname(), utiliza el martes como primer día de la semana. La función por tanto determina que la semana 53 de 2021 comience el martes 28 de diciembre; y, debido a que la aplicación utiliza semanas divididas, la semana 1 comienza el 1 de enero de 2022 y finaliza el último milisegundo del lunes 3 de enero de 2022.
La transacción 8192 tuvo lugar el 5 de enero de 2022. Por lo tanto, utilizando un parámetro first_week_day de martes, la función weekname() devuelve el valor 2022/02 del campo "week_number".
Ejemplo 4: ejemplo de objeto 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 año de la semana en que se realizaron las transacciones se crea como una medida en un objeto gráfico de la aplicación.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
id
date
=week_day (date)
Para calcular el inicio de la semana en que se realiza una transacción, cree la siguiente medida:
=weekname(date)
Tabla de resultados
id
date
=weekday(date)
=weekname(date)
8183
12/27/2021
Lun
2021/53
8184
12/28/2021
Mar
2021/53
8185
12/29/2021
Mié
2021/53
8186
12/30/2021
Jue
2021/53
8187
12/31/2021
Vie
2021/53
8188
01/01/2022
Sáb
2022/01
8189
01/02/2022
Dom
2022/02
8190
01/03/2022
Lun
2022/02
8191
01/04/2022
Mar
2022/02
8192
01/05/2022
Mié
2022/02
8193
01/06/2022
Jue
2022/02
8194
01/07/2022
Vie
2022/02
8195
01/08/2022
Sáb
2022/02
8196
01/09/2022
Dom
2022/03
8197
01/10/2022
Lun
2022/03
8198
01/11/2022
Mar
2022/03
8199
01/12/2022
Mié
2022/03
8200
01/13/2022
Jue
2022/03
8201
01/14/2022
Vie
2022/03
El campo "week_number" se crea como una medida en el objeto gráfico utilizando la función weekname() e introduciendo el campo de fecha como el argumento de la función.
La función weekname() identifica inicialmente en qué semana cae el valor de la fecha y devuelve el recuento del número de semana y el año en que se lleva a cabo la transacción.
La variable de sistema FirstWeekDay establece el domingo como el primer día de la semana. La variable de sistema BrokenWeeks configura la aplicación para usar semanas divididas, lo que significa que la semana 1 comienza el 1 de enero.
Debido a que la aplicación utiliza semanas divididas y el primer día de la semana es el domingo, las transacciones que ocurren del 2 al 8 de enero devuelven el valor 2022/02, la semana número 2 en 2022. Observe que la transacción 8192 tuvo lugar el 5 de enero y devuelve el valor 2022/02 para el campo "week_number".
Ejemplo 5: 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 un conjunto de transacciones de la última semana de 2019 y las primeras dos semanas de 2020 en una tabla llamada "Transactions".
La variable del sistema BrokenWeeks configurada en 0.
La variable del sistema ReferenceDay configurada en 2.
La variable del sistema DateFormat configurada en el formato MM/DD/YYYY.
Cargue los datos y abra una hoja. Cree una nueva tabla.
Cree una dimensión calculada usando la siguiente expresión:
=weekname(date)
Para calcular el total de ventas, cree la siguiente medida de agregación:
=sum(amount)
Establezca el Formato numérico de la medida en Moneda.
Tabla de resultados
weekname(date)
=sum(amount)
2019/52
$125.69
2020/01
$346.51
2020/02
$347.57
2020/03
$122.01
Para demostrar los resultados de usar la función weekname() en este escenario, agregue el siguiente campo como una dimensión:
date
Tabla de resultados con el campo de fecha
weekname(date)
date
=sum(amount)
2019/52
12/27/2019
$58.27
2019/52
12/28/2019
$67.42
2020/01
12/29/2019
$23.80
2020/01
12/30/2019
$82.06
2020/01
12/31/2019
$40.56
2020/01
01/01/2020
$37.23
2020/01
01/02/2020
$17.17
2020/01
01/03/2020
$88.27
2020/01
01/04/2020
$57.42
2020/02
01/05/2020
$53.80
2020/02
01/06/2020
$82.06
2020/02
01/07/2020
$40.56
2020/02
01/08/2020
$53.67
2020/02
01/09/2020
$26.63
2020/02
01/10/2020
$72.48
2020/02
01/11/2020
$18.37
2020/03
01/12/2020
$45.26
2020/03
01/13/2020
$58.23
2020/03
01/14/2020
$18.52
Como la aplicación utiliza semanas ininterrumpidas y la semana 1 requiere un mínimo de dos días en enero debido a la variable de sistema ReferenceDay, la semana 1 de 2020 incluye transacciones desde el 29 de diciembre de 2019.
¿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.