DAX – Creación de una tabla CALENDARIO basada en múltiples columnas

Un usuario Pregunto ✅

RC

Hola a todos !

Intento crear una tabla de calendario basada en varias columnas para obtener la primera fecha y la última fecha.

Tabla 1 contiene las columnas FECHA_1, FECHA_2 y FECHA_3.

  • FECHA_1 obtiene fechas entre 01/01/19 y 01/01/21
  • FECHA_2 obtiene fechas entre el 01/03/19 y el 31/12/23
  • FECHA_2 obtiene fechas entre el 01/01/12 y el 31/12/22

Descubro obtener la primera fecha y la última fecha para una columna:

CALENDAR_TABLE = CALENDAR(FIRSTDATE(TABLE_1[DATE_1]);LASTDATE(TABLE_1[DATE_1]))

¡Pero necesito referirme a las 3 columnas, no solo a la tabla DATE_1!

Si entiendo, necesito:

  1. reunir todas las fechas disponibles en estas 3 tablas en una variable
  2. identificar la fecha más antigua y la más reciente en la variable
  3. use estos primeros y últimos como primera fecha y última fecha en el CALENDARIO

Alguien podría ayudarme en eso?

Saludos,

RC

mwegener

En respuesta a RC

Hola @CR,

porque tan complicado

Calendar_auto = CALENDARAUTO()

O prueba esto…

CALENDAR_TABLE =
VAR DATE_TABLE =
    UNION (
        SELECTCOLUMNS ( Table_1, "Date", Table_1[DATE_1] ),
        SELECTCOLUMNS ( Table_1, "Date", Table_1[DATE_2] ),
        SELECTCOLUMNS ( Table_1, "Date", Table_1[DATE_3] )
    )
RETURN
    CALENDAR ( MINX ( DATE_TABLE, [Date] ), MAXX ( DATE_TABLE, [Date] ) )

Saludos,

marcus

Dortmund – Alemania
Si respondí a su pregunta, marque mi publicación como solución, esto también ayudará a otros.
Por favor, dé Kudos por el apoyo.

mwegener

Hola @CR

mira esto.

CALENDARIO AUTOMÁTICO()

https://docs.microsoft.com/en-us/dax/calendarauto-function-dax

Saludos,

marcus

Dortmund – Alemania
Si respondí a su pregunta, marque mi publicación como solución, esto también ayudará a otros.
Por favor, dé Kudos por el apoyo.

RC

En respuesta a mwegener

Hola @mwegener

Gracias por su pronta respuesta. También traté de generar un calendario con la función CALENDARAUTO que incluye una variable que reúne mis 3 columnas provenientes de TABLE_1.

Calendar_auto = 
GENERATE(
    CALENDARAUTO();
    VAR CurrentDay = UNION(
        SELECTCOLUMNS('Table_1';"table 1";'Table_1'[DATE_1]);
        SELECTCOLUMNS('Table_1';"table 2";'Table_1'[DATE_2]);
        SELECTCOLUMNS('Table_1';"table 3";'Table_1'[DATE_3]))
    RETURN
        CurrentDay)

De alguna manera, funcionó porque contiene todos los días de los años 2019/2020/2021/2022/2023.

Pero, todas las fechas se duplican varias veces (DD/MM/YYY):

01/01/2019
01/01/2019
01/01/2019
01/01/2019
01/01/2019
02/01/2019
02/01/2019
02/01/2019
02/01/2019

¿Ves por qué?

Saludos,

RC

mwegener

En respuesta a RC

Hola @CR,

porque tan complicado

Calendar_auto = CALENDARAUTO()

O prueba esto…

CALENDAR_TABLE =
VAR DATE_TABLE =
    UNION (
        SELECTCOLUMNS ( Table_1, "Date", Table_1[DATE_1] ),
        SELECTCOLUMNS ( Table_1, "Date", Table_1[DATE_2] ),
        SELECTCOLUMNS ( Table_1, "Date", Table_1[DATE_3] )
    )
RETURN
    CALENDAR ( MINX ( DATE_TABLE, [Date] ), MAXX ( DATE_TABLE, [Date] ) )

Saludos,

marcus

Dortmund – Alemania
Si respondí a su pregunta, marque mi publicación como solución, esto también ayudará a otros.
Por favor, dé Kudos por el apoyo.

RC

En respuesta a mwegener

Gracias Marcus, esto es de hecho más simple y… ¡realmente eficiente!

RC

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *