Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!View all the Fabric Data Days sessions on demand. View schedule
Hola
Estoy creando una medida (expresión en la parte inferior de la publicación) para decirme el porcentaje de elementos que se completaron a tiempo. Con ese fin, tengo una columna calculada que es básicamente [# sí] / ([# sí] + [# no]. Sin embargo, cuando puse esta introducción en una matriz visual para validar la respuesta, esto es con lo que terminé:
Esto me confunde porque pensé que la medida se calcularía independientemente para cada fila, por lo que terminaría con 100% en la fila 'Sí' y 0% en las filas 'No' y 'N/A'.
Soy relativamente novato en Power BI y DAX, así que supongo que me falta algo aquí. ¿Por qué esto no se comporta como creo que debería? ¿Qué cambios habría que hacer para que funcione de esa manera?
¡Gracias por tu ayuda!
% Programs Completed On Time =
CALCULATE(
DISTINCTCOUNT('Table - PROGRAMS'[ID]),
&& 'Table - PROGRAMS'[PROGRAM_STATUS] = "Completed"
&& 'Table - PROGRAMS'[PROGRAM_COMPLETED_ON_TIME] = "Yes"
)
/
CALCULATE(
DISTINCTCOUNT('Table - PROGRAMS'[ID]),
&& 'Table - PROGRAMS'[PROGRAM_STATUS] = "Completed"
&& 'Table - PROGRAMS'[PROGRAM_COMPLETED_ON_TIME] IN {"Yes", "No"}
)
@pbiuser12345 Es porque está intentando usar CALCULATE con una sola tabla. Eso tiende a no funcionar. Ditch CALCULATE puede ir con COUNTROWS(DISTINCT(FILTER(...)))
Gracias Greg, eso me puso en el camino correcto. La siguiente expresión está funcionando de la manera que hubiera esperado.
Sin embargo, no estoy seguro de entender el "por qué" de esto. ¿Eres capaz de elaborar o señalarme algo que explique por qué CALCULAR es malo en una sola mesa? ¿Debo considerar que es una buena práctica reservar CALCULATE para medidas que abarcan varias tablas y apegarme a funciones más básicas/fundamentales para aplicaciones de tabla única?
% Programs Completed On Time =
COUNTROWS(
FILTER(
'Table - PROGRAMS',
&& 'Table - PROGRAMS'[PROGRAM_STATUS] = "Completed"
&& 'Table - PROGRAMS'[PROGRAM_COMPLETED_ON_TIME] = "Yes"
)
)
/
COUNTROWS(
FILTER(
'Table - PROGRAMS',
&& 'Table - PROGRAMS'[PROGRAM_STATUS] = "Completed"
&& 'Table - PROGRAMS'[PROGRAM_COMPLETED_ON_TIME] IN {"Yes", "No"}
)
)
Lea esto, que creo que responde al "por qué". https://www.sqlbi.com/articles/the-importance-of-star-schemas-in-power-bi/
Check out the November 2025 Power BI update to learn about new features.
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!