6 Replies Latest reply: Jan 23, 2014 2:09 PM by Mario Ibarra RSS

    Suma ignorando selección actual

      Hola,

      Antes que nada debo informar que soy nuevo en este mundo de QlikView y por eso debo recurrir a que me ayuden con una duda que tengo:

      Me llego un documento que posee las siguientes variables configuradas:

      vToday
      vDiaHoy 01/05/2013
      vStartDate 03/05/2010
      vEndDate 13/05/2013
      vLastWeek =$(vHoy)-8
      vYesterday =$(vHoy)-2
      vHoy 41660
      vLastMonth =$(vHoy)-30
      vLasQuarter =$(vHoy)-90
      vLastYear =$(vHoy)-365
      vLastMonth2 =MonthName(AddMonths(vHoy, -2))
      vLastMonth3 =MonthName(AddMonths(vHoy, -3))
      vLastMonth4 =MonthName(AddMonths(vHoy, -4))
      vLastMonth5 =MonthName(AddMonths(vHoy, -5))
      vLastMonth6 =MonthName(AddMonths(vHoy, -6))
      vLastMonth1 =MonthName(AddMonths(vHoy, -1))
      

       

      Y se hace una carga de la siguiente manera:

       

      cases:
      //First 1000
      LOAD 1 as CaseCounter,
           CASE_NUMBER, 
           CONDITION,
           CLOSE_DATE,
           CREATE_DATE,
           if (floor(CREATE_DATE)=floor(CLOSE_DATE), 1, 0 ) as SameDay,
           MonthName(CREATE_DATE) as MesAño,
           Month (CREATE_DATE) as MesInicio,
           Month (CLOSE_DATE) as MesFin,
           year (CREATE_DATE) as AñoInicio,
           year (CLOSE_DATE) as AñoFin,
           floor(CLOSE_DATE) as Dia,
           floor (CREATE_DATE) as DiaInicio,
           floor (CLOSE_DATE) as DiaFin
      from $(vPath)Datos\cases.qvd (qvd)
      

       

      CASE_NUMBERCREATED_DATECLOSED_DATECONDITION
      11202-Dec-201303-Dec-2013CLOSED
      113

      06-Dec-2013

      OPEN
      11413-Nov-201308-Dec-2013CLOSED
      11518-Dec-201305-Jan-2014CLOSED

       

      La pregunta es, teniendo seleccionado el MesFin (CLOSE_DATE) como hago para sumar en un objeto distinto los casos que solo fueron creados en el mes de diciembre?

       

      P.D.: Estuve leyendo sobre Set Analysis, pero hay cosas que no comprendo por el momento...

        • Re: Suma ignorando selección actual
          Carlos Reyes

          Hola,

           

          Efectivamente con Set Analysis puedes lograr tu objetivo.

           

          Intenta con la siguiente expresión:

           

          Sum(  {$<MesFin=, MesInicio={'Dic'}>} CaseCounter)

           

          Con esta expresión ignoras la selección que hagas en el campo MesFin y solo cuentas los casos cuya fecha de creación es Diciembre o Dic. Si necesitas ignorar otros campos tienes que agregarlos con el nombre del campo y una coma, algo como esto:

           

          Sum(  {$<MesFin=, CampoaIgnorar2=, CampoaIgnorar3=, MesInicio={'Dic'}>} CaseCounter)

            • Re: Suma ignorando selección actual

              Carlos, muchas gracias por responderme...

               

              Mira, la formula que estaba en el documento original era:

              =sum({<Condition={'CLOSED'}, MesAño ={'$(=vLastMonth1)'}>}CaseCounter)

               

              Ahora no se porque esta suma no me da el resultado real, me da un numero que no corresponde.

               

              La suma que me has enviado me da valor 0 (cero) como resultado.

                • Re: Suma ignorando selección actual
                  Carlos Reyes

                  Mario,

                   

                  En ese caso, cómo se llama el campo donde haces selecciones? Porque está fórmula muestra el número de Casos Cerrados para el mes anterior a Enero 2014 (porque la variable vLastMonth1 se calcula con base en la variable vHoy, la cual trae hardcodeada la fecha del 21 de Enero de 2014 ). Sin embargo si haces selecciones en algún campo está fórmula ya no será exacta.

                   

                  No sé cómo esté tu aplicación pero no recomiendo hardcodear ese tipo de variables porque limitan la forma en que se puede realizar el análisis. No obstante, me imagino que si estás seleccionado valores en el campo MesInicio, entonces ese campo es el que debemos ignorar, sería algo como:

                   

                  =sum({<Condition={'CLOSED'}, MesAño ={'$(=vLastMonth1)'}, MesInicio=>}CaseCounter)


                  Espero que ayude, sino será más fácil que subas un ejemplo de tu app para entender mejor las circunstancias.