Forum Discussion

ljmanayon's avatar
ljmanayon
Frequent Visitor
5 years ago
Solved

Calculating Time Difference

Hi,

 

Hope someone can help me on this, am a noob on this. Anyways, I just simply want to compute the time difference between "Serving" and "Done" Remarks.  Here's my sample data.

 

DateTimeService IDProductRemarks
Aug, 1 20218:00:00AMB001BillsNew Entry
Aug, 1 20218:05:00AMB001BillsServing
Aug, 1 20218:07:00AMB001BillsDone
Aug, 1 20218:10:00AMB002BillsNew Entry
Aug, 1 20218:15:00AMB002BillsServing
Aug, 1 20218:20:00AMB002BillsDone
Aug, 1 20218:30:00AMC001CargoNew Entry
Aug, 1 20218:32:00AMC001CargoServing
Aug, 1 20219:40:00AMC001CargoDone

 

This is the result that I want. I want the time difference reflects on the "Serving" Remarks.

DateTimeService IDProductRemarksProcessing Time
Aug, 1 20218:00:00AMB001BillsNew Entry 
Aug, 1 20218:05:00AMB001BillsServing2mins
Aug, 1 20218:07:00AMB001BillsDone 
Aug, 1 20218:10:00AMB002BillsNew Entry 
Aug, 1 20218:15:00AMB002BillsServing5mins
Aug, 1 20218:20:00AMB002BillsDone 
Aug, 1 20218:30:00AMC001CargoNew Entry 
Aug, 1 20218:32:00AMC001CargoServing8mins
Aug, 1 20219:40:00AMC001CargoDone 

 

Thank you in advance.

  • Hi ljmanayon 

    I've checked the file, you can try this

    Result I want Test = 
        var _endtime=CALCULATE(MIN(test[Time]),FILTER(ALLEXCEPT('test',test[Branch],test[Date/Time],'test'[Service ID]),'test'[Remarks]="Done"))
        var _diff=DATEDIFF(MIN('test'[Time]),_endtime,MINUTE)
    return IF(MIN('test'[Remarks])="Serving",_diff&"mins")

    result

    besides, in your previous example, the format of Time is xx:xx:00, while in your file, the format is xx:xx:xx, so I didn't add seconds into Measure.

     

     

    Best Regards,

    Community Support Team _Tang

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

13 Replies

  • ljmanayon make sure you have datetime column if not create one like

     

    Date Time = [Date] + [Time]


    New column =
    var _max = maxx(filter(Table, [Service ID] = earlier([Service ID]) && [Remarks] = " New Entry"),[Date Time])
    return
    if( [Remarks] = "Serving", datediff([Date Time], _max,minute), blank())

     

     

    if needed add date to it

     

    New column =
    var _max = maxx(filter(Table, [Service ID] = earlier([Service ID]) && [Date] = earlier([Date])  && [Remarks] = " New Entry"),[Date Time])
    return
    if( [Remarks] = "Serving", datediff([Date Time], _max,minute), blank())

      • amitchandak's avatar
        amitchandak
        Icon for Super User rankSuper User

        ljmanayon , Oh need one correction, My mistake

         

        New column =
        var _max = maxx(filter(Table, [Service ID] = earlier([Service ID]) &&  [Date Time] < earlier([Date Time]) && [Remarks] = " New Entry"),[Date Time])
        return
        if( [Remarks] = "Serving", datediff(_max,[Date Time], minute), blank())

         

  • v-xiaotang's avatar
    v-xiaotang
    Icon for Community Support rankCommunity Support

    Hi ljmanayon 

    with measure, you can try this

    MinutesTest1 = 
    var _b=CALCULATE(MIN('Table'[Time]),FILTER(ALLEXCEPT('Table','Table'[Service ID]),'Table'[Remarks]="Done"))
    return IF(MIN('Table'[Remarks])="Serving",DATEDIFF(MIN('Table'[Time]),_b,MINUTE))

    or

    MinutesTest2 = 
    var _b=CALCULATE(MIN('Table'[Time]),FILTER(ALLEXCEPT('Table','Table'[Service ID]),'Table'[Remarks]="Done"))
    return IF(MIN('Table'[Remarks])="Serving",FORMAT(MIN('Table'[Time])-_b,"hh:nn:ss"))

    result

     

    Best Regards,

    Community Support Team _Tang

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

    • ljmanayon's avatar
      ljmanayon
      Frequent Visitor

      Thanks for your help v-xiaotang . I tried your solution but the measure gives me a negative results e.g. -60, -38, etc., and the calculated column gives no result.

       

      My bad probably, I forgot to fill-in more data on my sample table. This the actual table looks like.

       

      BranchDateTimeService IDProductRemarksResult I want
      Branch A8/13/218:00:00AMB001BillsNew Entry 
      Branch A8/13/218:10:00AMB001BillsServing5mins
      Branch A8/13/218:15:00AMB001BillsDone 
      Branch A8/13/218:16:00AMC001CargoNew Entry 
      Branch A8/13/218:20:00AMC001CargoServing10mins
      Branch A8/13/218:30:00AMC001CargoDone 
      Branch A8/13/218:35:00AMB002BillsNew Entry 
      Branch A8/13/218:40:00AMB002BillsServing20mins
      Branch A8/13/219:00:00AMB002BillsDone 
      • v-xiaotang's avatar
        v-xiaotang
        Icon for Community Support rankCommunity Support

        Hi ljmanayon 

        try this 

        Result I want = 
            var _b=CALCULATE(MIN('TableNew'[Time]),FILTER(ALLEXCEPT('TableNew','Tablenew'[Service ID]),'TableNew'[Remarks]="Done"))
            var _diff=DATEDIFF(MIN('TableNew'[Time]),_b,MINUTE)
        return IF(MIN('TableNew'[Remarks])="Serving",_diff&"mins")

        result

         

        Best Regards,

        Community Support Team _Tang

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

    • ljmanayon's avatar
      ljmanayon
      Frequent Visitor

      Thanks for your patience, but still it gives me a negative results. 

      • v-xiaotang's avatar
        v-xiaotang
        Icon for Community Support rankCommunity Support

        Hi ljmanayon 

        not sure but check the order in your measure,  the first parameter is StartDate, the second parameter is enddate.

        in my side, thereā€˜s no negative result. if problem still not solved, please share your file and I'll check it later.

        Looking forward to receiving your reply.

         

        Best Regards,

        Community Support Team _Tang

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