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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
Syndicate_Admin
Administrator
Administrator

Filtrado dinámico de rango 1º, 2º y 3º en función de la selección de segmentación

Tengo el siguiente gráfico en 3 páginas separadas de un informe de Power BI que muestra el desglose de una categoría y subcategoría:

PowerBINewbie_0-1721298221676.png

La idea es que cada página represente una ubicación (dinámica) basada en la selección de fecha del usuario:

  • Ubicación 1 - Recuento más alto (de la medida 1)
  • Ubicación 2 - 2º conteo más alto (desde el compás 1)
  • Ubicación 3 - 3º conteo más alto (desde el compás 1)

Por lo tanto, las ubicaciones 1, 2 y 3 cambiarán dinámicamente en función de la fecha seleccionada por el usuario. En el caso de que dos o más ubicaciones tengan el mismo valor, se toma el orden alfabético, consulte la tabla a continuación:

PowerBINewbie_2-1721300526108.png

Así que lo que necesito es de alguna manera de aplicar la Medida de Rango al gráfico de arriba: rango 1 para el más alto, rango 2 para el 2do más alto, rango 3 para el 3er más alto. Las medidas que tengo para el conteo son las siguientes:

Medida de conteo:

Count Measure = CALCULATE(COUNT(Issues[Date]),Issues[Not Cancelled] = 1)+0

Medida de rango (obtuve esto de otra publicación en el Foro de la comunidad y lo adapté a mi caso de uso):

Rank Measure = 

VAR _table =
ADDCOLUMNS (
ADDCOLUMNS (
ALL ( Problemas Ubicación[Ubicación] ),
"@rankone", CALCULATE ( RANKX ( ALL ( Issues Location[Location] ), [Count Measure],, DESC ) ), ),
"@ranktwo",
CALCULAR (
RANKX (
ALL ( Problemas Ubicación[Ubicación] ),
CALCULATE ( MAX ( Ubicación de problemas [Ubicación] ) ),
,
ASC
)
)
),
"@newindex",
[@rankone] * 100 + [@ranktwo]
)
VAR _newtable =
ADDCOLUMNS ( _table, "@newrank", RANKX ( _table, [@newindex],, ASC ) )
DEVOLUCIÓN
SI (
HASONEVALUE ( Ubicación de los problemas[Ubicación] ),
MAXX (
FILTER ( _newtable, Ubicación de los problemas[Ubicación] = MAX ( Ubicación de los problemas[Ubicación]) ),
[@newrank]
)
)

No sé dónde aplicar la medida de rango para poder filtrar los gráficos respectivos en cada una de esas páginas. Cualquier ayuda es muy apreciada.

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

@PowerBI-Newbie , use la función de índice. Puede usar Parámetro y medida para hacerlo dinámico

ejemplo

Top1 =

calculate([%scrap], KEEPFILTERS(index(1, All(SAPWorkCenter[CDL]), orderby([%scrap],desc) ) ))

Top 2=

calculate([%scrap], KEEPFILTERS(index(2, All(SAPWorkCenter[CDL]), orderby([%scrap],desc) ) ))

Arriba N=

calculate([%scrap], KEEPFILTERS(index([selected Parameter], All(SAPWorkCenter[CDL]), orderby([%scrap],desc) )) ))

Función de índice de Power BI: rendimiento superior o inferior por nombre y valor https://youtu.be/HPhzzCwe10U

Hola @amitchandak ,

Muchas gracias por su respuesta. Me ha llevado a la mitad del camino después de adaptarlo a mis necesidades.

Tengo la siguiente medida:

2nd Highest Location = 
VAR _2ndValue = INDEX(2,SUMMARIZE(ALLSELECTED(Issues[Location]),Issues[Location], "_count not cancelled",[Count Not Cancelled]),ORDERBY([Count Not Cancelled],DESC))
RETURN
MAXX(_2ndValue,[Location])

Esto me proporciona el nombre de la ubicación con el 2º valor más alto, que es excelente, por lo que quería usarlo en la siguiente medida para el eje y, de modo que las categorías y subcategorías se puedan filtrar en función de la 2ª ubicación más alta:

Count - Not Cancelled 2nd = 
CALCULATE(COUNT(Issues[Incident Date]),
Issues[Count If not cancelled] = 1,
Issues[Location] = [2nd Highest Location])+0

Pero esto me da un error de MARCADOR de POSICIÓN, por lo que intenté usar variables, pero no filtra los datos correctamente. Sin embargo, cuando codifico el valor de la siguiente manera, funciona perfectamente:

 Issues[Location] = "Location 2"

No sé cuál es el problema.

@PowerBI-Newbie , si esto de una tabla conectada, la medida se puede filtrar usando un código como

calculate([%scrap], KEEPFILTERS(index(2, All(SAPWorkCenter[CDL]), orderby([%scrap],desc) )) ))

Pero si primero quieres obtener valor y pasarlo a otra mesa

calculate([Meausre], filter(Tabla, Tabla [Ubicación] = [2ª ubicación más alta]))

Si va a usar +0, mostrará todas las demás ubicaciones con valores en blanco

Hola @amitchandak,

Cualquier ayuda es muy apreciada.

Hola @amitchandak,

Espero que estés bien.

No quiero crear una nueva pregunta, por lo que agradecería mucho su ayuda con la consulta anterior.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors