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.
Argumentos
Argumento
Descripción
weekyear
El año definido por la función WeekYear() para la fecha específica, es decir, el año al que pertenece el número de semana.
Nota informativaEn algunos casos, el año de la semana puede ser diferente del año natural, por ejemplo, si la semana 1 ya comienza en diciembre del año anterior.
week
El número de semana definido por la función Week() para la fecha específica.
Si no se indica el número de semana, se presupone 1.
weekday
El día de la semana definido por la función WeekDay() para la fecha en cuestión. 0 es el primer día de la semana y 6 es el último día de la semana.
Si no se indica el día de la semana, se presupone 0.
Nota informativaAunque 0 siempre significa el primer día de la semana y 6 siempre es el último, a qué día de la semana corresponde el parámetro first_week_day . Si se omite, se utiliza el valor de la variable FirstWeekDay.
Si se utilizan semanas interrumpidas, junto con una combinación imposible de parámetros, esto puede llevar a un resultado que no corresponde al año elegido.
Ejemplo:
MakeWeekDate(2021,1,0,6,1)
Devuelve "27 de diciembre de 2020" ya que este día es el primer día (el domingo) de la semana especificada. El 1 de enero de 2021 fue viernes.
first_week_day
Especifica el día en el que se inicia la semana. Si se omite, se utiliza el valor de la variable FirstWeekDay.
Los valores posibles de first_week_day son 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.
Para más información sobre la variable del sistema, vea FirstWeekDay.
broken_weeks
Si no se especifica broken_weeks, el valor de la variable BrokenWeeks se usará para definir si las semanas se rompen o no.
Para más información sobre la variable del sistema, vea BrokenWeeks
reference_day
Si no especifica reference_day, el valor de la variable ReferenceDay se utilizará para definir qué día de enero establecer como día de referencia para definir la semana 1.
Para más información sobre la variable del sistema, vea ReferenceDay
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.
Los siguientes ejemplos suponen:
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
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 en 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.
Script de carga
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Transactions:
Load
*,
makeweekdate(transaction_year, transaction_week,4) as end_of_week,
weekday(makeweekdate(transaction_year, transaction_week,4)) as week_day
;
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Resultados
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 load 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.
Script de carga
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Transactions:
Load
*,
makeweekdate(transaction_year, transaction_week) as first_day_of_week,
weekday(makeweekdate(transaction_year, transaction_week)) as week_day
;
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Resultados
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 devuelve el lunes en todos los casos, ya que ese parámetro se dejó en blanco en la función makeweekdate(), que por defecto es 0 (primer día de la semana), y el sistema establece el lunes como primer día de la semana en la variable de sistema FirstWeekDay.
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.
Script de carga
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Master_Calendar:
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Resultados
Haga lo siguiente:
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
transaction_year
transaction_week
Para realizar el cálculo equivalente al del campo end_of_week del primer ejemplo, cree la siguiente medida:
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';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
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.