cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Cálculo de MTD de prorrateo del año anterior

Estimados todos,
Espero que tenis un gran día.


Tengo algunos problemas al tratar de hacer un cálculo de MTD de año anterior prorrateado,

en mi caso, los datos de hecho se componen del importe de las ventas y la fecha de las ventas,
y hay una dimensión de fecha calculada que contiene información del calendario desde principios de 2020 hasta finales de 2021

la lista de datos de hechos proviene de 2020-2021, los últimos datos de ventas son del 9 de noviembre de 2021.

Lo que tengo que hacer es hacer una tabla para mostrar la siguiente información:

  • Número de mes
  • Año actual (2021) Monto de las ventas de MTD
  • Año anterior (2020) prorratear el monto de las ventas de MTD

la idea es mostrar el monto de las ventas de MTD (2020) del año anterior solo hasta el 9 de noviembre de 2020 en la tabla y no las ventas de todo el año.

He creado tres medidas tratando de lograr eso.

1. Uso de TOTALMTD para calcular el MTD del año en curso

Ventas MTD = 
CALCULATE(TOTALMTD(SUM('fact'[Sales]),DimDate[Date]), FILTER(DimDate,DimDate[Date]<=TODAY()))

y a continuación se indican las medidas para calcular el mtD prorrateado del año anterior

2. Uso de SAMEPERIODLASTYEAR

Ventas SamePeriodLastYear = 
CALCULATE([Ventas MTD], SAMEPERIODLASTYEAR(DimDate[Date]))

3. Uso de la combinación de EDATE y CALCULATE

Ventas MTD PrevYear = 
var PrevYearPeriod = EDATE(NOW(),-12)

var salesPrevYear =
CALCULATE([Sales MTD], DimDate, 'DimDate'[Date] <= PrevYearPeriod)

ventas de devoluciónPrevYear

y aquí están los resultados:

WilliamKMS_2-1636428226949.pngWilliamKMS_1-1636427786537.png

De la configuración de la tabla y segmentación de datos (sin año seleccionado) anterior, la medida SAMEPERIODLASTYEAR muestra el MTD del año actual en lugar del MTD del año anterior

y la medida EDATE & CALCULATE muestra un MTD de prorrateo correcto del año anterior

WilliamKMS_3-1636428330853.pngWilliamKMS_4-1636428342494.png

sin embargo, si selecciono la segmentación de datos del año actual (2021), la medida SAMEPERIODLASTYEAR muestra las cifras correctas de MTD del año anterior, pero es para todo el año en lugar de prorratear (solo calcule hasta el 9 de noviembre de 2020), y la medida EDATE & CALCULATE muestra espacios en blanco.

ustedes tienen sugerencias e ideas para manejar esto?
aquí está el archivo PBIX y el conjunto de datos si quieren echar un vistazo más de cerca,
y muchas gracias por su apoyo.

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@WilliamKMS , Por favor, compruebe la medida y la alternativa en los comentarios para la devolución

LYMTD QTY forzado=
var _max = fecha(año(hoy())-1,mes(hoy()),día(hoy()))
devolución
if(max('Date'[Date])<=_max, CALCULATE(Sum('order'[Qty]),DATESMTD(dateadd('Date'[Date],-1,year)),'Date'[Date]<=_max), blank())
O
CALCULATE(Suma('orden'[Cantidad]),DATESMTD(dateadd('Fecha'[Fecha],-1,año)),'Fecha'[Fecha]<=_max)
TOTALMTD(Suma('orden'[Cantidad]),dateadd('Fecha'[Fecha],-1,año),'Fecha'[Fecha]<=_max)

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@WilliamKMS , Por favor, compruebe la medida y la alternativa en los comentarios para la devolución

LYMTD QTY forzado=
var _max = fecha(año(hoy())-1,mes(hoy()),día(hoy()))
devolución
if(max('Date'[Date])<=_max, CALCULATE(Sum('order'[Qty]),DATESMTD(dateadd('Date'[Date],-1,year)),'Date'[Date]<=_max), blank())
O
CALCULATE(Suma('orden'[Cantidad]),DATESMTD(dateadd('Fecha'[Fecha],-1,año)),'Fecha'[Fecha]<=_max)
TOTALMTD(Suma('orden'[Cantidad]),dateadd('Fecha'[Fecha],-1,año),'Fecha'[Fecha]<=_max)

CALCULATE(Sum('fact'[Sales]),DATESMTD(dateadd('DimDate'[Date],-1,year)),'DimDate'[Date]<=_max)
o
TOTALMTD(Suma('hecho'[Ventas]),dateadd('DimDate'[Fecha],-1,año),'DimDate'[Fecha]<=_max)

para el retorno en medida está funcionando muy bien! Gracias @amitchandak.
Sin embargo, de alguna manera la tabla ya no muestra la cifra total con esta medida (ambos rendimientos).

LYMTD Sales prevAño forzado = 
var _max = fecha(año(hoy())-1,mes(hoy()),día(hoy()))
devolución
CALCULATE(Sum('fact'[Sales]),DATESMTD(dateadd('DimDate'[Date],-1,year)),'DimDate'[Date]<=_max)
O
TOTALMTD(Suma('hecho'[Ventas]),dateadd('DimDate'[Fecha],-1,año),'DimDate'[Fecha]<=_max)
WilliamKMS_1-1636435234165.png

Helpful resources

Announcements
Microsoft Build 768x460.png

Microsoft Build is May 24-26. Have you registered yet?

Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.

charticulator_carousel_with_text (1).png

Charticulator Design Challenge

Put your data visualization and design skills to the test! This exciting challenge is happening now through May 31st!

May UG Leader Call Carousel 768x460.png

What difference can a User Group make for you?

At the monthly call, connect with other leaders and find out how community makes your experience even better.

Power BI Release May 2022 768x460.png

Check it out!

Click here to read more about the May 2022 updates!

Top Kudoed Authors