Hola
Necesito ayuda con cómo calcular los totales en DAX para productos YTD.
Necesito informar el último valor conocido para cada producto. Para empezar, creé un objeto visual con tres columnas:
La última fecha de informe conocida es el 31 de enero de 2023. Para todos los demás productos, la última fecha conocida de presentación de informes es el 31 de diciembre de 2022. Cada "Valor total por producto" se desglosa correctamente por producto. Sin embargo, el problema que no puedo resolver es el total de todos los productos. El total que se muestra en la parte inferior de la tabla es 20.272.531.064,53, que es solo el total de los productos para los que hay un valor al 31 de enero (es decir, productos 8, 9, 33, etc.). El total real que estoy tratando de disipar es un poco más de 40.000 millones.
Sé que Power BI tiene su propia lógica cuando se trata de calcular totales, pero no entiendo cómo solucionar esto.
¿Alguien puede ayudar? El código que estoy usando es el siguiente, usando una tabla llamada "Datos":
LastDateOfReporting = Calculate(
MAX(Data[ReportingDate]),
ALL(Data[Product.ProductID]),
VALUES(Data[ReportingDate].[ Fecha]))
Valor total por producto =
VAR SelectedPeriod = SELECTEDVALUE('Date Table'[PeriodNumber]) - comentario: hay una segmentación de datos en este objeto visual que permite a los usuarios seleccionar el último valor conocido para cada producto o los valores totales al final del año anterior.
VAR DayAnnualReporting = Dim_Dates[LastDayOfPreviousYear]
VAR LatestDateInReporting = Dim_Dates[LatestDateInReporting]
VAR LatestDateOfData =
CALCULAR(
MAX(Data[ReportingDate]),
FILTER(Data,Data[Product.ProductID]),
Data[ReportingDate]<=LatestDateInReporting
)
Devolución
INTERRUPTOR(
SelectedPeriod,
1, CALCULATE(SUMA(Datos[Valor del producto]), FILTRO(Datos, datos[ReportingDate] = DayAnnualReporting)),
2, CALCULATE(SUMX(Data,Data[Product Value]), FILTER(Data, Data[ReportingDate].[ Date] = LatestDateOfData))
)
Y con esto, el total en la parte inferior de la tabla está equivocado.
¡Cualquier ayuda será muy apreciada!
Solved! Go to Solution.
Hola
Finalmente logré arreglar esto usando los siguientes dos artículos con muchas gracias a los dos autores:
Medir totales, la última palabra - Comunidad de Microsoft Power BI
RESUMEN DE POWER BI | ¿Cómo usar la función SUMMARIZE DAX? (wallstreetmojo.com)
Estoy publicando lo que hice en caso de que pueda ayudar a alguien que está luchando con el mismo problema.
Lo que hice fue agregar una medida RESUMIR como se describe en los artículos anteriores y modificar mi código en consecuencia:
- Creé una nueva medida llamada m_Latest para obtener los totales correctos por fila, mientras que el total de todas las filas sigue siendo incorrecto:
m_Latest =
VAR LatestDateOfData =
CALCULAR(
MAX(Data[ReportingDate]),
FILTER(Data,Data[Product.ProductID])
)
Devolución
CALCULATE(SUMX(Data, Data[Product Value]), FILTER(Data, Data[ReportingDate]=LatestDateOfData)
)
- Luego creé otra medida usando RESUMIR para poner todo lo anterior en una nueva tabla:
m_TotalLatestData =
VAR __table = SUMMARIZE(Data,Data[Product.ProductID],"VLatest",'Key Measures'[m_Latest])
DEVOLUCIÓN
SI(HASONEVALUE(Datos[Valor del producto]),'Medidas clave'[m_Latest],SUMX(__table,[VLatest]))
- Agregué esto a mi código original:
Valor total por producto =
VAR SelectedPeriod = SELECTEDVALUE('Tabla de fechas'[PeriodNumber])
VAR DayAnnualReporting = Dim_Dates[LastDayOfPreviousYear]
VAR LatestDateOfData =
CALCULAR(
MAX(Data[ReportingDate]),
FILTER(Data,Data[Product.ProductID]),
)
Devolución
INTERRUPTOR(
SelectedPeriod,
1, CALCULATE(SUMA(Datos[Valor del producto]), FILTRO(Datos, datos[ReportingDate] = DayAnnualReporting)),
2, «Medidas clave»[m_TotalLatestData]
- Y ahora me está dando lo que necesito:
Hola
Finalmente logré arreglar esto usando los siguientes dos artículos con muchas gracias a los dos autores:
Medir totales, la última palabra - Comunidad de Microsoft Power BI
RESUMEN DE POWER BI | ¿Cómo usar la función SUMMARIZE DAX? (wallstreetmojo.com)
Estoy publicando lo que hice en caso de que pueda ayudar a alguien que está luchando con el mismo problema.
Lo que hice fue agregar una medida RESUMIR como se describe en los artículos anteriores y modificar mi código en consecuencia:
- Creé una nueva medida llamada m_Latest para obtener los totales correctos por fila, mientras que el total de todas las filas sigue siendo incorrecto:
m_Latest =
VAR LatestDateOfData =
CALCULAR(
MAX(Data[ReportingDate]),
FILTER(Data,Data[Product.ProductID])
)
Devolución
CALCULATE(SUMX(Data, Data[Product Value]), FILTER(Data, Data[ReportingDate]=LatestDateOfData)
)
- Luego creé otra medida usando RESUMIR para poner todo lo anterior en una nueva tabla:
m_TotalLatestData =
VAR __table = SUMMARIZE(Data,Data[Product.ProductID],"VLatest",'Key Measures'[m_Latest])
DEVOLUCIÓN
SI(HASONEVALUE(Datos[Valor del producto]),'Medidas clave'[m_Latest],SUMX(__table,[VLatest]))
- Agregué esto a mi código original:
Valor total por producto =
VAR SelectedPeriod = SELECTEDVALUE('Tabla de fechas'[PeriodNumber])
VAR DayAnnualReporting = Dim_Dates[LastDayOfPreviousYear]
VAR LatestDateOfData =
CALCULAR(
MAX(Data[ReportingDate]),
FILTER(Data,Data[Product.ProductID]),
)
Devolución
INTERRUPTOR(
SelectedPeriod,
1, CALCULATE(SUMA(Datos[Valor del producto]), FILTRO(Datos, datos[ReportingDate] = DayAnnualReporting)),
2, «Medidas clave»[m_TotalLatestData]
- Y ahora me está dando lo que necesito: