Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago

Calculate completed operation and date difference

Hi,

 

I'm trying to calculate Completed? column based on serial #s, operations 10-30 = completed operation based on serial #.

Then calculate the date difference between completed serials (10 and 30 operations).

Is this possible in Power BI?

 

Thank you!

serial #Operation #Date completedCompleted? Op # 10-30
1101/2/2022Y
1201/3/2022Y
1301/5/2022Y
2101/8/2022Y
2201/10/2022Y
2251/12/2022Y
2301/14/2022Y
3101/5/2022N
3201/9/2022N
3251/12/2022N

9 Replies

  • Greg_Deckler's avatar
    Greg_Deckler
    Icon for Community Champion rankCommunity Champion

    Anonymous So, yes, as a column:

    Completed? Column = 
      VAR __serial = [serial #]
      VAR __table = FILTER('Table',[serial #] = __serial && [Operation #] = 30)
    RETURN
      IF(COUNTROWS(__table)+0 > 0,"Y","N")

    The second part is essentially MTBF, See my article on Mean Time Between Failure (MTBF) which uses EARLIER: http://community.powerbi.com/t5/Community-Blog/Mean-Time-Between-Failure-MTBF-and-Power-BI/ba-p/339586.
    The basic pattern is:
    Column = 
      VAR __Current = [Value]
      VAR __PreviousDate = MAXX(FILTER('Table','Table'[Date] < EARLIER('Table'[Date])),[Date])

      VAR __Previous = MAXX(FILTER('Table',[Date]=__PreviousDate),[Value])
    RETURN
      __Current - __Previous

    • Anonymous's avatar
      Anonymous
      Not applicable

      Never mind, I figured it out, thanks so much for your help!

       

    • Anonymous's avatar
      Anonymous
      Not applicable

      H Greg,

       

      Appreciate the quick response, and it works based on the Operation #, your the man.  

      I tried substituting the Operation # with "010 Start" (It's actually text) , but could not get it to work.  Is there something I need to do?

       

      Many thanks!

       

      Victor

      • Greg_Deckler's avatar
        Greg_Deckler
        Icon for Community Champion rankCommunity Champion

        Anonymous Hmm, hang on, what are the actual values for 10, 20 and 30 Operation #'s? Also, does a serial # need to have all three Operation # values to be present before it is considered completed or is a single "30" value sufficient?

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Greg,

    To answer your question yes, the operations is noted to be completed starting with 010 Start and 030 Finish to finish.

     

    So yes, I need to include the 010 Start to note the completion and not just add the 030.  Is this possible?  Thank you so much for your help.

     

    Victor 

    • Anonymous's avatar
      Anonymous
      Not applicable

      Greg_Deckler 

       

      Hi Greg,

      To answer your question yes, the operations is noted to be completed starting with 010 Start and 030 Finish to finish.

       

      So yes, I need to include the 010 Start to note the completion and not just add the 030.  Is this possible?  Thank you so much for your help.

       

      Victor 

      • Anonymous's avatar
        Anonymous
        Not applicable

        Hi,

         

        Probably need to add some flexibility as there are different text for starts (i.e., 010 Start, 010 Begin).  All starts operations start with "010".  Thank you.

         

        Victor

  • Anonymous's avatar
    Anonymous
    Not applicable

    Adding && doesn't seem to work.  Appreciate any insight, thank you.

     

    Completed? =
    VAR __serial = [Serial #]
    VAR __table = FILTER('table', [Serial #] = __serial && [Operation] = "10" && [Operation] = "30")
    RETURN
    IF(COUNTROWS(__table)+0 > 0,"Y","N")