inlunarweektodate - función de script y de gráfico
Esta función halla si timestamp se encuentra dentro de la parte de la semana lunar hasta e incluido el último milisegundo de base_date. Las semanas lunares en Qlik Sense se definen contando el 1 de enero como el primer día de la semana y, aparte de la última semana del año, contendrán exactamente siete días.
En Qlik Sense, el valor booleano verdadero viene representado por -1 y el valor falso está representado por 0.
La función inlunarweektodate() actúa como punto final de la semana lunar. A diferencia de esta, la función inlunarweek() determina en qué semana lunar cae base_date. Por ejemplo, si la fecha base_date fuera el 5 de enero, cualquier fecha-hora entre el 1 y el 5 de enero arrojaría un resultado booleano de TRUE, mientras que las fechas del 6 y 7 de enero y posteriores arrojarían un resultado booleano de FALSE.
Argumentos
Argumento
Descripción
timestamp
La fecha que desea comparar con base_date.
base_date
La fecha que se utiliza para evaluar la semana lunar.
period_no
La semana lunar puede desplazarse mediante period_no; period_no es un entero, en el que el valor 0 indica la semana lunar que contiene a base_date. Los valores negativos en period_no indican semanas lunares precedentes y los valores positivos indican semanas lunares subsiguientes.
first_week_day
Un desplazamiento que puede ser mayor que o menor que cero. Esto cambia el comienzo del año por el número especificado de días y/o fracciones de un día.
Cuándo se utiliza
La función inlunarweektodate() devuelve un resultado booleano. Normalmente, este tipo de función se utiliza como condición en una expresión condicional. La función inlunarweektodate() se utilizará cuando el usuario quiera que el cálculo devuelva una agregación o un cálculo, dependiendo de si la fecha evaluada ocurrió durante un segmento particular de la semana en cuestión.
Por ejemplo, la función inlunarweektodate() se puede utilizar para identificar todos los equipos fabricados en una determinada semana hasta e incluida una fecha en particular.
Ejemplos de funciones
Ejemplo
Resultado
inlunarweektodate('01/12/2013', '01/13/2013',
0)
Devuelve TRUE, porque el valor de timestamp, 01/12/2013, cae en la parte de la semana del 01/08/2013 al 01/13/2013.
inlunarweektodate('01/12/2013', '01/11/2013',
0)
Devuelve FALSE, porque el valor de timestampes posterior al valor de base_date, aunque las dos fechas están en la misma semana lunar anterior a 01/12/2012.
inlunarweektodate('01/12/2006', '01/05/2006',
1)
Devuelve TRUE. Especificar un valor de 1 para period_no desplaza a base_date una semana hacia delante, de modo que el valor de timestamp cae en la parte de la semana lunar.
La función inlunarweektodate() se utiliza a menudo en combinación con las siguientes funciones:
Esta función sirve para indicar el número de semana lunar del año en el que ocurre una fecha de entrada.
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.
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, el cual se carga en una tabla denominada Transactions. Se utiliza la variable predefinida del sistema DateFormat: MM/DD/AAAA.
Cree un campo, in_lunar_week_to_date, que determine qué transacciones se realizaron en la semana lunar hasta la fecha del 10 de enero.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
date
in_lunar_week_to_date
Tabla de resultados
fecha
in_lunar_week_to_date
1/1/2022
0
1/4/2022
0
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
El campo in_lunar_week_to_date se crea en la sentencia load anterior utilizando la función inlunarweektodate() e introduciendo el campo date, una marca de tiempo codificada para el 10 de enero como nuestra base_date y un desplazamiento de 0 como argumentos de la función.
Debido a que las semanas lunares comienzan el 1 de enero, el 10 de enero caería en la semana lunar que comienza el 8 de enero; y debido a que estamos usando la función inlunarweektodate(), esa semana lunar terminaría el día 10. Por lo tanto, cualquier transacción que ocurra entre esas dos fechas en enero devolvería un valor booleano de TRUE. Esto se valida en la tabla de resultados.
Ejemplo 2: period_no
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, la tarea es crear un campo, 2_lunar_weeks_later, que determine si las transacciones se realizaron o no dos semanas después de la semana lunar hasta la fecha del 1 de enero.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
date
2_lunar_weeks_later
Tabla de resultados
fecha
2_lunar_weeks_later
1/1/2022
0
1/4/2022
0
1/10/2022
0
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
-1
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
En este caso, la función inlunarweektodate() determina que la semana lunar hasta el 10 de enero equivale a tres días (8, 9 y 10 de enero). Dado que se utilizó un period_no de 2 como argumento del desplazamiento, esta semana lunar se desplaza 14 días. Por lo tanto, esto define que la semana lunar de tres días incluye el 22, 23 y 24 de enero. Cualquier transacción que tenga lugar entre el 22 y el 24 de enero devolverá un resultado booleano de TRUE.
Ejemplo 3: 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.
Se utiliza la variable predefinida del sistema DateFormat: DD/MM/AAAA.
Un argumento first_week_date de 3. Esto establece que las semanas lunares comiencen el 3 de enero.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
date
in_lunar_week_to_date
Tabla de resultados
fecha
in_lunar_week_to_date
1/1/2022
0
1/4/2022
-1
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
En este caso, como se usa un argumento the first_week_date de 3 en la función inlunarweek(), la primera semana lunar será del 3 al 10 de enero. Debido a que el 10 de enero también es la base_date, cualquier transacción que se encuentre entre estas dos fechas devolverá un valor booleano de TRUE.
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 si las transacciones tuvieron lugar en la semana lunar hasta el 10 de enero 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 este campo como dimensión:date.
Cree la siguiente medida:
=inlunarweektodate(date,'01/10/2022', 0)
Tabla de resultados
fecha
=inlunarweektodate(date,'01/10/2022', 0)
1/1/2022
0
1/4/2022
0
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
La medida in_lunar_week_to_date se crea en el objeto gráfico utilizando la función inlunarweektodate() e introduciendo el campo de fecha, una marca de tiempo codificada para el 10 de enero como base_date y un desplazamiento de 0 como argumentos de la función.
Como las semanas lunares comienzan el 1 de enero, el 10 de enero caería en la semana lunar que comienza el 8 de enero. Además, como estamos usando la función inlunarweektodate(), esa semana lunar terminaría el día 10. Por lo tanto, cualquier transacción que ocurra entre esas dos fechas en enero devolvería un valor booleano de TRUE. Esto se valida en la tabla de resultados.
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 que consiste en la identificación del producto, la fecha de fabricación y el precio de fabricación.
Se ha identificado que, debido a un error en el equipo, los productos que se fabricaron en la semana lunar 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, el estado de los productos fabricados, si son "defectuosos" o "sin defectos", y el costo de los productos fabricados en esa semana.
Cargue los datos y abra una hoja. Cree una nueva tabla.
Cree una dimensión para mostrar los nombres de las semanas:
=weekname(manufacture_date)
A continuación, cree una dimensión que utilice la función inlunarweektodate() para identificar cuáles de los productos son defectuosos y cuáles son sin defectos:
La función inlunarweektodate() 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 la semana lunar hasta el 12 de enero inclusive, marca los productos como Sin defectos (‘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.