This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. We're covering it all. You won't want to miss it.
Learn moreLevel up your Power BI skills this month - build one visual each week and tell better stories with data! Get started
¡Hola!
Estoy trabajando en un conjunto de datos para un negocio de moda. En mi conjunto de datos, tengo una dimensión para "Estilo" y una dimensión de calendario.
También tengo una medida para "Stock" que detalla cuánto de un estilo determinado está en stock, junto con varias otras métricas de stock y ventas
Estoy tratando de crear una lista de estilos con alto stock y baja venta. He creado una medida llamada Sellthrough%, que analiza las cantidades de existencias al principio del período seleccionado, las cantidades vendidas en el período y las divide para obtener un porcentaje.
Lo que ahora estoy tratando de crear es una imagen que detalle los N estilos principales (en relación con el stock) por debajo de un cierto umbral de venta:
| Estilo | Acción | Venta directa |
| Estilo B | 12.000 | 41% |
| Estilo A | 10.000 | 49% |
| Estilo C | 8.000 | 36% |
Esto es lo que funciona:
Sin embargo, si filtro por encima de N (stock) y filtro por umbrales de venta al mismo tiempo, la tabla devuelve pocos o ningún resultado. Efectivamente, puedo crear la imagen exacta que quiero, simplemente no puedo acortarla a N elementos sin eliminar primero mi filtro Sellthrough% (lo que anula el propósito)
Supongo que mi filtro en la medida Sellthrough (que se basa en stock) y el filtro top N (stock) están interfiriendo entre sí, por lo que hay poca o ninguna superposición entre los resultados en el filtro "top N" y los resultados en el filtro "Sellthrough%", lo que significa que se devuelven pocos o ningún resultado. Me gustaría devolver el N superior del conjunto de datos filtrado .
Hay decenas de miles de estilos en mi conjunto de datos, por lo que no se debe a menos de N resultados posibles.
Esto es lo que he probado:
Estas son las medidas que he creado para tratar de resolver el problema:
Sellthrough % =
var _min = minx('Calendar','Calendar'[Date])
Return
DIVIDE([Sales Quantity],
CALCULATE([Stock Quantity],'Calendar'[Date]=_min))
_TOP 8 Styles = CALCULATE([Stock],TOPN(8,ALLSELECTED(Style),[Stock],DESC),VALUES(Style))
_rankStock = RANKX(ALLSELECTED('Style'),[Stock],,DESC,Dense)
¡Espero que alguien pueda ayudarme a entender lo que está pasando!
No proporcionó su modelo, por lo que asumo que necesita una medida para el stock al comienzo del período:
InitialStock =
CALCULATE(
[Stock Quantity],
FILTER(ALL('Calendar'), 'Calendar'[Date] = MIN('Calendar'[Date]))
)
Ya tiene una medida para el porcentaje de ventas, así que aquí hay una medida actualizada:
Sellthrough% =
DIVIDE([Sales Quantity], [InitialStock], 0)y para Top N Filtrado por Stock:
TopNStock =
CALCULATE(
[Stock Quantity],
TOPN(8, ALL('Style'), [Stock Quantity], DESC)
)y:
RankByStock =
RANKX(ALL('Style'), [Stock Quantity], , DESC, Dense)A continuación, cree una tabla o medida calculada que tenga en cuenta tanto el filtro de ventas directas como el filtro de acciones N superiores:
FilteredStyles =
CALCULATETABLE(
VALUES('Style'),
FILTER(
ALL('Style'),
[Sellthrough%] < 0.5 && [RankByStock] <= 8
)
)
¡Muchas gracias por tomarse el tiempo de responder!
No estoy seguro de lo que quiere decir con "proporcione su modelo". Estoy trabajando en un modelo semántico de Power BI si eso ayuda.
El CALCULATETABLE sugerido no parece funcionar para mí, recibo el siguiente error:
Si bien no estoy familiarizado con el funcionamiento de CALCULATETABLE, me preocupa que la solución no funcione, ya que RankByStock clasifica todos los estilos, lo que significa que los 8 estilos principales de mi tabla pueden no tener un rango < = 8.
Vea el ejemplo de visual antes de limitar a N superior:
He censurado parcialmente los nombres de estilo por seguridad
Por modelo me refiero a sus tablas de datos y dimensiones.
Muy bien, creo que te entiendo. Aquí están las cuatro tablas de datos que tengo en uso.
Están conectados a través de CalendarID y StyleID
Es probable que todo el modelo sea demasiado enrevesado para publicarlo de manera significativa:
Hola @Snymoen
Gracias por la respuesta de @AmiraBedh .
@Snymoen , ¿Desea mostrar las 8 principales clasificaciones de acciones en la visualización? Pruebe lo siguiente:
MEASURE =
VAR _rankStock = RANKX(ALL('Style'),[Stock],,ASC,Dense)
RETURN
IF(_rankStock <= 8, 1, 0)
Coloque la medida en los filtros de nivel visual, configure mostrar elementos cuando el valor sea 1.
La medida anterior también se puede utilizar como condición de cribado para otras fórmulas.
Si aún tiene preguntas, comparta los datos de muestra y los resultados esperados de las tablas que utilizó, así como las fórmulas utilizadas. Cómo proporcionar datos de ejemplo en el foro de Power BI - Microsoft Fabric Community Los datos de ejemplo solo deben incluir las columnas que se utilizan. Podemos entender mejor el problema y ayudarle. O muéstralos como capturas de pantalla. Elimine cualquier dato confidencial por adelantado.
Saludos
Yulia Xu
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.
Check out the April 2026 Power BI update to learn about new features.
Sign up to receive a private message when registration opens and key events begin.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.