Don't miss your chance to take exam DP-600 or DP-700 on us!
Request nowLearn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now
Estoy seguro de que esto ya se ha preguntado antes, pero simplemente lo busco.
Tengo una tabla de ventas/costes muy sencilla para 3 productos de los últimos 4 meses por 2 estados
Luego creé una medida "Profit_Margin%".
Me interesa ver el margen de beneficio de cada uno de los 3 productos, lo cual es fácil de hacer:
Sin embargo, lo que también quiero mostrar es una tabla que me dé el porcentaje medio de margen de beneficio a lo largo de los meses según una banda de margen de beneficio predefinida (es decir, 0%-30%, 30%-40%, >40%), así:
Mi margen de beneficio:
Sin embargo, PowerBI no me permite colocar esta banda de margen de beneficio en la fila de la tabla. ¿Cómo puedo conseguirlo?
Solved! Go to Solution.
Crea una tabla estática de etiquetas y límites de cubos:
Bins =
DATATABLE(
"BinLabel", STRING,
"Low", INTEGER,
"High", INTEGER,
{
{ "0-10", 0, 10 },
{ "11-20", 11, 20 },
{ "21-30", 21, 30 },
{ ">30", 31, 9999 }
}
)
2) Medir para contar filas (combinaciones de Mes/Producto/Estado) por contenedor
Rows in Bin =
VAR LowB = MIN ( 'Margin Bins'[Low] )
VAR HighB = MIN ( 'Margin Bins'[High] )
RETURN
COUNTROWS(
FILTER(
SUMMARIZE(
'YourFactTable',
'YourFactTable'[Month],
'YourFactTable'[Product],
'YourFactTable'[State]
),
VAR MarginValue = CALCULATE( [Profit_Margin%] )
RETURN
MarginValue >= LowB && MarginValue < HighB
)
)
Úsalo así:
Poner Bins de Margen en el eje (o filas)
Pon filas en la Bandeja como valor
Mantén tus segmentos existentes (Mes/Producto/Estado) según lo necesites
Power BI no permite a los usuarios extraer medidas en filas. Si profit_margin es una columna, simplemente puedes crear la columna calculada (no la medida) usando la fórmula que mencionaste en tu mensaje.
De lo contrario, crea otra tabla usando modelado o introduce datos para el rango de márgenes y luego usa DAX para contar el número de productos que caen en ese rango.
¿Podrías compartir tu requisito exacto?
Si tu profit_margin% es tu columna, entonces es fácil de hacer. Crea una columna calculada en lugar de medir y así podrás dibujarla en línea.
Hola @powerlight1
Como ya tienes una medida de banda, puedes crear una tabla virtual dentro de una medida, referenciarla y luego materializar el recuento de filas usando una tabla desconectada.
Crea una tabla de bandas (usando DAX o Enter Data).
Puedes añadir tantas dimensiones como sea necesario. Si solo necesitas el recuento distinto de productos, entonces incluye solo la columna de Producto.
Product Count by Band =
COUNTROWS (
FILTER (
SUMMARIZECOLUMNS (
'Table'[Month],
'Table'[Product],
'Table'[State],
"@band", [Profit_Margin%_Band]
),
[@band] IN VALUES ( ProfitBand[Band] )
)
)
Un patrón similar puede aplicarse para evaluar Ventas usando las columnas de la tabla virtual, con el cálculo filtrado según la banda correspondiente definida en cada fila de esa tabla virtual.
Crea una tabla estática de etiquetas y límites de cubos:
Bins =
DATATABLE(
"BinLabel", STRING,
"Low", INTEGER,
"High", INTEGER,
{
{ "0-10", 0, 10 },
{ "11-20", 11, 20 },
{ "21-30", 21, 30 },
{ ">30", 31, 9999 }
}
)
2) Medir para contar filas (combinaciones de Mes/Producto/Estado) por contenedor
Rows in Bin =
VAR LowB = MIN ( 'Margin Bins'[Low] )
VAR HighB = MIN ( 'Margin Bins'[High] )
RETURN
COUNTROWS(
FILTER(
SUMMARIZE(
'YourFactTable',
'YourFactTable'[Month],
'YourFactTable'[Product],
'YourFactTable'[State]
),
VAR MarginValue = CALCULATE( [Profit_Margin%] )
RETURN
MarginValue >= LowB && MarginValue < HighB
)
)
Úsalo así:
Poner Bins de Margen en el eje (o filas)
Pon filas en la Bandeja como valor
Mantén tus segmentos existentes (Mes/Producto/Estado) según lo necesites
Eso funciona perfectamente, justo lo que busco.
@powerlight1
Como sé, no puedes colocar una medida en el eje x de un gráfico de barras, por lo que no es posible usar una medida de inmediato para crear el histograma que quieres.
Por favor, prueba a usar una medida que devuelva valores específicos que correspondan a las clasificaciones que quieres tener en los contenedores de histogramas.
Es necesario crear una tabla con esos valores de clasificación (puedes colocar ese campo en el eje x: ya que son registros dentro de una columna de una tabla y no una medida)
Por favor, mira este vídeo de Ruth Pozuelo Martinez:
https://www.youtube.com/watch?v=b2y7pWHUGJk
Espero que esto ayude, si es así, márcalo como solución. Los kudos son bienvenidos.
@pcoley no es exactamente lo que busco.
la medida del vídeo es un conteo de ordenadores que tuvieron un evento del 1 al 9 (por ejemplo), que es un valor absoluto.
Mi primer reto es que necesito crear una medida que me dé el Margen de Beneficio 'combinado' a un nivel de agregación más alto, es decir, a nivel de producto en lugar de producto-mes-estado. Luego usaré este Margen de Beneficio Combinado y crearé un recuento específico de productos.
Así que creé 2 nuevas medidas: (1) la Banda de Margen de Beneficio que tiene el cambio del % de Margen de Beneficio y (2) un recuento distinto del producto. Esta es la tabla:
Esta tabla está muy cerca de lo que necesito, ya que solo necesito las dos últimas columnas, así que eliminé las dos primeras columnas de la tabla, pero en lugar de calcular el Margen de Beneficio medio y la banda, me da la línea total:
@powerlight1 El enfoque del vídeo debería funcionar para tus necesidades: el recuento en tu caso no es el número de ordenadores que tuvieron un evento, sino el número de productos que tuvieron el margen de beneficio correspondiente.
Al eliminar las dos primeras columnas de tu primera tabla, estás "borrando" el contexto del informe. Por lo tanto, la medida se evaluará para todos los datos.
Te sugiero que uses este camino:
La medida "Banda de Margen de Beneficio" va a funcionar como "Eventos por dispositivo" del vídeo.
La tabla "Histograma" no se calculará como se muestra en el vídeo (una serie de números generados desde el 1 hasta el valor MÁXIMO existente); En nuestro caso, debería hacerse usando el constructor de tablas:
en TableView>NewTable:
La columna generada se llama Valor por defecto.
El campo Histogram[Value] se usará en las filas de la matriz a saber, es decir, (eje X en el vídeo).
Luego tienes que replicar la primera y tercera columna de la matriz que propones (productos y ProfitBand: Usando la fórmula SUMMARIZE).
Usa esta consulta dentro de una medida para FILTRAR y CONTAR las bandas de beneficio (esto funcionaría como la medida que llamaste (2) un conteo distinto del producto.
HistogramCount =
VAR BandsToCount =
FILTER (
SUMMARIZE (
YourTransactionTable,
YourTable[Product],
"MarginBand", [Profit Margin Band]
),
[MarginBand]
= SELECTEDVALUE ( Histogram[Value] )
)
RETURN
COUNTROWS ( BandsToCount )Por favor, edita usando los nombres correctos de las tablas y columnas de tu modelo.
Coloca esta medida en el campo Valores de tu matriz, es decir,
Espero que esto ayude, si es así, márcalo como solución. ¡Los kudos son bienvenidos!
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
Check out the February 2026 Power BI update to learn about new features.