Hola, chicos
He visto este video de youtube en un tiempo y me pregunté si sería posible tener tanto la información de "Otros" como el TOPN que se está filtrando. Por ejemplo, en la imagen adjunta a continuación muestro lo que pretendo calcular, pero aún no pude encontrar una manera de calcularlo, así que aquí estoy. 🙂
Las medidas son las siguientes
En primer lugar, se crea un parámetro:
TopN = GENERATESERIES ( 1, 20, 1 )
A continuación, se creó el nombre Otros y se agregó a la tabla original:
Product Names = UNION ( ALLNOBLANKROW ( 'Product'[Product Name] ), { "Others" } )
Posteriormente, se crea una medida de fila visible para mostrar solo aquellas líneas que son más pequeñas o iguales al valor en el parámetro creado anteriormente (esto se establece en el panel Filtro de la tabla):
Visible Row =
VAR Ranking = [Ranking]
VAR TopNValue = [TopN Value]
VAR Result =
IF ( NOT ISBLANK ( Ranking ),
( Ranking <= TopNValue ) - ( Ranking = TopNValue + 1 ))
RETURN Result
El último paso fue crear la medida que calcula el total para "Otros":
Sales Amt =
VAR SalesOfAll =
CALCULATE ( [Sales Amount],
REMOVEFILTERS ( 'Product Names' ))
RETURN IF ( NOT ISINSCOPE ( 'Product Names'[Product Name] ),
-- Calculation for a group of products
SalesOfAll,
-- Calculation for one product name
VAR ProductsToRank = [TopN Value]
VAR SalesOfCurrentProduct = [Sales Amount]
VAR IsOtherSelected =
SELECTEDVALUE ( 'Product Names'[Product Name] ) = "Others"
RETURN
IF (
NOT IsOtherSelected,
-- Calculation for a regular product
SalesOfCurrentProduct,
-- Calculation for Others
VAR VisibleProducts =
CALCULATETABLE (
VALUES ( 'Product' ),
ALLSELECTED ( 'Product Names'[Product Name] )
)
VAR ProductsWithSales =
ADDCOLUMNS (
VisibleProducts,
"@SalesAmount", [Sales Amount]
)
VAR SalesOfTopProducts =
SUMX (
TOPN (
ProductsToRank,
ProductsWithSales,
[@SalesAmount]
),
[@SalesAmount]
)
VAR SalesOthers =
SalesOfAll - SalesOfTopProducts
RETURN
SalesOthers))
Ahora pregunto: ¿alguien sabe cómo calcular el TOPN filtrado para mostrarlo junto con los Otros en la misma tabla?
¡Gracias de antemano!
@pedrohp503 aquí hay un enlace para descargar el archivo con la solución:
C0120: filtre los 3 productos principales con una fila para otros mediante DAX en Power BI.pbix
Tomé el archivo de su artículo y agregué la lógica para mostrar también el TopN filtrado.
Esto es exactamente lo que estaba buscando, amigo. Muchas gracias por la solución que proporcionaste
Para su requerimiento, me gustaría sugerirle que cree una variable con función de resumen para resumir registros de tabla con categorías y cálculos.
Luego, simplemente puede usar la función iteradora (por ejemplo, sumx, averagex) y las condiciones de filtro para aplicar el segundo efecto agregado y de filtro en él.
Enlaces de referencia:
Medir totales, la última palabra - Microsoft Power BI Community
Saludos
Xiaoxin Sheng
Gracias por tu apoyo, amigo 🤝