Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Problema con sentencia IF combinada con Set Analisys

Buen día estimados colegas del QV Community

Tengo el siguiente problema, tengo una tabla pivotante (Ver adjunto de la imagen), en la cual tengo una dimensión por grupo cíclico con tres campos (Region, Sucurzal y Linea) , adicionalmente tengo una dimensión de un campo (_Etiqueta) que hace parte de una tabla isla con tres registros (Ventas, Presupuesto y Diferencia), esto con el fin de poder lograr lo que ven en la imagen, tener en columnas los títulos de las expresiones (Ventas, Presupuesto y diferencia) y en las columnas la instancia en el tiempo de la expresión (Cierre, Act MTD, Act MTD Año Anterior ).

  • Cierre día 09/04/2014 --> Ventas, Presupuesto y Diferencia al día de ayer
  • Act MTD 04/14 --> Ventas, Presupuesto y Diferencia acumulados en el mes del día hasta ayer
  • Act MTD Año Anterior 04/13 --> Ventas, Presupuesto y Diferencia acumulados en el mes del día hasta ayer en el año anterior
  • Var ACT MTD Año Anterior --> Variación entre las dos anteriores columnas
  • YTD 14 --> Acumulado YTD en el año actual
  • YTD 13 --> Acumulado YTD en el año anterior
  • Var ACT YTD Año Anterior -> Variación entre las dos anteriores columnas

Bajo este escenario, tengo el problema que ven resaltado en amarillo en la imagen, el cual se presenta por que en el año 2014 mes Abril, donde no existe Ventas y Presupuesto para la Línea M&MS, razón por la cual no presenta información para Cierre día y Act MTD, pero debe presentar la información del Año Anterior (Act MTD Año Anterior 04/13) que hay si tiene datos, si observan es como si la sentencia IF no actuara y solo realizara el calculo de la diferencia

Captura.PNG.png

Adjunto la formula usada para Act MTD Año Anterior 04/13

If(_Etiqueta ='Ventas',

Money(

Sum({<Año_Calendario = {$(=if(GetSelectedCount(Año_Calendario) + GetSelectedCount(Mes_Calendario) + GetSelectedCount(Dia_Calendario) + GetSelectedCount(PeriodoJJ) =0, Year(Today()), Max(Año_Calendario)))}

      >} ValorDS

    )/1000000

       ),

If(_Etiqueta ='Presupuesto', 

   Money(

Sum({<Año_Calendario = {$(=if(GetSelectedCount(Año_Calendario) + GetSelectedCount(Mes_Calendario) + GetSelectedCount(Dia_Calendario) + GetSelectedCount(PeriodoJJ) =0, Year(Today())-1, Max(Año_Calendario)-1))}

      >} presupuesto_General

    )/1000000

       ),

     Num(

  (

  Sum({<Año_Calendario = {$(=if(GetSelectedCount(Año_Calendario) + GetSelectedCount(Mes_Calendario) + GetSelectedCount(Dia_Calendario) + GetSelectedCount(PeriodoJJ) =0, Year(Today())-1, Max(Año_Calendario)-1))}

      >} ValorDS

    )

    /

Sum({<Año_Calendario = {$(=if(GetSelectedCount(Año_Calendario) + GetSelectedCount(Mes_Calendario) + GetSelectedCount(Dia_Calendario) + GetSelectedCount(PeriodoJJ) =0, Year(Today())-1, Max(Año_Calendario)-1))}

      >} presupuesto_General

    )

  )-1 

       ,'#.##0,00%')

    )

    )     

1 Solution

Accepted Solutions
Not applicable
Author

Ya resolví el problema, con la colaboración de Miguel Angel Garcia de QlikFix, cambiando la sentencia IF de la siguiente manera

  • Antigua forma: "If(_Etiqueta = ,"
  • Nueva forma     "if(MaxString(Total <_Etiqueta> _Etiqueta) ="

View solution in original post

1 Reply
Not applicable
Author

Ya resolví el problema, con la colaboración de Miguel Angel Garcia de QlikFix, cambiando la sentencia IF de la siguiente manera

  • Antigua forma: "If(_Etiqueta = ,"
  • Nueva forma     "if(MaxString(Total <_Etiqueta> _Etiqueta) ="