Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more.
Get startedGrow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.
Hola
Soy principiante en power bi, necesito su ayuda para calcular una clasificación sobre los años en mi informe.
En mi informe, tengo un filtro para la selección del año:
Se basa en la tabla 'Numero_year'[Año].
Me gustaría tener el rango de los diferentes años disponibles en la tabla, basado en mi selección en este filtro.
Por lo tanto, si selecciono 2020, quiero tener
2020 ? 1
2019 ? 2
2018 ? 3
2017 ? 4
Si selecciono 2018, quiero tener :
2018 ? 1
2017 ? 2
He probado esta fórmula, pero no parece ser la buena porque supongo que sólo un año se puede seleccionar a la vez:
Hola @anneso108 ,
Puede probar estas medidas:
1. Cree una tabla de años seprate y coloque la columna en la segmentación de datos:
Table = DISTINCT(Numero_year[Year])
2. Cree una medida de clasificación en la tabla de hechos:
Rank =
IF (
ISFILTERED ( 'Table'[Year] ),
IF (
HASONEVALUE ( 'Table'[Year] ),
IF (
SELECTEDVALUE ( Numero_year[Year] ) <= SELECTEDVALUE ( 'Table'[Year] ),
RANKX (
FILTER (
ALLSELECTED ( Numero_year ),
Numero_year[Year] <= SELECTEDVALUE ( 'Table'[Year] )
),
CALCULATE ( SUM ( Numero_year[Year] ) )
)
)
),
RANKX ( ALLSELECTED ( Numero_year ), CALCULATE ( SUM ( Numero_year[Year] ) ) )
)
Obtendrá el resultado esperado:
Se adjunta un archivo de ejemplo que espera ayudarle, por favor compruébelo y pruébelo: Problema con rank.pbix
Best Looks,
Yingjie Li
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola YingJie Li,
Su respuesta se ajusta a lo que espero, pero por desgracia, no soy capaz de reproducirlo en mi informe, no sé si mi cubo SSAS no está correctamente vinculado entre tablas o si mi fórmula está equivocada...
He intentado abrir su pbix pero no puedo abrirlo en mi máquina, mensaje de error :
Esto es lo que intenté.
He creado una nueva tabla calculada, denominada Tabla para obtener los años distintos de mi fact_table "SecuriteAuTravail" :
He vinculado esta nueva tabla 'Tabla' a mi tabla de hechos "SecuriteAuTravail" en el campo De Ana:
Y luego en mi informe, puse un filtro en 'Table'[Annee], y una tabla para mostrar el rango con mi medida y 'SecuriteAuWork'[Annee] como un segundo campo:
Aquí está la fórmula que puse en mi medida, obviamente cometí un error dentro de la fórmula que diría, pero puedo averiguarlo...
Hoy mi filtro real está en "Calendrier[year] en mi informe. No se utiliza en absoluto más en la nueva solución, supongo que algo está mal allí...
¿Alguna idea para arreglar esto?
Muchas gracias, AnneSophie
@anneso108 , Pruebe una medida como esta
Measure =
var _max = maxx(allselected(Year),Year[Year])
return
calculate(max(Year[Year])-_max +1,filter(All(Year),Year[Year]<=_max))
Prefiere una tabla de fechas separada
Hola amitchandak,
He probado su fórmula porque preferiría no tener que crear una nueva tabla para este problema, pero desafortunadamente no funciona 😞
Me da sólo el año seleccionado como resultado :
Si usted tiene otra idea para arreglar la fórmula, me alegraría mucho 😉
Gracias, AnSo
La clave para obtener este tipo de funcionalidad es agregar una pequeña tabla calculada DAX que se usará en la segmentación de datos, con una expresión como
SlicerYears á DISTINCT('Numero_year'[Año])
No lo conecte con una relación. De esta manera, solo está ahí para seleccionar un valor, no para filtrar los datos. A continuación, puede tener una medida como esta para obtener su rango de año. Tenga en cuenta que es posible que tenga que adaptar las medidas existentes para utilizar también el valor seleccionado, ya que ya no filtrará los datos.
Year Rank =
VAR __selectedyear =
SELECTEDVALUE ( SlicerYears[Year] )
RETURN
RANKX (
FILTER ( ALL ( 'Date'[Year] ), 'Date'[Year] <= __selectedyear ),
CALCULATE ( MIN ( 'Date'[Year] ) )
)
Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.
saludos
palmadita
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
@anneso108 dar @mahoneypat solución, incluso puede hacer que sea mucho más fácil, misma historia, una tabla para la rebanadora con años y luego la siguiente medida a RANK
Year Rank =
VAR __selectedyear =
SELECTEDVALUE ( SlicerYears[Year] )
VAR __rank = ( __selectedYear - MAX ('Numero_year'[Year] ) ) + 1
RETURN
IF ( __rank >= 1, __rank )
Me gustaría❤ elogiossi mi solución ayudara.👉Si puedes pasar tiempo publicando la pregunta, también puedes hacer esfuerzos para dar a Kudos quien haya ayudado a resolver tu problema. ¡Es una muestra de agradecimiento!
⚡Visítenos enhttps://perytus.com, su ventanilla única para proyectos/formación/consulta relacionados con Power BI.⚡
Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!
Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo
If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤
Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.
Muchas gracias, después de probar las otras 3 soluciones propuestas, ¡es la tuya la que gana!
Que tengas un buen día, AnneSo.
Está utilizando ALLSELECTED
por lo que cuando se selecciona un año en su rebanadora... que es el único año "seleccionado"
tratar de usar TODO
Help when you know. Ask when you don't!