Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
danielgergely
Advocate II
Advocate II

RANKX no funciona correctamente

Hola a todos

Tengo una situación interesante.

Tengo una lista de clientes con ventas. Quiero clasificarlos por ventas y hacer una comparación entre la primera X por ventas y el resto de los clientes.
Aquí está el cuadro con las tres medidas (Rank_Kunde, Rank_Kunde2, Rank_Kunde4)

ice_screenshot_20200915-082637.png

Como pueden ver, la clasificación es muy rara. Omitiendo algunos números y al mismo tiempo ordenando incorrectamente.

Con el fin de mantener la lista dinámica y filtrable, creé varias medidas.

Medida 1 (Rank_Kunde):

Rank_Kunde = 
VAR _kunde =  SELECTEDVALUE(Table[Kunde_])
VAR _sum = CALCULATE(SUM(Table[Nettoerlös]),FILTER(ALLSELECTED(Table),Table[Kunde_]=_kunde))
RETURN _sum

Medida 2 (Rank_Kunde2):

Rank_Kunde2 = RANKX(ALLSELECTED(Table), CALCULATE([Rank_Kunde]),,DESC,Dense)

La medida 3 (Rank_Kunde4) es bastante larga, e irrelevante, pero de todos modos tiene un puesto negativo:

Rank_Kunde4 = 
VAR _top =  SELECTEDVALUE(TOPX[Top])
VAR _first = RANKX(ALLSELECTED(KE30_KPI), CALCULATE([Rank_Kunde]),,DESC,Dense)
VAR _kunde = SELECTEDVALUE(KE30_KPI[Kunde_])
VAR _one = CALCULATE(FIRSTNONBLANK(TOPKunden[Kunde_],1),FILTER(ALL(TOPKunden),TOPKunden[Rank] = 1))
VAR _two = CALCULATE(FIRSTNONBLANK(TOPKunden[Kunde_],1),FILTER(ALL(TOPKunden),TOPKunden[Rank] = 2))
VAR _three = CALCULATE(FIRSTNONBLANK(TOPKunden[Kunde_],1),FILTER(ALL(TOPKunden),TOPKunden[Rank] = 3))
VAR _four = CALCULATE(FIRSTNONBLANK(TOPKunden[Kunde_],1),FILTER(ALL(TOPKunden),TOPKunden[Rank] = 4))
VAR _five = CALCULATE(FIRSTNONBLANK(TOPKunden[Kunde_],1),FILTER(ALL(TOPKunden),TOPKunden[Rank] = 5))
VAR _six = CALCULATE(FIRSTNONBLANK(TOPKunden[Kunde_],1),FILTER(ALL(TOPKunden),TOPKunden[Rank] = 6))
VAR _seven = CALCULATE(FIRSTNONBLANK(TOPKunden[Kunde_],1),FILTER(ALL(TOPKunden),TOPKunden[Rank] = 7))
VAR _eight = CALCULATE(FIRSTNONBLANK(TOPKunden[Kunde_],1),FILTER(ALL(TOPKunden),TOPKunden[Rank] = 8))
VAR _nine = CALCULATE(FIRSTNONBLANK(TOPKunden[Kunde_],1),FILTER(ALL(TOPKunden),TOPKunden[Rank] = 9))
VAR _ten = CALCULATE(FIRSTNONBLANK(TOPKunden[Kunde_],1),FILTER(ALL(TOPKunden),TOPKunden[Rank] = 10))

VAR _result10 = SWITCH(_first, 1, _one, 2, _two, 3, _three, 4, _four, 5, _five, 6, _six, 7, _seven, 8, _eight, 9, _nine, 10, _ten, "Übrige Kunden")
VAR _result9 = SWITCH(_first, 1, _one, 2, _two, 3, _three, 4, _four, 5, _five, 6, _six, 7, _seven, 8, _eight, 9, _nine, "Übrige Kunden")
VAR _result8 = SWITCH(_first, 1, _one, 2, _two, 3, _three, 4, _four, 5, _five, 6, _six, 7, _seven, 8, _eight, "Übrige Kunden")
VAR _result7 = SWITCH(_first, 1, _one, 2, _two, 3, _three, 4, _four, 5, _five, 6, _six, 7, _seven, "Übrige Kunden")
VAR _result6 = SWITCH(_first, 1, _one, 2, _two, 3, _three, 4, _four, 5, _five, 6, _six, "Übrige Kunden")
VAR _result5 = SWITCH(_first, 1, _one, 2, _two, 3, _three, 4, _four, 5, _five, "Übrige Kunden")
VAR _result4 = SWITCH(_first, 1, _one, 2, _two, 3, _three, 4, _four, "Übrige Kunden")
VAR _result3 = SWITCH(_first, 1, _one, 2, _two, 3, _three, "Übrige Kunden")
VAR _result2 = SWITCH(_first, 1, _one, 2, _two, "Übrige Kunden")
VAR _result1 = SWITCH(_first, 1, _one, "Übrige Kunden")
VAR _topXResult = SWITCH(_top, 1, _result1, 2, _result2, 3, _result3, 4, _result4, 5, _result5, 6, _result6, 7, _result7, 8, _result8, 9, _result9, 10, _result10)
RETURN _topXResult<span><br />Could anyone explain why my RANKX is not working?<br /><div> <div><span>Thank you<div><span>Daniel</span></div></span></div></div></span>

¿Alguien sabe dónde podría haber cometido un error o por qué RANKX no funciona?

Gracias

Daniel

1 ACCEPTED SOLUTION
danielgergely
Advocate II
Advocate II

Así que después de una gran cantidad de experimentación, descubrí que si filtro el objeto visual y sacar 1 de los valores, entonces RANKX() funciona correctamente...

Muy raro...

Hemos detectado un problema desconocido.

Si alguien se le ocurra una explicación o algo así, entonces lo aceptaré como una sollución

View solution in original post

2 REPLIES 2
danielgergely
Advocate II
Advocate II

Así que después de una gran cantidad de experimentación, descubrí que si filtro el objeto visual y sacar 1 de los valores, entonces RANKX() funciona correctamente...

Muy raro...

Hemos detectado un problema desconocido.

Si alguien se le ocurra una explicación o algo así, entonces lo aceptaré como una sollución

amitchandak
Super User
Super User

@danielgergely , ¿Puede compartir datos de ejemplo y salida de ejemplo en formato de tabla? O una muestra de pbix después de eliminar datos confidenciales.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.