Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Medidas que resultan en un total en blanco, mejores prácticas de solución

Hola

Vuelvo a mí con una pregunta.

Estoy trabajando en un informe de power bi muy complejo que hace muchos cálculos del año fiscal para cubrir W, M, Q, Y actuales y anteriores.

Ahora me gusta pensar que mi solución para el trimestre del año fiscal es bastante sólida. La sintaxis de la medida es bastante sencilla. Pero estoy golpeando un poco de problemas anu con los totales. El SUM estándar deja los totales vacíos, lo que no se desea. Ahora he hecho una buena cantidad de excavaciones en las que la solución es usar el SUMX dentro de la medida para resolver este problema.

En general estoy buscando algunos consejos sobre cuáles son los mejores enfoques. Simplemente no soy lo suficientemente conocedor del uso de SUMX, SUMMARIZE y funciones relacionadas.

Aquí vamos:

Tengo esta medida de calcular el trimestre pasado / anterior.

Monto de ventas PQ =
VAR __MeasureDate = LASTDATE('Date'[Date]) // Trimestre fiscal seleccionado en la segmentación de datos
VAR __MeasuredFiscalQr = CALCULATE(MIN('Date'[FiscalQuarterKey]),FILTER('Date','Date'[Date] = __MeasureDate)) // Get FiscalQuarterKey beloging to measured date
VAR __PastFiscalQr = __MeasuredFiscalQr - 1 // FiscalQuarterKey - 1 is past quarter
VAR __Amount = CALCULATE(SUM(GeneralSales[Importe]), USERELATIONSHIP(GeneralSales[Fecha],'Fecha'[Fecha]), FILTER( ALL ('Fecha'),'Fecha'[FiscalQuarterKey] = __PastFiscalQr))

DEVOLUCIÓN ( __Amount)
El uso de esto dará como resultado lo siguiente. Marque el total en blanco.

table.jpg

Ahora, de varias fuentes, he aprendido que SUMX resolvería mi problema (y lo hace).

Monto de ventas PQ SUMX =
VAR __Amount = SUMX(VALUES('Date'[FiscalQuarterKey]),[Sales Amount PQ])
DEVOLUCIÓN ( __Amount)

table.jpg

Pero usar este patrón significaría que todas mis medidas fiscales requieren una medida SUMX adicional. ¿Es ese realmente el mejor enfoque? Me gustaría ver cómo se pueden combinar ambos.

¿Hay una mejor manera de abordar esto? ¿Cuál es el patrón de mejores prácticas que cubre este tipo de medidas?

A continuación encontrará un enlace al archivo power bi.

https://1drv.ms/u/s!Ag3hOdYVKV71qkVw9go35YozMPbW?e=BYGc5n

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@Mark1982 ¿Por qué quieres que el total no esté en blanco? Es un poco confuso para el usuario final que lo haya llamado 'Cantidad de ventas PQ', pero el total en realidad proporciona la cantidad total de ventas para todos los tiempos (esto se debe a que el contexto de fecha no se proporciona en la fila total).

SUMX es una buena medida para usar y acostumbrarse a usar.

Si siempre proporcionará un contexto trimestral o desea utilizar el trimestre asociado a la última fecha en contexto (ya que utilizó la función LASTDATE en su medida), también puede actualizar la medida para eliminar la expresión FILTER:

Monto de ventas PQ =
VAR __MeasureDate = LASTDATE('Date'[Date]) // Trimestre fiscal seleccionado en la segmentación de datos
VAR __MeasuredFiscalQr = CALCULATE(MIN('Date'[FiscalQuarterKey]),FILTER('Date','Date'[Date] = __MeasureDate)) // Get FiscalQuarterKey beloging to measured date
VAR __PastFiscalQr = __MeasuredFiscalQr - 1 // FiscalQuarterKey - 1 is past quarter
VAR __Amount = CALCULATE(SUM(GeneralSales[Importe]), USERELATIONSHIP(GeneralSales[Fecha],'Fecha'[Fecha]), 'Fecha'[FiscalQuarterKey] = __PastFiscalQr)

DEVOLUCIÓN ( __Amount)
Y eso debería rellenar la fila total con el último valor. En la captura de pantalla anterior seguirá estando en blanco, pero si agrega una segmentación de datos y selecciona una fecha en este trimestre (2021 / Q3) mostrará 350 en la fila total.

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Al usuario le gustaría poder ver el período actual frente al anterior. Esto incluye el total. Además, en mi modelo (no en el ejemplo proporcionado) hay algunos cálculos de varianza y diferencia. La solución proporcionada no dará lugar a cálculos correctos.

De su respuesta estoy entendiendo que usar una medida adicional SUMX como envoltorio es una buena práctica. ¿Lo estoy entendiendo correctamente?

@Mark1982 Sí, SUMX es una buena práctica y un mejor rendimiento, así que adquiera ese hábito y se ahorrará muchos dolores de cabeza.

¿Significa eso que ha resuelto el problema con el uso de SUMX? Si todavía está buscando una solución, proporcione más detalles sobre la variación, etc. que omitió de su ejemplo para que podamos proporcionar una solución precisa que sea completa, de lo contrario marque una de estas publicaciones como una solución o escriba un resumen y marque ese resumen como la solución para que otros también puedan aprender.

SUMX es impresionante en general. Probablemente más información de la que está buscando, pero SQLBI es mi fuente de referencia para los aprendizajes de DAX: https://www.sqlbi.com/blog/alberto/2011/10/26/sum-or-sumx-with-simple-intermediate-calculations-sumx...

Syndicate_Admin
Administrator
Administrator

@Mark1982 ¿Por qué quieres que el total no esté en blanco? Es un poco confuso para el usuario final que lo haya llamado 'Cantidad de ventas PQ', pero el total en realidad proporciona la cantidad total de ventas para todos los tiempos (esto se debe a que el contexto de fecha no se proporciona en la fila total).

SUMX es una buena medida para usar y acostumbrarse a usar.

Si siempre proporcionará un contexto trimestral o desea utilizar el trimestre asociado a la última fecha en contexto (ya que utilizó la función LASTDATE en su medida), también puede actualizar la medida para eliminar la expresión FILTER:

Monto de ventas PQ =
VAR __MeasureDate = LASTDATE('Date'[Date]) // Trimestre fiscal seleccionado en la segmentación de datos
VAR __MeasuredFiscalQr = CALCULATE(MIN('Date'[FiscalQuarterKey]),FILTER('Date','Date'[Date] = __MeasureDate)) // Get FiscalQuarterKey beloging to measured date
VAR __PastFiscalQr = __MeasuredFiscalQr - 1 // FiscalQuarterKey - 1 is past quarter
VAR __Amount = CALCULATE(SUM(GeneralSales[Importe]), USERELATIONSHIP(GeneralSales[Fecha],'Fecha'[Fecha]), 'Fecha'[FiscalQuarterKey] = __PastFiscalQr)

DEVOLUCIÓN ( __Amount)
Y eso debería rellenar la fila total con el último valor. En la captura de pantalla anterior seguirá estando en blanco, pero si agrega una segmentación de datos y selecciona una fecha en este trimestre (2021 / Q3) mostrará 350 en la fila total.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.