Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
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.
Fecha | Producto | ProdType | Planta | Presupuesto |
2020-09-01 | Perros | Grande | Corteza | 2 |
2020-09-01 | Perros | Medio | Corteza | 5 |
2020-09-01 | Perros | Pequeño | Corteza | 3 |
2020-09-01 | Gatos | Gatos | Maullar | 7 |
2020-08-02 | Perros | Grande | Corteza | 5 |
2020-08-02 | Perros | Medio | Corteza | 10 |
2020-08-02 | Perros | Pequeño | Corteza | 3 |
2020-08-02 | Gatos | Gatos | Maullar | 10 |
2020-08-01 | Perros | Grande | Corteza | 5 |
2020-08-01 | Perros | Medio | Corteza | 10 |
2020-08-01 | Perros | Pequeño | Corteza | 3 |
2020-08-01 | Gatos | Gatos | Maullar | 10 |
2020-07-02 | Perros | Grande | Corteza | 5 |
2020-07-02 | Perros | Medio | Corteza | 5 |
2020-07-02 | Perros | Pequeño | Corteza | 3 |
2020-07-02 | Gatos | Gatos | Maullar | 2 |
2020-07-01 | Perros | Grande | Corteza | 5 |
2020-07-01 | Perros | Medio | Corteza | 5 |
2020-07-01 | Perros | Pequeño | Corteza | 3 |
2020-07-01 | Gatos | Gatos | Maullar | 2 |
2020-06-02 | Perros | Grande | Corteza | 5 |
2020-06-02 | Perros | Medio | Corteza | 5 |
2020-06-02 | Perros | Pequeño | Corteza | 3 |
2020-06-02 | Gatos | Gatos | Maullar | 2 |
2020-06-01 | Perros | Grande | Corteza | 5 |
2020-06-01 | Perros | Medio | Corteza | 5 |
2020-06-01 | Perros | Pequeño | Corteza | 3 |
2020-06-01 | Gatos | Gatos | Maullar | 2 |
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
@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.
¿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.