Forum Discussion
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:
- en el propio producto dentro de su grupo de productos
- 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!
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 :
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:
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
- Syndicate_AdminAdministrator
@MReinagl , Trate de
CategoryRank_Sales =
RANKX(
filtro ( ALLselected(tblDATA[Warengruppe],tblDATA[Transaktionsdatum]),
tblDATA[Transaktionsdatum] = max(tblDATA[Transaktionsdatum]))
CALCULAR(
SUM(tblDATA[Nettosumme])
),
,
Desc
denso
)- Syndicate_AdminAdministrator
Gracias por su ayuda.
Después de aplicar su fórmula obteré un rango con un error. Por favor, vea mi captura de pantalla:
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 )
- Syndicate_AdminAdministrator
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 :
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:
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.