Forum Discussion
Problemas con Rankx, Dense
Hola a todos:
Esta es mi primera publicación, así que agradezco la ayuda de todos aquí.
Pensé que tenía un problema bastante simple. Pero no tanto... Vea debajo para un informe. Lo que necesito es solo una columna llamada rango que comience con 1 y asigne n a cualquiera que sea el valor más alto de la columna Manual Override_DAX. Puedes ver que ciertamente varios valores de la columna tienen el mismo valor, pero necesito que todos tengan un rango único. Mi desempate es la columna RECID (a la izquierda del informe).
Además, hay BLANKs en la columna Manual Override_DAX que también debería obtener un BLANK en la función de rango.
Por último, la escala manual de Override_DAX vales de valores negativos a positivos (ese es realmente el problema que no puedo resolver)...
¡Gracias a todos!
4 Replies
- Syndicate_Admin
Administrator
Proporcione datos de muestra que cubran su problema o pregunta por completo, en un formato utilizable (no como una captura de pantalla).
https://community.fabric.microsoft.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-Forum/ba-p/963216
Muestre el resultado esperado en función de los datos de muestra que proporcionó.
https://community.fabric.microsoft.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447523 - Syndicate_Admin
Administrator
Gracias por marcar. Debajo encontrará el enlace al resultado deseado. Por favor, hágame saber sus pensamientos sobre cómo lograr el rango con una función DAX (no es una medida, porque quiero visualizarlo como un punto de datos ficticio en el eje x). Tenga en cuenta los espacios en blanco en la parte inferior. ¡Gracias!
Enlace a csv en google drive - Syndicate_Admin
Administrator
Al principio, en power query, ordene la tabla con dos columnas, Manual Override_DAX y RECID (ambas juntas) y, a continuación, indízcala.
A continuación, en la vista Datos, ordene la tabla por índice.
A continuación, utilice la siguiente fórmula:
NewRank = if (ISBLANK(data[Manual Override_DAX])=TRUE(), blank(), COUNTROWS( FILTER( VALUES(data[Manual Override_DAX]), data[Manual Override_DAX]< EARLIER(data[Manual Override_DAX])) )+1 )NewRank sería diferente y más bajo que su rango de ejemplo, porque los mismos valores se clasifican en el mismo número.
https://drive.google.com/file/d/1oH_LTz9g1vbAa4yhI3n1qVFfxMAEZAGd/view?usp=sharing
Espero que ayude.
- Syndicate_Admin
Administrator
Hay algunos desacuerdos leves con su clasificación deseada, pero esta fórmula es lo suficientemente buena:
Rank = rankx(filter(ALLSELECTED('data (4)'),not ISBLANK([Value])),[Value]+VALUE([RECID])/1000000000000,,ASC,Dense)