Forum Discussion

ddurosier's avatar
ddurosier
Frequent Visitor
5 years ago
Solved

Datediff Calculation

Looking for some assistance for a correct Output.

 

Scenario: I have TableA that shows the time (datestringProd) column of each change made for a product# (ProductColumn).  One Product number can have multiple changes for example Prod# 198763 have to different change that were made and same for Prod# 198741. I'm Trying to get the duration for each Prod# output to Measure2 Visual.

 

Should Look Like this:   Prod# 198763 duration from DateStringProd (11:29pm - 8:21pm) = 3hr 8min

                                     Prod#: 198741 duration from DateStringProd (4:25pm - 2:46pm) = 1hr 39min

                                                                  Measure2 output = (3h8m + 1h39m) = 4 hr 48mins

 

Instead it Looks Like this::::  Measure2:::: Prod#: 198741  (2:46pm) + Prod# 198763 (11:29pm) = 8hr 43 mins

 

If I can get the ouput of Measure2 to even show it in the format 4hr 48mins that'll be fantasy. Please help, i'm still doing some research but been stuck on this for a while. thank you so much team.

 

 

 

 

 

 

 

 

 

  • Hi ddurosier 

     

    Try something like this

     

    Measure2 =
    SUMX ( VALUES ( Durations[Prod] ), [Measure1] )
    
    
    Measure2_Formatted =
    VAR __HH =
        FLOOR ( [Measure2], 1 )
    VAR __MM =
        ROUND ( ( [Measure2] - __HH ) * 60, 0 )
    RETURN
        __HH & ":" & __MM
    

     

    (I don't remember if there's a function that just takes the decimal part of a number in DAX, hence the complex formula)

     

     

    Hope this helps

    David

  • Hi, ddurosier 

     

    Based on your description, I created data to reporduce your scenario. The pbix file is attached in the end.

    Table:

     

    You may create a measure as below.

    Result = 
    var tab = 
    SUMMARIZE(
        'Table',
        'Table'[Prod],
        "Re",
        DATEDIFF(
            MIN('Table'[DateStringProd]),
            MAX('Table'[DateStringProd]),
            MINUTE
        )
    )
    var result =
    SUMX(
        tab,
        [Re]
    )
    return
    INT(DIVIDE(result,60))&"hr "&MOD(result,60)&"min"

     

    Result:

     

    Best Regards

    Allan

     

     

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

3 Replies

  • dedelman_clng's avatar
    dedelman_clng
    Community Champion

    Hi ddurosier 

     

    Try something like this

     

    Measure2 =
    SUMX ( VALUES ( Durations[Prod] ), [Measure1] )
    
    
    Measure2_Formatted =
    VAR __HH =
        FLOOR ( [Measure2], 1 )
    VAR __MM =
        ROUND ( ( [Measure2] - __HH ) * 60, 0 )
    RETURN
        __HH & ":" & __MM
    

     

    (I don't remember if there's a function that just takes the decimal part of a number in DAX, hence the complex formula)

     

     

    Hope this helps

    David

  • v-alq-msft's avatar
    v-alq-msft
    Community Support

    Hi, ddurosier 

     

    Based on your description, I created data to reporduce your scenario. The pbix file is attached in the end.

    Table:

     

    You may create a measure as below.

    Result = 
    var tab = 
    SUMMARIZE(
        'Table',
        'Table'[Prod],
        "Re",
        DATEDIFF(
            MIN('Table'[DateStringProd]),
            MAX('Table'[DateStringProd]),
            MINUTE
        )
    )
    var result =
    SUMX(
        tab,
        [Re]
    )
    return
    INT(DIVIDE(result,60))&"hr "&MOD(result,60)&"min"

     

    Result:

     

    Best Regards

    Allan

     

     

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