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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
TReynolds
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
amitchandak
Super User
Super User

@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.

smillar
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
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors