Forum Discussion
Power BI Total
Hola
He creado medidas para las ventas del año en curso frente a las ventas del año pasado.
Para el año en curso:
Hay @KShah77 ,
Cada fila tiene contexto para calcular. Por lo tanto, debemos modificar el contexto a través de filter(all(table)....). en este punto, necesitamos condsider cada mes, pero también la fila total. Así que obtén una fecha de rango de la fila actual. Por ejemplo, mes 1 año 2021 , la fecha de inicio del año pasado es fecha (2021 -1,1,1), la fecha de finalización es fecha(2021-1,1,31). Esto es lo que hacen var _start y var _end.
Pero si su tipo de "fecha de inicio" es Fecha, tal vez pueda probar este código:
LY sales = CALCULATE(SUM('Table'[Sales]),all(),DATEADD('Table'[Date],-1,YEAR))
resultado:
Puede hacer referencia al pbix en el archivo adjunto. si necesita más ayuda, comparta su archivo pbix sin fecha confidencial.
Saludos
Equipo de apoyo a la comunidad _ chenwu zhu
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
6 Replies
- Syndicate_Admin
Administrator
Usar SELECTEDVALUE dentro de un CALCULATE es causar problemas. Deberá agregar un indicador "IsPastInPreviousYear" a su tabla de calendario para indicar qué período de tiempo debe considerarse. Entonces la medida sería
Ventas LY = CALCULAR([Ventas], SAMEPERIODLASTYEAR('Dates'[Date]),'Dates'[IsPastInPreviousYear])
- Syndicate_Admin
Administrator
Hola
Gracias por su respuesta.
No tengo tabla de fechas, mis fechas están en la misma tabla de ventas. Traté de usar esta medida, pero tampoco funciona.
- Syndicate_Admin
Administrator
Hay @KShah77 ,
¿Es que solo tienes una mesa de venta?
En caso afirmativo, es extraño que LY Sales no obtenga el resultado cuando seleccione 2022 a menos que [Sales] tenga alguna función como all() o removefilter() en su código.
Si me equivoco, puedes intentar usar la siguiente medida.
LY Sales = VAR _start = DATE( MAX( sales[year] ) - 1, MIN( 'sales'[month] ), 1 ) VAR _end = DATE( MAX( 'sales'[year] ) - 1, MAX( 'sales'[month] ) + 1, 1 ) - 1 RETURN CALCULATE( SUM( 'sales'[sales] ), FILTER( ALL( table ), [dates] >= _start && [dates] <= _end ) )Si no tiene [fechas] en la tabla de ventas, cree una columna de fechas por [año], [mes], [día]
O comparta datos de muestra y espere el resultado, si necesita más ayuda.
Saludos
Equipo de apoyo a la comunidad _ chenwu zhu
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
- Syndicate_Admin
Administrator
Hola
Comparte el enlace desde donde puedo descargar tu archivo PBI.
- Syndicate_Admin
Administrator
Hola
Gracias por su respuesta.
Entonces, sí, todos mis datos relacionados están en la tabla "ventas" y he creado la columna Año, Mes y Día a partir de mi columna "startDate". Y mi medida [de Ventas] tiene suma de subtotal nada más.
Y cuando pruebo tu solución me da unos números que no está en ninguna parte del registro de ningún año o mes y además ni siquiera es un total de eso todos los años, ¿sería genial si pudieras explicar ese CÓDIGO?
Encuentre la imagen adjunta de SELECTEDVALUE = 2021 y 2022
para refrence, esto es lo que obtengo después de usar su código proporcionado para LY Sales.
- Syndicate_Admin
Administrator
Hay @KShah77 ,
Cada fila tiene contexto para calcular. Por lo tanto, debemos modificar el contexto a través de filter(all(table)....). en este punto, necesitamos condsider cada mes, pero también la fila total. Así que obtén una fecha de rango de la fila actual. Por ejemplo, mes 1 año 2021 , la fecha de inicio del año pasado es fecha (2021 -1,1,1), la fecha de finalización es fecha(2021-1,1,31). Esto es lo que hacen var _start y var _end.
Pero si su tipo de "fecha de inicio" es Fecha, tal vez pueda probar este código:
LY sales = CALCULATE(SUM('Table'[Sales]),all(),DATEADD('Table'[Date],-1,YEAR))
resultado:
Puede hacer referencia al pbix en el archivo adjunto. si necesita más ayuda, comparta su archivo pbix sin fecha confidencial.
Saludos
Equipo de apoyo a la comunidad _ chenwu zhu
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.