Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code FABINSIDER for a $400 discount.
Register nowThe Power BI DataViz World Championships are on! With four chances to enter, you could win a spot in the LIVE Grand Finale in Las Vegas. Show off your skills.
Hola a todos,
Supongamos que tengo estado, ciudad y venta. Quiero calcular dinámicamente el rango en función del parámetro. Puedo obtener el estado y la ciudad correctos en función de las ventas, pero cuando busco el total general, no es correcto.
Esta es mi medida para filtrar el estado y la ciudad:
Gracias de antemano
Saludos
Solved! Go to Solution.
Este era un problema interesante. Desea que el parámetro de rango numérico muestre las ventas de los X estados principales en función del cálculo de las ventas de las X ciudades principales, ¿verdad? Definitivamente implicó un poco de arreglo, pero creo que esto es lo que estás buscando.
Rank the sales =
VAR _topXCitySales =
GENERATE(
ALLSELECTED( Sales_data[State] ),
VAR _citySales = CALCULATETABLE(
SUMMARIZECOLUMNS(
Sales_data[City],
"TotalSales", CALCULATE( SUM( Sales_data[Sales] ) )
),
ALLSELECTED( Sales_data[City] )
)
VAR _topXCitySales =
WINDOW(
1, ABS, 'Ranks Dynamic'[Ranks Dynamic Value], ABS,
_citySales, ORDERBY( [TotalSales], DESC )
)
RETURN
_topXCitySales
)
VAR _stateByTopXCitySales =
CALCULATETABLE(
SUMMARIZECOLUMNS(
Sales_data[State],
"TopStateSales", CALCULATE( SUM( Sales_data[Sales] ), KEEPFILTERS( _topXCitySales ) ) ),
ALLSELECTED( Sales_data[State], Sales_data[City] )
)
VAR _topXStateByTopXCitySales =
WINDOW(
1, ABS, 'Ranks Dynamic'[Ranks Dynamic Value], ABS,
_stateByTopXCitySales, ORDERBY( [TopStateSales], DESC )
)
VAR _topXStateVals = SUMMARIZE( _topXStateByTopXCitySales, Sales_data[State] )
VAR _topXTopXSummary = FILTER( _topXCitySales, Sales_data[State] IN _topXStateVals )
RETURN
CALCULATE(
SUM( Sales_data[Sales] ),
KEEPFILTERS( _topXTopXSummary )
)
Editar: se han limpiado un poco los nombres de DAX y variables, error tipográfico
Este era un problema interesante. Desea que el parámetro de rango numérico muestre las ventas de los X estados principales en función del cálculo de las ventas de las X ciudades principales, ¿verdad? Definitivamente implicó un poco de arreglo, pero creo que esto es lo que estás buscando.
Rank the sales =
VAR _topXCitySales =
GENERATE(
ALLSELECTED( Sales_data[State] ),
VAR _citySales = CALCULATETABLE(
SUMMARIZECOLUMNS(
Sales_data[City],
"TotalSales", CALCULATE( SUM( Sales_data[Sales] ) )
),
ALLSELECTED( Sales_data[City] )
)
VAR _topXCitySales =
WINDOW(
1, ABS, 'Ranks Dynamic'[Ranks Dynamic Value], ABS,
_citySales, ORDERBY( [TotalSales], DESC )
)
RETURN
_topXCitySales
)
VAR _stateByTopXCitySales =
CALCULATETABLE(
SUMMARIZECOLUMNS(
Sales_data[State],
"TopStateSales", CALCULATE( SUM( Sales_data[Sales] ), KEEPFILTERS( _topXCitySales ) ) ),
ALLSELECTED( Sales_data[State], Sales_data[City] )
)
VAR _topXStateByTopXCitySales =
WINDOW(
1, ABS, 'Ranks Dynamic'[Ranks Dynamic Value], ABS,
_stateByTopXCitySales, ORDERBY( [TopStateSales], DESC )
)
VAR _topXStateVals = SUMMARIZE( _topXStateByTopXCitySales, Sales_data[State] )
VAR _topXTopXSummary = FILTER( _topXCitySales, Sales_data[State] IN _topXStateVals )
RETURN
CALCULATE(
SUM( Sales_data[Sales] ),
KEEPFILTERS( _topXTopXSummary )
)
Editar: se han limpiado un poco los nombres de DAX y variables, error tipográfico
¡Gracias, esto es genial! Estaba pensando en la misma línea, pero no pude usar la función de ventana aquí. Nuevo aprendizaje para mí !!
Hola
Comparta el enlace de descarga del archivo PBI.
Hola @qqqqqwwwweeerrr
Por favor, intente:
Rank the sales =
VAR rankcity = RANKX(ALLSELECTED(Sales_data[City]), [total sales], , DESC, Dense)
VAR rankstate = RANKX(ALLSELECTED(Sales_data[State]), [total sales], , DESC, Dense)
VAR results =
SWITCH(
TRUE(),
ISINSCOPE(Sales_data[City]), rankcity,
ISINSCOPE(Sales_data[State]), rankstate
)
VAR totalSales =
SUMX(
FILTER(
ALLSELECTED(Sales_data),
SWITCH(
TRUE(),
ISINSCOPE(Sales_data[City]), RANKX(ALLSELECTED(Sales_data[City]), [total sales], , DESC, Dense) <= 'Ranks Dynamic'[Ranks Dynamic Value],
ISINSCOPE(Sales_data[State]), RANKX(ALLSELECTED(Sales_data[State]), [total sales], , DESC, Dense) <= 'Ranks Dynamic'[Ranks Dynamic Value],
TRUE(), FALSE()
)
),
Sales_data[Sales]
)
RETURN
IF(
HASONEVALUE(Sales_data[City]) || HASONEVALUE(Sales_data[State]),
IF(results <= 'Ranks Dynamic'[Ranks Dynamic Value], SUM(Sales_data[Sales])),
totalSales
)
Saludos
Nono Chen
Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
Hola @v-nuoc-msft ,
Gracias por su respuesta. Sigo obteniendo la misma salida
He adjuntado el archivo PBI para su referencia en cuestión.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Check out the February 2025 Power BI update to learn about new features.