<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />내 데이터는 다음과 같이 열에 정렬됩니다.
웨이퍼 #, 로그 #, DUT ID, 테스트 시간, 매개 변수 1, 매개 변수 2 ........
나는 Test of Hour = 0에서 실패한 모든 DUT를 식별하기 위해 적용하고자하는 일련의 스펙을 가지고있다. 해당 DUT가 식별되면 동일한 DUT의 모든 인스턴스를 제거하려고합니다. 그러나 다른 모든시 험 데이터에 동일한 사양 세트를 적용하는 것은 바람직하지 않습니다.
나는 t = 0 실패가 모두 식별 된 동일한 형식의 다른 테이블을 생성하기까지했다. 이제 Log #, DUT ID를 입력하고 원본 테이블에서 실패한 DUT의 모든 인스턴스 (모든 후속 테스트 시간)를 제거하려고합니다. 어떻게해야합니까?
(위의 Martin의 접근법에 약간의 변형이 있습니다.)
일반적으로 단일 열의 값에 대한 제한이 다른 경우 열 속성으로 필요한 제한을 저장할 수 있도록 데이터를 분할하는 것이 가장 좋습니다. 그러나 당신이 이것을하지 않는 이유가 있다면, 아래의 접근법은 당신이 원하는 것이라고 생각하는 한 가지 방법입니다. 코드를 잘라내어 편집기 창에 붙여 넣은 다음 '편집> 스크립트 실행'을 선택하십시오. ( '대기 ()'명령을 사용하면 어떤 일이 벌어지는 지 알 수 있습니다.)
NamesDefaultToHere ( 1 ) ;
// 예제 테이블
dt =
새 테이블 ( "DUT" ,
행 추가 ( 12 ) ,
새 열 ( "DUT ID" ,
숫자 ,
"명사 같은" ,
체재 ( "베스트" , 12 ) ,
값 설정 ( [ 1 , 2 , 삼 , 4 , 1 , 2 , 삼 , 4 , 1 , 2 , 삼 , 4 ] )
) ,
새 열 ( "시험 시간" ,
숫자 ,
"서 명" ,
체재 ( "베스트" , 12 ) ,
값 설정 ( [ 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 ] )
) ,
새 열 ( "p1" ,
숫자 ,
"마디 없는" ,
체재 ( "12 월 고정" , 12 , 삼 ) ,
값 설정 (
[ 0.299525242746479 , 1.0633718409566 , 0.507859846881073 ,
- 1.11573907805173 , 0.222826061547355 , - 0.318546800557343 ,
- 0.0356930503397689 , 0.661572077447882 , - 0.182884744578411 ,
- 0.930044642545168 , 0.767786562806245 , - 0.130135490980355 ]
)
) ,
새 열 ( "p2" ,
숫자 ,
"마디 없는" ,
체재 ( "12 월 고정" , 12 , 삼 ) ,
값 설정 (
[ 0.967955026618985 , - 1.05625737545624 , 0.399938006086842 ,
- 0.0459988344031106 , - 1.30650202283731 , 1.66536579742163 ,
1.19669670020495 , - 0.205442597157623 , - 1.40714522703899 ,
0.517030195850593 , - 0.51315580063705 , - 1.17294833449061 ]
)
)
) ;
// 'Time of Test'= 0에서 'pi'<0.5의 값을 가정하면 실패를 정의합니다.
// 그런 다음 dt에서 해당 행을 선택합니다.
기다림 ( 1 ) ;
dt << clearSelect () ;
dt << selectWhere ( : p1 < 0.5 & : 시험 시간 == 0 ) ;
// 'DUT ID'열을 선택하십시오.
기다림 ( 1 ) ;
기둥 ( dt , "DUT ID" ) << setSelected ( 1 ) ;
// 실패한 DUT와 관련된 모든 행을 포함하도록 선택 영역을 '확장'합니다.
기다림 ( 1 ) ;
dt << selectMatchingCells ;
// 열 선택 취소
기다림 ( 1 ) ;
기둥 ( dt , "DUT ID" ) << setSelected ( 0 ) ;
// 행을 삭제합니다.
기다림 ( 1 ) ;
dt << deleteRows ;
[편집 : 실시간 계산 문제를 피하기 위해 "평가 수식"이 추가되었습니다.]
다음은 여러분이 찾고있는 코드 조각입니다.
dt = 데이터 표 ( "targetdt" ) ;
dt << Where 선택 ( : 시간 == 0 ) ;
SDT = dt << 부분 집합 ( 선택된 행 ) ; // hours = 0에 데이터에 대한 부분 집합 테이블을 생성합니다.
minspec = 삼 ; // 귀하의 사양
SDT << 새 열 ( "inspec" , 공식 ( : Param1 > = minspec ), 평가 공식 ) ; //이 dut이 hours = 0 데이터에 따라 spec에 있는지 확인합니다.
dt << 최신 정보 (
와 ( SDT ) ,
열 일치 ( : 로그# = : 로그# , : DUT_ID = : DUT_ID ) ,
업데이트 테이블에서 열 추가 ( : 검사 )
) ;
dt << Where 선택 ( : 검사 == 0 ) ;
dt << 행 삭제 () ;
핵심은 "업데이트"를 사용하여 원본 테이블에 추가하는 "inspec"과 같은 열을 갖는 것입니다. 그런 다음 해당 열을 기준으로 필터링 할 수 있습니다.