Esta función devuelve True si timestamp se encuentra dentro de la parte de la semana que contiene a base_date hasta e incluido el último milisegundo de base_date.
En Qlik Sense, el valor booleano verdadero viene representado por -1 y el valor falso está representado por 0.
La función inweektodate() utiliza el parámetro base_date para identificar una fecha límite máxima de un segmento de semana, así como su fecha correspondiente para el inicio de la semana, que se basa en la variable de sistema FirstWeekDay (o parámetro first_week_day definido por el usuario). Una vez que se haya definido este segmento de semana, la función devolverá resultados booleanos al comparar los valores de fecha prescritos con ese segmento.
Cuándo se utiliza
La función inweektodate() devuelve un resultado booleano. Normalmente, este tipo de función se utilizará como condición en una expresión if. Esto devolverá una agregación o cálculo dependiendo de si una fecha evaluada ocurrió durante la semana en cuestión hasta una fecha en particular inclusive.
Por ejemplo, la función inweektodate() se puede utilizar para calcular todas las ventas realizadas durante una semana específica hasta una fecha 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.
Para una semana que comience el lunes y finalice el domingo, utilice un indicador de 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.
Ejemplos de funciones
Ejemplo
Interacción
inweektodate('01/12/2006', '01/12/2006', 0)
Devuelve TRUE.
inweektodate('01/12/2006', '01/11/2006', 0)
Devuelve FALSE.
inweektodate('01/12/2006', '01/18/2006', -1)
Devuelve FALSE. Porque period_no está especificado como -1, los datos efectivos con los que se mide timestamp son 01/11/2006.
inweektodate('01/11/2006', '01/12/2006', 0, 3 )
Devuelve FALSE, porque first_week_day está especificado como 3 (jueves), lo que hace que 01/12/2006 sea el primer día de la semana que sigue a la semana que contiene a 01/12/2006.
Estos temas le ayudarán a trabajar con esta función:
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.
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 del mes de enero de 2022, el cual se carga en una tabla denominada "Transactions".
El campo de datos proporcionado en el formato TimestampFormat='M/D/YYYY h:mm:ss[.fff]'.
La creación de un campo, in_week_to_date, que determina qué transacciones se realizaron en la semana hasta el 14 de enero de 2022.
La creación de un campo adicional, llamado weekday, usando la función weekday(). Este nuevo campo se crea para mostrar 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_to_date
Tabla de resultados
date
week_day
in_week_to_date
2022-01-02 12:22:06
Dom
0
2022-01-05 01:02:30
Mié
0
2022-01-06 15:36:20
Jue
0
2022-01-08 10:58:35
Sáb
0
2022-01-09 08:53:32
Dom
-1
2022-01-10 21:13:01
Lun
-1
2022-01-11 00:57:13
Mar
-1
2022-01-12 09:26:02
Mié
-1
2022-01-13 15:05:09
Jue
-1
2022-01-14 18:44:57
Vie
-1
2022-01-15 06:10:46
Sáb
0
2022-01-16 06:39:27
Dom
0
2022-01-17 10:44:16
Lun
0
2022-01-18 18:48:17
Mar
0
2022-01-26 04:36:03
Mié
0
2022-01-27 08:07:49
Jue
0
2022-01-28 12:24:29
Vie
0
2022-01-30 11:56:56
Dom
0
2022-01-30 14:40:19
Dom
0
2022-01-31 05:28:21
Lun
0
El campo "in_week_to_date" se crea en la instrucción load anterior, mediante el uso de la función inweektodate(). El primer argumento proporcionado identifica qué campo se está evaluando. El segundo argumento es una fecha codificada para el 14 de enero, que es la base_date que identifica qué semana segmentar y define el límite final de ese segmento. Un period_no de 0 es el argumento final, lo que significa que la función no compara las semanas que preceden o siguen a la semana segmentada.
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 siguiente diagrama, siendo las fechas entre el 9 y el 14 de enero el período válido para el cálculo de inweekdodate():
Cualquier transacción que ocurra entre el 9 y el 14 de enero devuelve un resultado booleano de TRUE. Las transacciones anteriores y posteriores a las fechas devuelven un resultado booleano de FALSE.
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:
Se utilizan el mismo conjunto de datos y escenario que en el primer ejemplo.
La creación de un campo, prev_week_to_date, que determina qué transacciones se realizaron en una semana completa antes del segmento de semana que finaliza el 14 de enero de 2022.
La creación de un campo adicional, llamado weekday, usando la función weekday(). Este se crea para mostrar 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_to_date
Tabla de resultados
date
week_day
prev_week_to_date
2022-01-02 12:22:06
Dom
-1
2022-01-05 01:02:30
Mié
-1
2022-01-06 15:36:20
Jue
-1
2022-01-08 10:58:35
Sáb
0
2022-01-09 08:53:32
Dom
0
2022-01-10 21:13:01
Lun
0
2022-01-11 00:57:13
Mar
0
2022-01-12 09:26:02
Mié
0
2022-01-13 15:05:09
Jue
0
2022-01-14 18:44:57
Vie
0
2022-01-15 06:10:46
Sáb
0
2022-01-16 06:39:27
Dom
0
2022-01-17 10:44:16
Lun
0
2022-01-18 18:48:17
Mar
0
2022-01-26 04:36:03
Mié
0
2022-01-27 08:07:49
Jue
0
2022-01-28 12:24:29
Vie
0
2022-01-30 11:56:56
Dom
0
2022-01-30 14:40:19
Dom
0
2022-01-31 05:28:21
Lun
0
Un valor period_no de -1 indica que la función inweektodate () compara el segmento del trimestre introducido con la semana anterior. El segmento de la semana equivale inicialmente al período entre el 9 y el 14 de enero. El period_no desplaza después el límite inicial y final de este segmento a una semana antes, lo que hace que los límites de fecha se conviertan del 2 de enero al 7 de enero.
Por lo tanto, cualquier transacción que ocurra entre el 2 y el 8 de enero (sin incluir el mismo 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:
Se utilizan el mismo conjunto de datos y escenario que en el primer ejemplo.
La creación de un campo, in_week_to_date, que determina qué transacciones se realizaron en la semana hasta el 14 de enero de 2022.
La creación de un campo adicional, llamado weekday, usando la función weekday(). Este se crea para mostrar qué día de la semana corresponde a cada fecha.
En este ejemplo, consideramos el lunes como primer día de la semana.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
date
week_day
in_week_to_date
Tabla de resultados
date
week_day
in_week_to_date
2022-01-02 12:22:06
Dom
0
2022-01-05 01:02:30
Mié
0
2022-01-06 15:36:20
Jue
0
2022-01-08 10:58:35
Sáb
0
2022-01-09 08:53:32
Dom
0
2022-01-10 21:13:01
Lun
-1
2022-01-11 00:57:13
Mar
-1
2022-01-12 09:26:02
Mié
-1
2022-01-13 15:05:09
Jue
-1
2022-01-14 18:44:57
Vie
-1
2022-01-15 06:10:46
Sáb
0
2022-01-16 06:39:27
Dom
0
2022-01-17 10:44:16
Lun
0
2022-01-18 18:48:17
Mar
0
2022-01-26 04:36:03
Mié
0
2022-01-27 08:07:49
Jue
0
2022-01-28 12:24:29
Vie
0
2022-01-30 11:56:56
Dom
0
2022-01-30 14:40:19
Dom
0
2022-01-31 05:28:21
Lun
0
Utilizando 0 como el argumento de first_week_day en la función inweektodate(), 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 14 de enero arrojará un resultado booleano de TRUE, mientras que las transacciones con fechas fuera de estos límites arrojarán un valor de FALSE.
Ejemplo 4: 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 determina qué transacciones se realizaron en la semana hasta el 14 de enero de 2022 se crea como una medida en el objeto gráfico.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión: date.
Para calcular si las transacciones se realizaron en la misma semana hasta el 14 de enero, cree la siguiente medida:
=inweektodate(date,'01/14/2022',0)
Para mostrar qué día de la semana corresponde a cada fecha, cree una medida adicional:
=weekday(date)
Tabla de resultados
date
week_day
in_week_to_date
2022-01-02 12:22:06
Dom
0
2022-01-05 01:02:30
Mié
0
2022-01-06 15:36:20
Jue
0
2022-01-08 10:58:35
Sáb
0
2022-01-09 08:53:32
Dom
-1
2022-01-10 21:13:01
Lun
-1
2022-01-11 00:57:13
Mar
-1
2022-01-12 09:26:02
Mié
-1
2022-01-13 15:05:09
Jue
-1
2022-01-14 18:44:57
Vie
-1
2022-01-15 06:10:46
Sáb
0
2022-01-16 06:39:27
Dom
0
2022-01-17 10:44:16
Lun
0
2022-01-18 18:48:17
Mar
0
2022-01-26 04:36:03
Mié
0
2022-01-27 08:07:49
Jue
0
2022-01-28 12:24:29
Vie
0
2022-01-30 11:56:56
Dom
0
2022-01-30 14:40:19
Dom
0
2022-01-31 05:28:21
Lun
0
El campo in_week_to_date se crea como una medida usando la función inweektodate(). El primer argumento proporcionado identifica qué campo se está evaluando. El segundo argumento es una fecha codificada para el 14 de enero, que es la base_date que identifica qué semana segmentar y define el límite final de ese segmento. Un period_no de 0 es el argumento final, lo que significa que la función no compara las semanas que preceden o siguen a la semana segmentada.
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 siguiente diagrama, siendo las fechas entre el 9 y el 14 de enero el período válido para el cálculo de inweekdodate():
Cualquier transacción que ocurra entre el 9 y el 14 de enero devuelve un resultado booleano de TRUE. Las transacciones anteriores y posteriores a las fechas devuelven un resultado booleano de FALSE.
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.
Información sobre la identificación del producto, la fecha de fabricación y el 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. El problema se resolvió el 13 de enero. Al usuario final le gustaría tener un objeto gráfico que muestre, por semana, si los productos fabricados son "defectuosos" o "sin defectos", y el costo de los productos fabricados en esa semana.
La función inweektodate() devuelve un valor booleano al evaluar las fechas de fabricación de cada uno de los productos. Para aquellos que devuelven un valor booleano de TRUE, marca los productos como 'Defective'. Para cualquier producto que devuelva un valor de FALSE, y por tanto no realizados en el trimestre hasta el 12 de mayo inclusive, marca los productos como ‘Faultless’.
¿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.