15 de diciembre de 2013

Calendario Maestro

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:
Factable_1.jpg


Cuando en realidad necesitamos un gráfico con todos los días transcurridos:
Factable__3.jpg

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;  

//  Paso 6:
LET vMin=;LET vMax=;


El visor de tablas quedaría así:
Factable__2.jpg
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:

RG dijo...

Y si quieres que la fecha tenga la hora?
hh:mm:ss ?

Cómo se haría??

Muchas gracias y enhorabuena por tu blog