Esta función devuelve una fecha calculada a partir del año YYYY, la semana WW y el día de la semana D.
Sintaxis:
MakeWeekDate(YYYY [ , WW [ , D ] ])
Tipo de datos que devuelve: dual
La función makeweekdate() está disponible tanto como función de script como de gráfico. La función calculará la fecha en función de los parámetros indicados en la función. Si se omite el parámetro del día de la semana, la función devolverá la fecha del lunes de esa semana.
La función makeweekdate() no considera las variables BrokenWeek, ReferenceDay o FirstWeekDay del sistema. La semana 1 comienza el primer lunes de enero. Por ejemplo, en 2022, la semana 1 comienza el 3 de enero.
Argumentos
Argumento
Descripción
YYYY
El año como un entero.
WW
La semana como un entero.
La semana puede ser positiva o negativa, y puede ser mayor que 52 para devolver fechas en diferentes años.
D
El día de la semana como un entero.
Si no se especifica día de la semana alguno, se presupone 0 (Lunes). Los días restantes de la semana se asignan de la siguiente manera: 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.
Cuándo se utiliza
La función makeweekdate() se utiliza normalmente en el script para generación de datos, para generar una lista de fechas o para crear fechas cuando el año, la semana y el día de la semana se proporcionan en los datos de entrada.
Ejemplos de funciones
Ejemplo
Resultado
makeweekdate(2014,6,6)
devuelve 02/09/2014
makeweekdate(2014,6,1)
devuelve 02/04/2014
makeweekdate(2014,6)
devuelve 02/03/2014 (se presupone el día 0 de la semana)
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: día incluido
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 el total de ventas semanales para 2022 en una tabla llamada Sales.
Fechas de transacción proporcionadas en tres campos: year, week y sales.
Una instrucción load anterior, que se utiliza para crear una medida end_of_week, utilizando la función makeweekdate() para devolver la fecha del viernes de esa semana en el formato MM/DD/AAAA.
Para probar que la fecha devuelta es un viernes, la expresión end_of_week también se incluye en la función weekday() para mostrar el día de la semana.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
transaction_year
transaction_week
end_of_week
week_day
Tabla de resultados
transaction_year
transaction_week
end_of_week
week_day
2022
01
01/07/2022
Vie
2022
02
01/14/2022
Vie
2022
03
01/21/2022
Vie
2022
04
01/28/2022
Vie
2022
05
02/04/2022
Vie
2022
06
02/11/2022
Vie
2022
07
02/18/2022
Vie
El campo end_of_week se crea en la instrucción de carga anterior mediante el uso de la función makeweekdate(). Los campos transaction_year, transaction_week se indican mediante la función como argumentos de año y semana. Se utiliza un valor de 4 para el argumento del día.
Luego la función combina y convierte estos valores en un campo de fecha, devolviendo los resultados en el formato de la variable del sistema DateFormat.
La función makeweekdate() y sus argumentos también van dentro de una función weekday() para devolver el campo week_day; y como se puede ver en la tabla anterior, el campo week_day muestra que estas fechas ocurren un viernes.
Ejemplo 2: día excluido
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 los totales de ventas semanales para 2022 en una tabla llamada Sales.
Fechas de transacción proporcionadas en tres campos: year, week y sales.
Un load anterior, que se utiliza para crear una medida, first_day_of_week, utilizando la función makeweekdate(). Esto devolverá la fecha del lunes de esa semana en el formato MM/DD/AAAA.
Para probar que la fecha devuelta es un lunes, la expresión first_day_of_week también se incluye en la función weekday() para mostrar el día de la semana.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
transaction_year
transaction_week
first_day_of_week
week_day
Tabla de resultados
transaction_year
transaction_week
first_day_of_week
week_day
2022
01
01/03/2022
Lun
2022
02
01/10/2022
Lun
2022
03
01/17/2022
Lun
2022
04
01/24/2022
Lun
2022
05
01/31/2022
Lun
2022
06
02/07/2022
Lun
2022
07
02/14/2022
Lun
El campo first_day_of_week se crea en la instrucción de carga anterior mediante el uso de la función makeweekdate(). Los parámetros transaction_year y transaction_week se indican como argumentos de la función y el parámetro del día se deja en blanco.
Luego la función combina y convierte estos valores en un campo de fecha, devolviendo los resultados en el formato de la variable del sistema DateFormat.
La función makeweekdate() y sus argumentos también van incluidos en una función weekday() que devuelve el campo week_day. Como se puede ver en la tabla anterior, el campo week_day muestra que estas fechas ocurren efectivamente un lunes (aunque la variable FirstWeekDay establece el domingo como el primer día de la semana), porque el parámetro de día en la función makeweekdate() se dejó en blanco.
Ejemplo 3: ejemplo de 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:
Un conjunto de datos que contiene los totales de ventas semanales para 2022 en una tabla llamada Sales.
Fechas de transacción proporcionadas en tres campos: year, week y sales.
En este ejemplo, se usará un objeto gráfico para crear una medida equivalente al cálculo de end_of_week del primer ejemplo. Esta medida utilizará la función makeweekdate() para devolver la fecha del viernes de esa semana en el formato MM/DD/AAAA.
Para demostrar que la fecha devuelta es un viernes, se crea una segunda medida que devuelve el día de la semana.
Se crea un campo equivalente a end_of_week en el objeto gráfico como medida usando la función makeweekdate(). Los campos transaction_year y transaction_week se indican como argumentos de año y semana. Se utiliza un valor de 4 para el argumento del día.
Luego la función combina y convierte estos valores en un campo de fecha, devolviendo los resultados en el formato de la variable del sistema DateFormat.
La función makeweekdate() y sus argumentos también van incluidos en una función weekday() que devuelve un cálculo equivalente al del campo week_day del primer ejemplo. Como se puede ver en la tabla anterior, la última columna de la derecha muestra que estas fechas ocurren en viernes.
Ejemplo 4: Escenario
Vista general
En este ejemplo, cree una lista de fechas que contenga todos los viernes del año 2022.
Abra el editor de carga de datos y agregue el script de carga a continuación, en una nueva pestaña.
Script de carga
SET DateFormat='MM/DD/YYYY';
Calendar:
load
*,
weekday(date) as weekday
where year(date)=2022;
load
makeweekdate(2022,recno()-2,4) as date
AutoGenerate 60;
Resultados
Tabla de resultados
date
weekday
01/07/2022
Vie
01/14/2022
Vie
01/21/2022
Vie
01/28/2022
Vie
02/04/2022
Vie
02/11/2022
Vie
02/18/2022
Vie
02/25/2022
Vie
03/04/2022
Vie
03/11/2022
Vie
03/18/2022
Vie
03/25/2022
Vie
04/01/2022
Vie
04/08/2022
Vie
04/15/2022
Vie
04/22/2022
Vie
04/29/2022
Vie
05/06/2022
Vie
05/13/2022
Vie
05/20/2022
Vie
05/27/2022
Vie
06/03/2022
Vie
06/10/2022
Vie
06/17/2022
Vie
+ 27 filas más
La función makeweekdate() encuentra cada viernes de 2022. Usar un parámetro de semana de -2 garantiza que no se pierda ninguna fecha. Por último, una instrucción load anterior crea un campo weekday adicional para mayor claridad, para mostrar que cada valor de date es un viernes.
¿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.