Algunas veces es necesario mostrar valores cero en series de tiempo, para visualizar, por ejemplo, los días sin venta. Al cargar los datos en Qlikview obtenemos lo siguiente:
Cuando en realidad necesitamos un gráfico con todos los días transcurridos:
Para esto creamos una tabla Calendario Maestro (o master calendar) que contenga desde la fecha mínima hasta la máxima, con los siguientes pasos:
Paso 1: Cargar FactTable
Paso 2: Crear una tabla con dos campos que contenga únicamente la fecha mínima y máxima del campo Fecha de la FactTable
Paso 3: Crear dos variables con las fechas máximas y mínimas
Paso 4: Crear la tabla CalendarioMaestro que contenga todas las fechas
Paso 5: Borrar la tabla utilizada para asignar las variables con fechas máximas y mínimas
Paso 6: Borrar las variables vMin y vMax utilizada para indicar inicio y fin del CalendarioMaestro.
// Paso 1:
FactTable:
LOAD * INLINE [
Fecha, Venta
01/01/2013,93
02/01/2013,62,
08/01/2013,39,
09/01/2013,94
10/01/2013,63];
// Paso 2:
TablaMinMax:
LOAD
min(Fecha) as FechaMin,
max(Fecha) as FechaMax
Resident FactTable;
//Paso3:
LET vMin=num(Peek('FechaMin',0,'TablaMinMax'));
LET vMax=num(Peek('FechaMax',0,'TablaMinMax'));
// Paso 4:
CalendarioMaestro:
LOAD
Date(IterNo()+$(vMin)-1) as Fecha
AutoGenerate 1 While IterNo()+$(vMin)-1<=$(vMax);
// Paso 5:
DROP Table TablaMinMax;
FactTable:
LOAD * INLINE [
Fecha, Venta
01/01/2013,93
02/01/2013,62,
08/01/2013,39,
09/01/2013,94
10/01/2013,63];
// Paso 2:
TablaMinMax:
LOAD
min(Fecha) as FechaMin,
max(Fecha) as FechaMax
Resident FactTable;
//Paso3:
LET vMin=num(Peek('FechaMin',0,'TablaMinMax'));
LET vMax=num(Peek('FechaMax',0,'TablaMinMax'));
// Paso 4:
CalendarioMaestro:
LOAD
Date(IterNo()+$(vMin)-1) as Fecha
AutoGenerate 1 While IterNo()+$(vMin)-1<=$(vMax);
// Paso 5:
DROP Table TablaMinMax;
// Paso 6:
LET vMin=;LET vMax=;
El visor de tablas quedaría así:
Luego se agrega un gráfico de líneas con la dimensión Fecha y expresión Sum(Venta).
Después ir a Propiedades del gráfico, pestaña Presentación y se desmarca la opción Suprimir Valores Cero.
NOTAS:
Para crear otro campos Mes y Trimestre, agregar otras líneas en el paso 4:
Month(IterNo()+$(vMin)-1) as Mes
Ceil(Month(IterNo()+$(vMin)-1)/3) as Trimestre
Referencias
1 comentario:
Y si quieres que la fecha tenga la hora?
hh:mm:ss ?
Cómo se haría??
Muchas gracias y enhorabuena por tu blog
Publicar un comentario