Calendario Maestro para obtener todos los días transcurridos

    Algunas veces es necesario mostrar valores cero en series de tiempo, para mostrar, 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 segunda tabla que llamaremos CalendarioMaestro que contenga todas las fechas calendarios desde la fecha mínima hasta la máxima, es decir con las fechas del 1,2,3,4,5,6,7,8,9 y 10 de enero.

     

    Para crear esta tabla usamos un Scrip 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 campo en CalendarioMaestro, como Mes y Trimestre,  agregar otras líneas en el paso 4, definiendo la varieble como:

    Month(IterNo()+$(vMin)-1) as Mes

    Ceil(Month(IterNo()+$(vMin)-1)/3) as Trimestre

    En Qlikview no existe método para borrar variables, puede usarse LET vMax=; o LET vMax=Null();

     

    Referencias

    http://www.youtube.com/watch?v=ScdIQvWzVFs

    http://www.youtube.com/watch?v=j4qLjDJ6US4