cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Helper I
Helper I

Problemas para obtener el presupuesto total con FILTER, SUMX y DISTINCT

Hola

Estoy tratando de calcular el presupuesto total para los meses anteriores a una fecha seleccionada (la medida [fecha seleccionada]). Este es un ejemplo de los datos que estoy usando.

FechaProductoProdTypePlantaPresupuesto
2020-09-01PerrosGrandeCorteza2
2020-09-01PerrosMedioCorteza5
2020-09-01PerrosPequeñoCorteza3
2020-09-01GatosGatosMaullar7
2020-08-02PerrosGrandeCorteza5
2020-08-02PerrosMedioCorteza10
2020-08-02PerrosPequeñoCorteza3
2020-08-02GatosGatosMaullar10
2020-08-01PerrosGrandeCorteza5
2020-08-01PerrosMedioCorteza10
2020-08-01PerrosPequeñoCorteza3
2020-08-01GatosGatosMaullar10
2020-07-02PerrosGrandeCorteza5
2020-07-02PerrosMedioCorteza5
2020-07-02PerrosPequeñoCorteza3
2020-07-02GatosGatosMaullar2
2020-07-01PerrosGrandeCorteza5
2020-07-01PerrosMedioCorteza5
2020-07-01PerrosPequeñoCorteza3
2020-07-01GatosGatosMaullar2
2020-06-02PerrosGrandeCorteza5
2020-06-02PerrosMedioCorteza5
2020-06-02PerrosPequeñoCorteza3
2020-06-02GatosGatosMaullar2
2020-06-01PerrosGrandeCorteza5
2020-06-01PerrosMedioCorteza5
2020-06-01PerrosPequeñoCorteza3
2020-06-01GatosGatosMaullar2

Aquí está el DAX que estoy usando:

Monthly Buget Sum =
VAR _selectmonth = MONTH([select date])
VAR _previousmonth = _selectmonth - 1
VAR _selectyear = YEAR([select date])
RETURN
CALCULATE(
SUMX( DISTINCT('data table'[Budget]), 'data table'[Budget]),
FILTER(
ALL('data table'),
'data table'[Date].[Date] >= DATE(2020-06-01)
&& 'data table'[Date] <= _previousmonth
&& 'data table'[Plant} = MIN('data table'[Plant])
)
)

Si elijo 2020-06-02 para [fecha de selección], la suma de presupuesto mensual devuelve (en blanco) para ambas plantas, Bark y Meow. Esto se espera porque no hay mes antes de 06.

Si elijo 2020-07-01 para [fecha de selección], La suma de presupuesto mensual devuelve 13 para Bark y 2 para Meow. Esto es correcto, porque el presupuesto mensual para corteza es de 3 perros pequeños, 5 medianos y 5 grandes. El presupuesto mensual para Meow es de 2.

Las cosas se vuelven raras cuando selecciono 2020-08-02. Suma de presupuesto mensual devuelve 4 para Meow, que es correcto (el presupuesto mensual para 06 era 2 y para 07 fue 2). Para Bark, Monthly Budget Sum devuelve 23, lo cual es incorrecto (el presupuesto mensual para 06 era 13 y para 07 era 13). La Suma de Presupuesto Mensual retiró el 3 (el presupuesto mensual para Perros Pequeños).

Cuando configuro [seleccionar fecha] en 2020-09-01, Suma de presupuesto mensual devuelve 14 para la fábrica de Meow (que es correcta, 2 + 2 + 10) y 41 para la fábrica de corteza (que es incorrecta 13 + 10 (el presupuesto incorrecto) + 18).

¿Por qué Power BI notifica un presupuesto mensual correcto para 06 y 08, pero no para 07 para la corteza de fábrica?

Cualquier ayuda que se pueda dar para resolver este problema, o reescribir mi DAX (tengo suficiente DAX para ser peligroso, pero eso es todo), sería muy apreciado.

Además, ¿hay otra forma de diferenciar entre categorías en FILTER además de usar MAX() o MIN()? Sin una expresión u otra, la suma de presupuesto mensual devuelve los presupuestos mensuales resumidos para todas las fábricas y no lo desglosa por categoría (es decir, por Bark y Meow).

Gracias por tu ayuda,

T

2 REPLIES 2
Super User IV
Super User IV

@TReynolds, lo he probado con la tabla Time Intelligence y Date.

Medida de presupuesto :SUMX( Values('data table'[Budget]), 'data table'[Budget])

Ventas MTD : CALCULATE([Budget Measure],DATESMTD('Date'[Date]))
last MTD Sales - CALCULATE([Budget Measure],DATESMTD(dateadd('Date'[Date],-1,MONTH)))
Ventas del último mes: CALCULATE([Budget Measure],previousmonth('Date'[Date]))
Last MTD (completar) Ventas - CALCULATE([Budget Measure],DATESMTD(ENDOFMONTH(dateadd('Date'[Date],-1,MONTH))))
valor del mes anterior: CALCULATE([Budget Measure],previousmonth('Date'[Date]))

diff - [Ventas MTD]-[las últimas ventas MTD]
diff % á divide([MTD Sales]-[last MTD Sales],[last MTD Sales])

Power BI — MTD
https://medium.com/@amitchandak.1978/power-bi-mtd-questions-time-intelligence-3-5-64b0b4a4090e

Para obtener lo mejor de la función de inteligencia del tiempo. Asegúrese de que tiene un calendario de fechas y que se ha marcado como la fecha en la vista de modelo. Además, únete a ella con la columna de fecha de tus hechos. recomienda:
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/

Vea si mi seminario web sobre Time Intelligence puede ayudar: https://community.powerbi.com/t5/Webinars-and-Video-Gallery/PowerBI-Time-Intelligence-Calendar-WTD-Y...


Apreciamos tus Felicitaciones.



Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
Dashboard of My Blogs !! YouTube Channel !! Connect on Linkedin

Proud to be a Super User!

New Member

¿Por qué no crea una tabla calculada o hace que la consulta de base de datos lo haga? Sería trivial a nivel de base de datos.

Helpful resources

Announcements
secondImage

Happy New Year from Power BI

This is a must watch for a message from Power BI!

December Update

Check it Out!

Click here to read more about the December 2020 Updates!

Community Blog

Check it Out!

Click here to read the latest blog and learn more about contributing to the Power BI blog!

Get Ready for Power BI Dev Camp

Get Ready for Power BI Dev Camp

Mark your calendars and join us for our next Power BI Dev Camp!.

Top Solution Authors