Esta función determina si timestamp se encuentra dentro de la semana lunar que contiene a base_date. Las semanas lunares en Qlik Sense se definen contando el 1 de enero como el primer día de la semana. Aparte de la última semana del año, cada semana contendrá 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 inlunarweek() determina en qué semana lunar cae base_date. Luego devuelve un resultado booleano una vez que ha determinado si cada valor de marca de tiempo ocurre durante la misma semana lunar que el base_date.
Cuándo se utiliza
La función inlunarweek() devuelve un resultado booleano. Normalmente, este tipo de función se utiliza como condición en una expresión condicional. Esto devolvería una agregación o cálculo dependiendo de si la fecha evaluada ocurrió durante la semana lunar en cuestión.
Por ejemplo, la función inlunarweek() se puede utilizar para identificar todos los equipos fabricados en una determinada semana lunar.
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.
Ejemplos de funciones
Ejemplo
Resultado
inlunarweek('01/12/2013', '01/14/2013',
0)
Devuelve TRUE, porque el valor de timestamp, 01/12/2013, cae en la semana del 01/08/2013 al 01/14/2013.
inlunarweek('01/12/2013', '01/07/2013',
0)
Devuelve FALSE, porque la base_date01/07/2013 está en la semana lunar definida como de 01/01/2013 a 01/07/2013.
inlunarweek('01/12/2013', '01/14/2013',
-1)
Devuelve FALSE. Especificar un valor de period_no como -1 cambia la semana a la semana anterior, del 01/01/2013 al 01/07/2013.
inlunarweek('01/07/2013', 01/14/2013',
-1)
Devuelve TRUE. Comparado con el ejemplo anterior, la fecha-hora timestamp está en la semana posterior a tenerse en cuenta el desplazamiento hacia atrás.
inlunarweek('01/11/2006', '01/08/2006',
0, 3)
Devuelve FALSE. Especificar un valor de 3 para first_week_day significa que el inicio del año se calcula a partir del 01/04/2013. Por lo tanto, el valor de base_date cae en la primera semana y el valor de timestamp cae en la semana del 01/11/2013 al 01/17/2013.
La función inlunarweek() 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.
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 su navegador.
Ejemplo 1: 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 de transacciones en el mes de enero, que se carga en una tabla denominada Transactions.
El campo de fecha se ha proporcionado en el formato (MM/DD/AAAA) de la variable del sistema DateFormat.
Cree un campo, in_lunar_week, que determine si las transacciones tuvieron lugar en la misma semana lunar que el 10 de enero.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
date
in_lunar_week
Tabla de resultados
date
in_lunar_week
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
El campo in_lunar_week se crea en la instrucción load anterior utilizando la función inlunarweek() e insertando lo siguiente como argumentos de la función:
El campo date
Una fecha codificada para el 10 de enero como base_date
Un period_no de 0
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 y finaliza el 14 de enero. 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 a una nueva pestaña.
El script de carga contiene:
Se utilizan el mismo conjunto de datos y escenario que en el primer ejemplo.
El campo de fecha se ha proporcionado en el formato de la variable del sistema DateFormat (MM/DD/AAAA).
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 lunares después del 10 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
date
2_lunar_weeks_later
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
0
1/9/2022
0
1/10/2022
0
1/11/2022
0
1/12/2022
0
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
-1
1/23/2022
-1
En este caso, debido a que se utilizó un period_no de 2 como argumento del desplazamiento en la función inlunarweek(), la función define la semana que comienza el 22 de enero como la semana lunar con la que contrastar para validar las transacciones. Por lo tanto, cualquier transacción que ocurra entre el 22 de enero y el 28 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 en una nueva pestaña.
El script de carga utiliza el mismo conjunto de datos y escenario que el primer ejemplo. Sin embargo, en el ejemplo, establecimos que las semanas lunares comiencen el 6 de enero.
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_day de 5. Esto establece que las semanas lunares comiencen el 5 de enero.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
date
in_lunar_week
Tabla de resultados
date
in_lunar_week
1/5/2022
0
1/6/2022
-1
1/7/2022
-1
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
En este caso, debido a que el argumento first_week_date de 5 se usa en la función inlunarweek(), se desplaza el inicio del calendario de la semana lunar al 6 de enero. Por lo tanto, el 10 de enero cae dentro de la semana lunar que comienza el 6 de enero y finaliza el 12 de enero. Cualquier transacción que se encuentre entre estas dos fechas devolverá un valor booleano de TRUE.
Ejemplo 4: Objeto gráfico
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.
El campo de fecha se ha proporcionado en el formato de la variable del sistema DateFormat (MM/DD/AAAA).
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 misma semana lunar del 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.
Para calcular si una transacción tiene lugar en la semana lunar que contiene el 10 de enero, cree la siguiente medida:
= inlunarweek(date,'01/10/2022', 0)
Tabla de resultados
date
=inlunarweek(date,'01/10/2022', 0)
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
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 que englobaba al 12 de enero eran defectuosos. Al usuario final le gustaría tener un objeto gráfico que muestre, por nombre de semana lunar, el estado de los productos fabricados, si eran "defectuosos" o "sin defectos" y el coste de los productos fabricados en ese mes.
La función inlunarweek() devuelve un valor booleano al evaluar las fechas de fabricación de cada uno de los productos. Para cualquier producto fabricado en la semana lunar que contiene el 10 de enero, la función inlunarweek() devuelve un valor booleano de TRUE y marca los productos como "defectuosos". 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.