Función PARALELLPERIOD

La función PARALLELPERIOD devuelve una tabla conteniendo una columna de fechas que coinciden con las implicadas en el contexto actual desplazadas hacia adelante o hacia atrás un número de intervalos determinado pero ampliadas al intervalo que se haya especificado.

Por ejemplo, supongamos que creamos la siguiente medida calculando las ventas para el mes completo anterior:

Sales Previous Parallel Month = 
CALCULATE(
    [Sales],
    PARALLELPERIOD(
        'Calendar'[Date],
        -1,
        MONTH
    )
)

Si la llevamos a nuestra matriz junto con la medida [Sales PreviousMonth] que ya habíamos creado, el resultado sería el siguiente:

Función PARALELLPERIOD

Aun cuando podríamos pensar que esta función es equivalente a alguna de las ya vistas (DATEADD, PREVIOUSMONTH, etc.), podemos comprobar en la captura de pantalla anterior que no es así. Cuando el período actual es un mes (o un día, aunque no se muestra en la imagen) el resultado coincide con el devuelto por la medida [Sales PreviousMonth]: Por ejemplo, si el período actual es un día, digamos el 15 de marzo de 2017, la función PARALLELPERIOD (con los argumentos pasados: -1 y MONTH) devolvería el período equivalente un mes antes del 15 de febrero de 2017 (es decir, el 15 de enero de 2017) y se expandiría a todo el mes de enero. O, si el período actual fuese el mes de marzo entero, la función apuntaría al período equivalente anterior (el mes de febrero) y se expandiría a dicho mes (es decir, no haría nada pues ya estamos apuntando al mes completo).

Sin embargo, si el período actual es de un trimestre (por ejemplo, el tercer trimestre de 2015, en rojo en la imagen anterior) -es decir, si el período actual fuese el correspondiente a los meses de julio, agosto y septiembre-, la función PARALELLPERIOD devolvería el período equivalente un mes antes (es decir, a los meses de junio, julio y agosto) y "se expandiría a todo el mes" (lo que, en este caso, tampoco supondría ningún cambio pues ya estamos ocupando meses enteros).

Otro escenario en el que podemos ver la diferencia entre la función PARALLELPERIOD y DATEADD es cuando el período actual es, por ejemplo, la primera semana del mes de marzo. Si añadimos un mes usando DATEADD, estaríamos apuntando a la primera semana de abril. Si hiciésemos lo mismo con PARALLELPERIOD, estaríamos apuntando a todo el mes de abril.