Forum Discussion

ben-t's avatar
ben-t
Frequent Visitor
5 years ago
Solved

How to reference date column in measure

 

I'm trying to calculate the difference between 2 date/times. 

But if the field is blank, i want it to reference the earliest & last dates in the slicer

 

 I have a seperate measure that already selects the first and last dates, but it doesnt work properly in measure or calculated columns

 

DATEDIFF(

if(ISBLANK(MachAvail[ACTSTART]),[Min Date],MachAvail[ACTSTART]),

if(ISBLANK(MachAvail[ACTFINISH]),[Max Date],MachAvail[ACTFINISH]), 
SECOND)
 

 

 

 

 

any advise would be appreciated

 

 

 

  • Anonymous's avatar
    Anonymous
    5 years ago

    Hi ben-t ,

     

    This error is because in the measure, you cannot write the field directly. You need to use MAX or MIN to get the current row of the field.

     

    Try to add MAX/MIN in the error field of the red curve.

    Hrs measure =
    DATEDIFF (
        IF (
            ISBLANK ( MAX ( 'MachAvail'[ACTSTART] ) ),
            [Min Date],
            MAX ( ' MachAvail'[ACTSTART] )
        ),
        IF (
            ISBLANK ( MAX ( 'MachAvail'[ACTFINISH] ) ),
            [Max Date],
            MAX ( 'MachAvail'[ACTFINISH] )
        ),
        SECOND
    )
    

     

     

     

    Best Regards,

    Stephen Tao

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

     

4 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi ben-t ,

     

    This error is because in the measure, you cannot write the field directly. You need to use MAX or MIN to get the current row of the field.

     

    Try to add MAX/MIN in the error field of the red curve.

    Hrs measure =
    DATEDIFF (
        IF (
            ISBLANK ( MAX ( 'MachAvail'[ACTSTART] ) ),
            [Min Date],
            MAX ( ' MachAvail'[ACTSTART] )
        ),
        IF (
            ISBLANK ( MAX ( 'MachAvail'[ACTFINISH] ) ),
            [Max Date],
            MAX ( 'MachAvail'[ACTFINISH] )
        ),
        SECOND
    )
    

     

     

     

    Best Regards,

    Stephen Tao

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

     

    • ben-t's avatar
      ben-t
      Frequent Visitor

      Thanks, figured out the error and got another workaround to get the datediff

      Hrs =SUMX(MachAvail,DATEDIFF(MachAvail[ACTSTART],MachAvail[ACTFINISH],SECOND))

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi Anonymous ,

      I am facing the similar kind of error in which i am creating a Measure and comapring date column (Deliver Date) with today date and getting the he same error as mentioned below :

      Request you to please help how can i compare my date value column with Today date in Measure where i do not want to take Min or Max .
      Please see below :

      Thanks ,

      Ashish

  • ben-t , This need to a column like

    datediff((MachAvail[ACTSTART]), (MachAvail[ACTFINISH]), second)

     

    Or in case measure , but to sum or Avg you need to have key column
    datediff(Min(MachAvail[ACTSTART]), Max(MachAvail[ACTFINISH]), second)

     

    Averagex(Values(MachAvail[ID]) ,datediff(Min(MachAvail[ACTSTART]), Max(MachAvail[ACTFINISH]), second))

     

    https://community.powerbi.com/t5/Community-Blog/Decoding-Direct-Query-in-Power-BI-Part-2-Date-Difference-Across/ba-p/934397#M451