Don't miss your chance to take the Fabric Data Engineer (DP-700) exam on us!
Learn moreWe've captured the moments from FabCon & SQLCon that everyone is talking about, and we are bringing them to the community, live and on-demand. Starts on April 14th. Register now
Hola, soy nuevo en PowerBi y estoy intentando crear un vídeo para mostrar las 10 mejores piezas por número de fallos repetidos en el año 2024 y obtener el número de fallos de esas piezas en 2025.
Lo que necesito añadir en el visual es un % de aumento o disminución respecto al año anterior, y el porcentaje total de cambio en todas las partes del top 10 (ya sea en la propia gráfica o en una tarjeta separada).
Gracias
MP.
El top 10 de defectos se calcula mediante la Máquina SN.
A continuación hay un conjunto de datos de muestra que representa datos reales que necesito procesar.
| Máquina SN | Defect Part No | Año de defecto |
| ABC001 | X1 | 2025 |
| ABC002 | X2 | 2025 |
| ABC003 | X2 | 2025 |
| ABC004 | X3 | 2025 |
| ABC005 | X3 | 2025 |
| ABC006 | X3 | 2025 |
| ABC007 | X4 | 2025 |
| ABC008 | X4 | 2025 |
| ABC009 | X4 | 2025 |
| ABC010 | X4 | 2025 |
| ABC011 | X5 | 2025 |
| ABC012 | X5 | 2025 |
| ABC013 | X5 | 2025 |
| ABC014 | X5 | 2025 |
| ABC015 | X5 | 2025 |
| ABC016 | X1 | 2025 |
| ABC017 | X1 | 2025 |
| ABC018 | X1 | 2024 |
| ABC019 | X1 | 2024 |
| ABC020 | X1 | 2024 |
| ABC021 | X2 | 2024 |
| ABC022 | X2 | 2024 |
| ABC023 | X2 | 2024 |
| ABC024 | X2 | 2024 |
| ABC025 | X3 | 2024 |
| ABC026 | X3 | 2024 |
| ABC027 | X3 | 2024 |
| ABC028 | X4 | 2024 |
| ABC029 | X4 | 2024 |
| ABC030 | X5 | 2024 |
| ABC031 | X2 | 2024 |
| ABC032 | X2 | 2025 |
| ABC033 | X2 | 2025 |
| ABC034 | X5 | 2025 |
| ABC035 | X4 | 2024 |
Hola @MP18 ,
En lugar de codificar directamente un Top 10, este enfoque permite al usuario controlar dinámicamente Top N usando un deslizador numérico, mientras que el ranking se basa estrictamente en fallos repetidos en 2024 y se compara con 2025. La solución funciona correctamente en una tabla visual, evita problemas de empates y produce totales y porcentajes interanuales correctos.
Modelado → Nuevo parámetro → rango numérico
Utiliza la columna generada Top N[Top N] en un slicer.
Selected Top N := SELECTEDVALUE ( 'Top N'[Top N], 10 )
Failures := DISTINCTCOUNT ( Failures[Machine SN] )
Failures 2024 := CALCULATE ( [Failures], Failures[Defect Year] = 2024 )
Failures 2025 := CALCULATE ( [Failures], Failures[Defect Year] = 2025 )
Esta clasificación garantiza exactamente N filas al usar un control deslizante, incluso cuando los valores están empatados.
Rank Part 2024 :=
VAR ThisPart =
SELECTEDVALUE ( Failures[Defect Part No] )
VAR ThisValue =
[Failures 2024]
RETURN
COUNTROWS (
FILTER (
ALL ( Failures[Defect Part No] ),
[Failures 2024] > ThisValue
|| (
[Failures 2024] = ThisValue
&& Failures[Defect Part No] < ThisPart
)
)
) + 1Show Row := IF ( [Rank Part 2024] <= [Selected Top N], 1, 0 )
YoY % := VAR Prev = [Failures 2024] VAR Curr = [Failures 2025] RETURN IF ( Prev = 0, BLANK(), DIVIDE ( Curr - Prev, Prev ) )
Top N Failures 2024 :=
CALCULATE (
[Failures 2024],
FILTER (
ALL ( Failures[Defect Part No] ),
[Rank Part 2024] <= [Selected Top N]
)
)Top N Failures 2025 :=
CALCULATE (
[Failures 2025],
FILTER (
ALL ( Failures[Defect Part No] ),
[Rank Part 2024] <= [Selected Top N]
)
)Top N YoY % :=
DIVIDE (
[Top N Failures 2025] - [Top N Failures 2024],
[Top N Failures 2024]
)YoY % (Table) :=
IF (
ISINSCOPE ( Failures[Defect Part No] ),
[YoY %],
[Top N YoY %]
)Filas
Valores
Filtro a nivel visual
Ordenar
Esto sustituye un Top 10 estático por una solución Top N totalmente dinámica y segura para empresas.
Archivo de ejemplo: https://drive.google.com/file/d/1LdjM0w5fflJrNJFzOTWskSJmDOohO7ZC/view?usp=sharing
Si esta respuesta te ha ayudado a resolver tu problema, considera hacer clic en Aceptar como solución para que otros también puedan beneficiarse. Y si te ha resultado útil, un pequeño Kudos siempre se agradece.
Un saludo cordial,
Moiz Patvi
LinkedIn – https://www.linkedin.com/in/da-moiz-patvi/
Hola @MP18 ,
No sé si te entiendo del todo, prueba así:
1) Graficar un visual con la columna de datos y tres medidas como:
Failure2024 =
CALCULATE(
COUNTROWS(data),
data[Defect Year] = "2024"
)
Failure2025 =
CALCULATE(
COUNTROWS(data),
data[Defect Year] = "2025"
)
Change% = DIVIDE([Failure2025], [Failure2024])-1
2) filtrar la imagen con una medida como la siguiente y elegir 1:
filter =
VAR _2024Top3 =
CALCULATETABLE(
TOPN(
3, // change to 10 if needed
ALL(data[Defect Part No]),
CALCULATE(COUNTROWS(data))
),
data[Defect Year]="2024"
)
RETURN
IF(
MAX(data[Defect Part No]) IN _2024Top3,
1, 0
)
Funciona así:
Gracias @Ashish_Mathur Esto ha sido muy útil, especialmente por añadir un menú desplegable para cambiar el año. Aceptado como solución.
De nada.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.