DATESINPERIOD

Devuelve una tabla que contiene una columna de fechas que empieza por una fecha de inicio específica y sigue hasta el número y tipo de intervalos de fechas especificados.

Esta función es adecuada para pasar como filtro en la función CALCULATE. Úsela para filtrar una expresión por intervalos de fechas estándar, como días, meses, trimestres o años.

Sintaxis

DATESINPERIOD(<dates>, <start_date>, <number_of_intervals>, <interval>)

Parámetros

Término Definición
fechas Columna de fecha.
start_date Una expresión de fecha.
number_of_intervals Entero que especifica el número de intervalos que se van a sumar o restar a las fechas.
interval El intervalo según el cual se van a desplazar las fechas. El valor del intervalo puede ser uno de los siguientes: DAY, MONTH, QUARTER y YEAR.

Valor devuelto

Tabla que contiene una única columna de valores de fecha.

Comentarios

  • En el caso de uso más común, dates es una referencia a la columna de fecha de una tabla de fechas marcada.

  • Si el número especificado para number_of_intervals es positivo, las fechas se mueven hacia delante en el tiempo; si el número es negativo, las fechas se desplazan hacia atrás en el tiempo.

  • El parámetro interval es una enumeración. Los valores válidos son DAY, MONTH, QUARTER y YEAR. Dado que es una enumeración, los valores no se pasan como cadenas. Por lo que no debe ponerlas entre comillas.

  • La tabla devuelta solo puede incluir fechas almacenadas en la columna dates. Por ejemplo, si la columna dates comienza el 1 de julio de 2017 y el valor start_date es el 1 de julio de 2016, la tabla devuelta comenzará a partir del 1 de julio de 2017.

  • Esta función no se admite para su uso en el modo DirectQuery cuando se utiliza en columnas calculadas o en reglas de seguridad de nivel de fila (RLS).

Ejemplo

La definición siguiente de medida de la tabla Sales usa la función DATESINPERIOD para calcular los ingresos del año anterior (PY).

Observe que la fórmula usa la función MAX. Esta función devuelve la última fecha que se encuentra en el contexto de filtro. Por lo tanto, la función DATESINPERIOD devuelve una tabla de fechas que empieza a partir de la fecha más reciente del último año.

Los ejemplos de este artículo se pueden usar con el modelo de ejemplo de Power BI Desktop de Adventure Works DW 2020. Para obtener el modelo, vea Modelo de ejemplo de DAX.

Revenue PY =
CALCULATE(
    SUM(Sales[Sales Amount]),
    DATESINPERIOD(
        'Date'[Date],
        MAX('Date'[Date]),
        -1,
        YEAR
    )
)

Tenga en cuenta que el informe se filtra por el mes de junio de 2020. La función MAX devuelve el 30 de junio de 2020. Después, la función DATESINPERIOD devuelve un intervalo de fechas desde el 1 de julio de 2019 hasta el 30 de junio de 2020. Se trata de un año de valores de fecha, a partir del 30 de junio de 2020, para el último año.

Funciones de inteligencia de tiempo (DAX)
Funciones de fecha y hora (DAX)
Función DATESBETWEEN (DAX)