Forum Discussion
Determine MIN date across tables using DAX
- Anonymous6 years ago
Try something like this if you want the min value of 4 columns:
Measure = var m= IF(MIN('Table1'[ts1])<=MIN('Table2'[ts2]),MIN('Table1'[ts1]), IF(MIN('Table2'[ts2])<=MIN('Table3'[ts3]),MIN('Table2'[ts2]),MIN('Table3'[ts3]))) Return IF(m<=MIN('Table4'[ts4]),m,MIN('Table4'[ts4]))Paul Zheng _ Community Support Team
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly - 6 years ago
Hi Anonymous ,
I was able to translate your solution to my use case. Since I am generating a Date Table based on timestamps in 3 tables, rather than a Measure, here is what I used: (Thank you!)
DATE_TABLE = VAR MIN_TS = IF( MIN(TABLE1[TIMESTAMP]) <= MIN(TABLE2[TIMESTAMP]), MIN(TABLE1[TIMESTAMP]), IF( MIN(TABLE2[TIMESTAMP]) <= MIN(TABLE3[TIMESTAMP]), MIN(TABLE2[TIMESTAMP]), MIN(TABLE3[TIMESTAMP]) ) ) VAR MAX_TS = IF( MAX(TABLE1[TIMESTAMP]) >= MAX(TABLE2[TIMESTAMP]), MAX(TABLE1[TIMESTAMP]), IF( MAX(TABLE2[TIMESTAMP]) >= MAX(TABLE3[TIMESTAMP]), MAX(TABLE2[TIMESTAMP]), MAX(TABLE3[TIMESTAMP]) ) ) RETURN CALENDAR( MIN_TS, MAX_TS )Sure would be more intuitive if DAX allowed something like:
DATE_TABLE = CALENDAR( MIN(TABLE1[TIMESTAMP], TABLE2[TIMESTAMP], TABLE3[TIMESTAMP]), MAX(TABLE1[TIMESTAMP], TABLE2[TIMESTAMP], TABLE3[TIMESTAMP]) )Oh well! Job security!
Hi Anonymous ,
I was able to translate your solution to my use case. Since I am generating a Date Table based on timestamps in 3 tables, rather than a Measure, here is what I used: (Thank you!)
DATE_TABLE =
VAR MIN_TS =
IF(
MIN(TABLE1[TIMESTAMP]) <=
MIN(TABLE2[TIMESTAMP]),
MIN(TABLE1[TIMESTAMP]),
IF(
MIN(TABLE2[TIMESTAMP]) <=
MIN(TABLE3[TIMESTAMP]),
MIN(TABLE2[TIMESTAMP]),
MIN(TABLE3[TIMESTAMP])
)
)
VAR MAX_TS =
IF(
MAX(TABLE1[TIMESTAMP]) >=
MAX(TABLE2[TIMESTAMP]),
MAX(TABLE1[TIMESTAMP]),
IF(
MAX(TABLE2[TIMESTAMP]) >=
MAX(TABLE3[TIMESTAMP]),
MAX(TABLE2[TIMESTAMP]),
MAX(TABLE3[TIMESTAMP])
)
)
RETURN
CALENDAR(
MIN_TS,
MAX_TS
)Sure would be more intuitive if DAX allowed something like:
DATE_TABLE =
CALENDAR(
MIN(TABLE1[TIMESTAMP], TABLE2[TIMESTAMP], TABLE3[TIMESTAMP]),
MAX(TABLE1[TIMESTAMP], TABLE2[TIMESTAMP], TABLE3[TIMESTAMP])
)Oh well! Job security!
CALENDARAUTO() would also give you the result by scanning all tables in your data set with dates and providing the correct range, you can also change the starting month number - for example July with CALENDARAUTO(6)