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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register 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.

6 REPLIES 6
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,

¿Dónde uso +0? ¿Y dónde pongo esta medida?

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! Prices go up Feb. 11th.

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

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

Top Solution Authors