Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago

Calculating yield for production data

Hi all,

 

I'm trying to calculate % yield for some test rig data. Each product, identified by a unique serial number goes through the test and gets a pass of fail result. What I want to do is use the latest test date for each serial number (as each serial number may have gone through multiple tests) and count the amount of pass results. I then plan to divide this number of records by the total number of unique serial numbers in order to get my % yield figure. 

 

Here is a sample of the data:

 

VIDATEVITIMESERIAL_NUMBERTEST_OUTCOME
17/07/1815:27:38670W16PASS
17/07/1815:38:29670W16FAIL
17/07/1815:40:20670W16PASS
17/07/1815:41:34670W16PASS
14/09/1711:56:075087W3PASS
21/09/179:23:535062H6PASS
14/09/1711:54:075057H8PASS
05/07/177:59:39357R35FAIL
11/07/1712:31:16 357R35FAIL
02/03/1710:24:00357R35PASS

5 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    First calculate total count.

     

    Total_count=calculate(Count(table[serial_number]),Allexcept(table,serial_number))

     

    It will return total count for each serial number.

     

    Then check how many serial number have pass status.

    Total_count_Pass=calculate(Count(table[serial_number]),Allexcept(table,serial_number)),filter(table,table[testoutcome]="Pass").

     

    Pass percentage=Divide(Total_count,Total_count_Pass,0)

     

    Thanks & regards,
    Pravin Wattamwar
    www.linkedin.com/in/pravin-p-wattamwar

    If I resolve your problem Mark it as a solution and give kudos.

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi Anonymous , 

       

      Thank you for your help! However this is returning a result of 100% and I'm expecting it to be just under that. How do I bring in the date/time element? I need to count the Pass results only for the serial numbers that have passed on the latest test.

       

      Hope that makes sense.

       

      Many thanks

      • Anonymous's avatar
        Anonymous
        Not applicable
        VIDATEVITIMESERIAL_NUMBERTEST_OUTCOME
        17/07/1815:27:38670W16PASS
        17/07/1815:38:29670W16FAIL
        17/07/1815:40:20670W16PASS
        17/07/1815:41:34670W16PASS
        14/09/1711:56:075087W3PASS
        21/09/179:23:535062H6PASS
        14/09/1711:54:075057H8PASS
        05/07/177:59:39357R35FAIL
        11/07/1712:31:16 357R35FAIL
        02/03/1710:24:00357R35PASS

         

        So you need those bold one with pass status??

         

        Flag=
        var Latest_Status_time = CALCULATE(Max(Sheet5[VITIME]),ALLEXCEPT(Sheet5,Sheet5[VIDate]),filter(Sheet5,Sheet5[Status]="Pass")
        Return
        Sumx(Sheet5,if(Sheet5[VITIME]=Latest_Status_time,1,0)
         
        it will return 1 for latest time with pass status.
         
        Thanks & regards,
        Pravin Wattamwar
        www.linkedin.com/in/pravin-p-wattamwar

        If I resolve your problem Mark it as a solution and give kudos.
         
  • Anonymous's avatar
    Anonymous
    Not applicable

    I need to do the exact same, but summarize it in a graph showing Yield by Month.