Forum Discussion

ericOnline's avatar
ericOnline
Icon for Post Patron rankPost Patron
6 years ago
Solved

Determine MIN date across tables using DAX

I come from the PowerApps world, just getting familiar with DAX and PowerQuery. In PowerApps, to determine the minimum value of a set, I'd write something like: MIN(value1, value2, value3, etc.)   ...
  • Anonymous's avatar
    Anonymous
    6 years ago

    ericOnline 

    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

  • ericOnline's avatar
    ericOnline
    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!