Función DATEADD

La función DATEADD devuelve una tabla conteniendo una columna de fechas que coinciden con las implicadas en el contexto de filtro actual desplazadas hacia adelante o hacia atrás un número de intervalos determinado. Por ejemplo, supongamos que el contexto de filtro actual tiene visibles los días de la primera semana del mes de junio. Si a estas fechas les añadimos dos meses, el resultado será la primera semana del mes de agosto. Es decir, esta función nos permite mover “el período actual” (el período de tiempo indicado por el contexto de filtro) hacia adelante o hacia atrás en el tiempo saltando el número de bloques y el tipo de bloque que nos interese (y estoy intentando evitar usar la palabra “período” aquí, aunque sería más adecuada).

Por ejemplo, supongamos que queremos calcular las ventas del período equivalente al actual un mes antes. Podríamos crear una medida que nos devuelva esta información con el siguiente código:

Sales PM = 
CALCULATE(
    [Sales],
    DATEADD(
        'Calendar'[Date],
        -1,
        MONTH
    )
)

En este caso estamos cogiendo las fechas “visibles” y añadiéndoles -1 meses (es decir, restando un mes). Si llevamos esta medida a nuestra matriz veremos lo siguiente:

Función DATEADD

Si estamos trabajando a nivel de día, la medida anterior apuntaría al mismo día del mes anterior:

Función DATEADD

Los períodos disponibles como tercer argumento de DATEADD son DAY, MONTH, QUARTER y YEAR.
Es decir, si quisiéramos calcular las ventas de dos trimestres después (del “período actual”), podríamos hacerlo con la siguiente medida:

Sales N2Q = 
CALCULATE(
    [Sales],
    DATEADD(
        'Calendar'[Date],
        2,
        QUARTER
    )
)

La matriz mostraría el siguiente aspecto:

Función DATEADD

Comprobamos que, efectivamente, nos devuelve el valor correcto.