Antes de trabajar con medidas que lleven aparejado cálculos de tiempo, es importante hayamos resuelto nuestra estrategia de tabla de fechas. El siguiente articulo parte de la premisa que están trabajando con una tabla de fechas creada explícitamente y no con columnas fecha, aunque solo requieren pequeños ajustes o consideraciones.
La forma mas sencilla de armar cálculos de fechas sigue la siguiente sintaxis en la mayoría de los casos.
NombreDeMedida= VAR variableFechas = FuncionInteligenciaTiempo( TablaFecha[ColumnaFecha) RETURN CALCULATE( ExpresiónoMedida, variableFechas)
Ejemplos
Acumulado del Año (YTD)
SalesAmount YTD = VAR vFechas = DATESYTD( 'Date'[Date] ) RETURN CALCULATE( SUM( 'BI Sales'[SalesAmount]), vFechas )
Mismo Periodo Año Anterior (SPLY)
SalesAmount SPLY = VAR vFechas = SAMEPERIODLASTYEAR( 'Date'[Date] ) RETURN CALCULATE( SUM( 'BI Sales'[SalesAmount]), vFechas )
Mes Previo (PM)
SalesAmount PM = VAR vFechas = DATEADD( 'Date'[Date], -1, MONTH) RETURN CALCULATE( SUM( 'BI Sales'[SalesAmount]), vFechas )
En lugar de escribir la expresión de calculo, podemos utilizar una medida, quedándonos de la siguiente manera
SalesAmount YTD = VAR vFechas = DATESYTD( 'Date'[Date] ) RETURN CALCULATE( [Sales], vFechas ) SalesAmount SPLY = VAR vFechas = SAMEPERIODLASTYEAR( 'Date'[Date] ) RETURN CALCULATE( [Sales], vFechas ) SalesAmount PM = VAR vFechas = DATEADD( 'Date'[Date], -1, MONTH) RETURN CALCULATE( [Sales], vFechas )
Tambien podríamos hacer otros cálculos adicionales siguiendo es mismo patron:
Acumulado del Año – Año Previo
SalesAmount YTD - SPLY = VAR vFechas = SAMEPERIODLASTYEAR( DATESYTD( 'Date'[Date] )) RETURN CALCULATE( [Sales], vFechas )
Acumulado Últimos 12 meses
SalesAmount L12M = VAR vFechas = DATESINPERIOD('Date'[Date], LASTDATE( 'Date'[Date]), -12, MONTH) RETURN CALCULATE( [Sales], vFechas )