Codigo DAX

Etiquetado: 

  • alainlugo
    Participante

      Estimados, escribo en esta oportunidad ya que tengo una duda con un código DAX, en el cual estoy calculando el numero de clientes nuevos, recurrentes y perdidos, todo va bien cuando hago la comparación año vs año, es decir enero 2020 vs enero 2021, el problema se me presenta cuando quiero hacer lo mismo pero el mismo año y comparar entre meses, es decir febrero 2021 vs enero 2021, he utilizado la opción DATEADD -1, month, pero me aparece un error.

      A continuación copio el código DAX para la comparación Año vs Año

      # Cliente Nuevos =

      VAR YearMax =

      MAX ( Calendario[Año] )

      VAR Clientes_2021 =

      CALCULATETABLE (

      SUMMARIZE ( BD_VENTAS, CLIENTES[CLIENTE] ),

      Calendario[Año] = YearMax

      )

      VAR Clientes_2020 =

      CALCULATETABLE (

      SUMMARIZE ( BD_VENTAS, CLIENTES[CLIENTE] ),

      Calendario[Año] = YearMax – 1

      )

      VAR Repiten =

      INTERSECT ( Clientes_2021, Clientes_2020 )

      VAR Nuevos =

      EXCEPT ( Clientes_2021, Clientes_2020 )

      VAR Perdidos =

      EXCEPT ( Clientes_2020, Clientes_2021 )

      RETURN

      COUNTROWS ( NUevos )

       

      Este es el código que he tratado de adaptar con la expresión DATEADD -1, month , para comparar mes vs mes anterior pero no he logrado la solución, si podrían ayudarme  lo agradecería mucho

    • dlom
      Participante

        Hola Alain! Solo que ¿cuál es el error que te está arrojando?

         

        Si puedes agregar screenshots, mucho mejor. Así puedo ver en dónde se presenta el error.

         

        Estoy atento,
        – Diego

        alainlugo
        Participante
          dlom dijo

          Hola Alain! Solo que ¿cuál es el error que te está arrojando?

           

          Si puedes agregar screenshots, mucho mejor. Así puedo ver en dónde se presenta el error.

           

          Estoy atento,
          – Diego

          Buen día Diego, gracias por la colaboración a mi duda, a continuación, comparto el screenshots

           

          DAX

           

          # 2 Cliente Recurrente Mes =
          VAR MesActual = MONTH(MAX(Calendario[Fecha]))
          VAR AActual = YEAR(MAX(Calendario[Fecha]))

          VAR Clientes_Actual = CALCULATETABLE(SUMMARIZE(Facturas, CLIENTES[CLIENTE]), MONTH(Calendario[Fecha]) = MesActual , YEAR(Calendario[Fecha]) = AActual)

          VAR Clientes_Anterior = CALCULATETABLE(SUMMARIZE(Facturas, CLIENTES[CLIENTE]), MONTH(DATEADD(Calendario[Fecha], -1, MONTH)) = MesActual , YEAR(DATEADD(Calendario[Fecha], -1, YEAR)) = AActual)

          VAR Repiten = INTERSECT(Clientes_Actual, Clientes_Anterior)
          VAR Nuevos = EXCEPT(Clientes_Actual, Clientes_Anterior)
          VAR Perdidos = EXCEPT(Clientes_Anterior, Clientes_Actual)
          RETURN
          COUNTROWS(Nuevos)

           

          Error: Se ha usado una función ‘DATEADD’ en una expresión True/False que se utiliza como expresión de filtro de tabla, lo que no está permitido.

          dlom
          Participante

            Vale, este error está diciendo que la función DATEADD la has usado como un parámetro en un lugar donde no te lo permite.

             

            ¿Por qué no lo permite?

            1. La función DATEADD devuelve una tabla con una columna de fechas (véase https://learn.microsoft.com/es-es/dax/dateadd-function-dax en el primero párrafo). Aquí puedes ver a qué me refiero con esto: https://youtu.be/9aJ0BDAnaDQ?t=546 y en https://www.datdata.com/products/certificacion-oficial-por-microsoft-de-power-bi/categories/3567095/posts/11921597 .
            2. La función MONTH y YEAR requieren una fecha, NO una tabla con fechas, para funcionar (véase https://learn.microsoft.com/es-es/dax/month-function-dax en la sección de parámetros).

             

            Entonces debes de buscar otra manera de regresar en el tiempo para el mes, que esta clase te puede orientar: https://www.datdata.com/products/certificacion-oficial-por-microsoft-de-power-bi/categories/3567095/posts/11921599

             

            Un abrazo!
            – Diego

            alainlugo
            Participante

              Gracias Diego!!!, un abrazo

              dlom
              Participante

                Saludos Alain!

              Viendo 5 respuestas - de la 1 a la 5 (de un total de 5)
              • El debate ‘Codigo DAX’ está cerrado y no admite más respuestas.