Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
5 years ago
Solved

Problemas con RANKX

hola

Todavía no tengo mucha experiencia con Power BI, tengo problemas para entender el uso correcto de RANKX.

Quiero obtener una medida que clasifique mis productos por ventas. Pero quiero hacer esto en dos niveles:

  1. en el propio producto dentro de su grupo de productos
  2. en los grupos de productos

Así que digamos que mi tabla tiene transacciones de ventas con estas columnas:

  • Artículo No (Art No),
  • Nombre del artículo
  • Grupo de productos (Warengruppe)
  • Ventas (Nettosumme)
  • Fecha (Transaktionsdatum)

Cuando utilizo esta fórmula:

CategoryRank_Sales = 
    RANKX(
        ALL(tblDATA[Warengruppe]),
        CALCULATE(
            SUM(tblDATA[Nettosumme]),
            ALLEXCEPT(
                tblDATA,
                tblDATA[Warengruppe],
                tblDATA[Transaktionsdatum]
            )
        ),
        ,
        DESC,
        Dense
    )

Cuando comparo los datos durante dos días en los que sé que dos grupos cambian de rango, no veo esto reflejado en la salida. Asumo que esto se debe a que no entiendo el contexto de la cláusula ALLEXEPT, pero no estoy seguro.

Espero que alguien pueda ayudar a base de esta información abstracta. Pero como estoy seguro de que esto se deriva de mi mala comprensión de la fórmula RANKX y ALLEXCEPT pensé que esto podría ser suficiente.

¡gracias!

  • No hay @MReinagl

    ALLEXCEPT dax: quita todos los filtros de contexto de la tabla excepto los filtros que se han aplicado a las columnas especificadas.

    RANKX dax: Devuelve la clasificación de un número en una lista de números para cada fila del argumento de tabla.

    Creé una muestra para ayudarte a saber mejor sobre estos dos dax.

    Datos originales :

    Ailsa-msft_0-1620782438712.png

    Medida 3 = RANKX(ALLEXCEPT('Tabla (2)','Tabla (2)'[Nombre]),CALCULATE(SUM('Tabla (2)'[Valor])),,DESC,Dense)

    Primer grupo por 'Tabla (2)'[Nombre] y, a continuación, ordene dentro del grupo .

    El efecto es como se muestra:

    Ailsa-msft_1-1620782438715.png

    Más información sobre RANKX y ALLEXCEPT puede referirse a estos enlaces:

    https://docs.microsoft.com/en-us/dax/rankx-function-dax

    https://docs.microsoft.com/en-us/dax/allexcept-function-dax

    Saludos

    Equipo de apoyo comunitario _ Ailsa Tao

    Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

3 Replies

  • @MReinagl , Trate de

    CategoryRank_Sales =
    RANKX(
    filtro ( ALLselected(tblDATA[Warengruppe],tblDATA[Transaktionsdatum]),
    tblDATA[Transaktionsdatum] = max(tblDATA[Transaktionsdatum]))
    CALCULAR(
    SUM(tblDATA[Nettosumme])
    ),
    ,
    Desc
    denso
    )

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      Gracias por su ayuda.

      Después de aplicar su fórmula obteré un rango con un error. Por favor, vea mi captura de pantalla:

      MReinagl_0-1620808860639.png

      Esta es la fórmula que inscribí:

      CategoryRank_Sales = 
          RANKX(
              FILTER(
                  ALLSELECTED(
                      tblDATA[Warengruppe],
                      tblDATA[Transaktionsdatum]
                  ),
                  tblDATA[Transaktionsdatum] = [SelectedDate]
              ),
              CALCULATE(
                  SUM(tblDATA[Nettosumme])
              ),
              ,
              DESC,
              Dense
          )
  • No hay @MReinagl

    ALLEXCEPT dax: quita todos los filtros de contexto de la tabla excepto los filtros que se han aplicado a las columnas especificadas.

    RANKX dax: Devuelve la clasificación de un número en una lista de números para cada fila del argumento de tabla.

    Creé una muestra para ayudarte a saber mejor sobre estos dos dax.

    Datos originales :

    Ailsa-msft_0-1620782438712.png

    Medida 3 = RANKX(ALLEXCEPT('Tabla (2)','Tabla (2)'[Nombre]),CALCULATE(SUM('Tabla (2)'[Valor])),,DESC,Dense)

    Primer grupo por 'Tabla (2)'[Nombre] y, a continuación, ordene dentro del grupo .

    El efecto es como se muestra:

    Ailsa-msft_1-1620782438715.png

    Más información sobre RANKX y ALLEXCEPT puede referirse a estos enlaces:

    https://docs.microsoft.com/en-us/dax/rankx-function-dax

    https://docs.microsoft.com/en-us/dax/allexcept-function-dax

    Saludos

    Equipo de apoyo comunitario _ Ailsa Tao

    Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.