En Qlik Sense, el valor booleano verdadero viene representado por -1 y el valor falso está representado por 0.
La función inweek() utiliza el argumento de base_date para identificar en qué periodo de siete días cae la fecha. El día de inicio de la semana se basa en la variable del sistema FirstWeekDay. No obstante, también puede cambiar el primer día de la semana usando el argumento first_week_day de la función inweek().
Una vez que se haya definido la semana seleccionada, la función devolverá resultados booleanos al comparar los valores de fecha prescritos con ese segmento de semana.
Cuándo se utiliza
La función InWeek devuelve un resultado booleano. Normalmente, este tipo de función se utilizará como condición en una if expression. La función InWeek devuelve una agregación o cálculo que depende de si una fecha evaluada ocurrió en la semana con la fecha seleccionada del argumento base_date.
Por ejemplo, la función InWeek se puede utilizar para identificar todos los equipos fabricados en una semana determinada.
Argumentos
Argumento
Descripción
timestamp
La fecha que desea comparar con base_date.
base_date
La fecha que se utiliza para evaluar la semana.
period_no
La semana puede desplazarse mediante period_no. period_no es un entero, en el que el valor 0 indica la semana que contiene a base_date. Los valores negativos en period_no indican semanas precedentes y los valores positivos indican semanas subsiguientes.
first_week_day
De forma predeterminada, el primer día de la semana es el domingo (según lo determina la variable de sistema FirstWeekDay), comenzando a la medianoche entre el sábado y el domingo. El parámetro first_week_day reemplaza a la variable FirstWeekDay. Para indicar una semana que comienza en otro día, especifique un desplazamiento entre 0 y 6.
valores primer_día_semana
Día
Valor
Lunes
0
Martes
1
Miércoles
2
Jueves
3
Viernes
4
Sábado
5
Domingo
6
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.
Devuelve FALSE porque first_week_day está especificado como 3 (Jueves), lo que hace que 12/01/2006 sea el primer día de la semana que sigue a la semana que contiene a 09/01/2006.
Estos temas le ayudarán a trabajar con esta función:
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
date
week_day
in_week
Tabla de resultados
date
week_day
in_week
01/02/2022
Dom
0
01/05/2022
Mié
0
01/06/2022
Jue
0
01/08/2022
Sáb
0
01/09/2022
Dom
-1
01/10/2022
Lun
-1
01/11/2022
Mar
-1
01/12/2022
Mié
-1
01/13/2022
Jue
-1
01/14/2022
Vie
-1
01/15/2022
Sáb
-1
01/16/2022
Dom
0
01/17/2022
Lun
0
01/18/2022
Mar
0
01/26/2022
Mié
0
01/27/2022
Jue
0
01/28/2022
Vie
0
01/29/2022
Sáb
0
01/30/2022
Dom
0
01/31/2022
Lun
0
El campo "in_week" se crea en la instrucción load anterior mediante el uso de la función inweek(). El primer argumento identifica qué campo se está evaluando. El segundo argumento es una fecha codificada, 14 de enero, que es la base_date. El argumento de base_date funciona con la variable del sistema FirstWeekDay para identificar la semana de comparación. Un period_no de 0 — lo que significa que la función no compara las semanas anteriores o posteriores a la semana segmentada — es el argumento final.
La variable de sistema FirstWeekDay determina que las semanas comienzan en domingo y terminan en sábado. Por lo tanto, enero se dividiría en semanas de acuerdo con el diagrama inferior, siendo las fechas entre el 9 y el 15 de enero el período válido para el cálculo de inweek():
Cualquier transacción que ocurra entre el 9 y el 15 de enero devolverá un resultado booleano de TRUE.
Ejemplo 2: period_no
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:
El mismo conjunto de datos que contiene un conjunto de transacciones para 2022 se carga en una tabla llamada "Transactions".
La variable del sistema FirstWeekDay configurada en 6 (domingo).
Un load precedente que contiene lo siguiente:
La función inweek (), configurada como el campo "prev_week" que determina qué transacciones se realizaron una semana completa antes de la semana del 14 de enero de 2022.
La función weekday(), configurada como el campo "week_day" que muestra qué día de la semana corresponde a cada fecha.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
date
week_day
prev_week
Tabla de resultados
fecha
week_day
prev_week
01/02/2022
Dom
-1
01/05/2022
Mié
-1
01/06/2022
Jue
-1
01/08/2022
Sáb
-1
01/09/2022
Dom
0
01/10/2022
Lun
0
01/11/2022
Mar
0
01/12/2022
Mié
0
01/13/2022
Jue
0
01/14/2022
Vie
0
01/15/2022
Sáb
0
01/16/2022
Dom
0
01/17/2022
Lun
0
01/18/2022
Mar
0
01/26/2022
Mié
0
01/27/2022
Jue
0
01/28/2022
Vie
0
01/29/2022
Sáb
0
01/30/2022
Dom
0
01/31/2022
Lun
0
Utilizar -1 como el argumento de period_no en la función inweek(), desplaza los límites de la semana de comparación hacia atrás en siete días completos. Con un period_no de 0 la semana sería entre el 9 y el 15 de enero. Pero en este ejemplo, el period_no de -1 desplaza el límite inicial y final de este segmento hacia atrás una semana. Los límites de fecha pasan a ser del 2 de enero al 8 de enero.
Por lo tanto, cualquier transacción que ocurra entre el 2 y el 8 de enero devolverá un resultado booleano de TRUE.
Ejemplo: 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:
El mismo conjunto de datos que contiene un conjunto de transacciones para 2022 se carga en una tabla llamada "Transactions".
La variable del sistema FirstWeekDay configurada en 6 (domingo).
Un load precedente que contiene lo siguiente:
La función inweek(), configurada como el campo "in_week" que determina qué transacciones se realizaron en la semana del 14 de enero de 2022.
La función weekday(), configurada como el campo "week_day" que muestra qué día de la semana corresponde a cada fecha.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
date
week_day
in_week
Tabla de resultados
fecha
week_day
in_week
01/02/2022
Dom
0
01/05/2022
Mié
0
01/06/2022
Jue
0
01/08/2022
Sáb
0
01/09/2022
Dom
0
01/10/2022
Lun
-1
01/11/2022
Mar
-1
01/12/2022
Mié
-1
01/13/2022
Jue
-1
01/14/2022
Vie
-1
01/15/2022
Sáb
-1
01/16/2022
Dom
-1
01/17/2022
Lun
0
01/18/2022
Mar
0
01/26/2022
Mié
0
01/27/2022
Jue
0
01/28/2022
Vie
0
01/29/2022
Sáb
0
01/30/2022
Dom
0
01/31/2022
Lun
0
Utilizando 0 como el argumento de first_week_day en la función inweek(), el argumento de la función reemplaza a la variable de sistema FirstWeekDay y establece el lunes como el primer día de la semana.
Por lo tanto, cualquier transacción que ocurra entre el 10 y el 16 de enero devolverá un resultado booleano de TRUE.
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. Cree una medida en la tabla de resultados para determinar qué transacciones se realizaron en la semana del 14 de enero de 2022.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:
date
Cree las siguientes medidas:
=inweek (date,'01/14/2022',0), para calcular si las transacciones se realizaron en la misma semana del 14 de enero.
=weekday(date), para mostrar qué día de la semana corresponde a cada fecha.
Tabla de resultados
fecha
week_day
=inweek (date,'01/14/2022',0)
01/02/2022
Dom
0
01/05/2022
Mié
0
01/06/2022
Jue
0
01/08/2022
Sáb
0
01/09/2022
Dom
-1
01/10/2022
Lun
-1
01/11/2022
Mar
-1
01/12/2022
Mié
-1
01/13/2022
Jue
-1
01/14/2022
Vie
-1
01/15/2022
Sáb
-1
01/16/2022
Dom
0
01/17/2022
Lun
0
01/18/2022
Mar
0
01/26/2022
Mié
0
01/27/2022
Jue
0
01/28/2022
Vie
0
01/29/2022
Sáb
0
01/30/2022
Dom
0
01/31/2022
Lun
0
La medida "in_week" se crea en el gráfico mediante la función inweek(). El primer argumento identifica qué campo se está evaluando. El segundo argumento es una fecha codificada, 14 de enero, que es la base_date. El argumento de base_date funciona con la variable del sistema FirstWeekDay para identificar la semana de comparación. Un period_no de 0 es el argumento final.
La variable de sistema FirstWeekDay determina que las semanas comienzan en domingo y terminan en sábado. Por lo tanto, enero se dividiría en semanas de acuerdo con el diagrama inferior, siendo las fechas entre el 9 y el 15 de enero el período válido para el cálculo de inweek():
Cualquier transacción que ocurra entre el 9 y el 15 de enero devolverá un resultado booleano de TRUE.
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:
Un conjunto de datos que se carga en una tabla denominada "Products".
La tabla contiene los siguientes campos:
ID de producto
tipo de producto
fecha de fabricación
precio de coste
Se ha identificado que, debido a un error del equipo, los productos que se fabricaron en la semana del 12 de enero eran defectuosos. Al usuario final le gustaría tener un gráfico que muestre, por semana, el estado de los productos fabricados, si son "defectuosos" o "sin defectos", y el coste de producción de los productos fabricados en esa semana.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:
=weekname(manufacture_date)
Cree las siguientes medidas:
=if(only(inweek(manufacture_date,makedate(2022,01,12),0)),'Defective','Faultless') para identificar cuáles de los productos son defectuosos y cuáles no tienen defectos utilizando la función inweek():
=sum(cost_price), para mostrar la suma del coste de fabricación de cada producto.
Haga lo siguiente:
Establezca el Formato numérico de la medida en Moneda.
La función inweek() devuelve un valor booleano al evaluar las fechas de fabricación de cada uno de los productos. Para cualquier producto fabricado en la semana del 12 de enero, la función inweek() devuelve un valor booleano de TRUE y marca los productos como "Defectuoso". Para cualquier producto que devuelva un valor de FALSE, y que por lo tanto no se haya fabricado en esa semana, marca los productos como "Sin defectos".
¿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.