열 찾기 및 레이블 지정안녕하세요,
아래에 나와있는 것처럼 2 열, ID1 # 및 ID2 #이 있는데 두 가지 모두 규칙적인 방식이 아닙니다. 아래 예제와 같이 FAIL1 열의 F로 기록 된 ID1 #을 사용하고 ID2 #에서 동일한 번호를 찾은 다음 FAIL2 열에서 F로 레이블을 지정하는 방법을 알고 싶습니다.
고맙습니다.
| ID1 | FAIL1 | ID2 | FAIL2 |
| AB11A972C99N | 에프 | ABV1A9781NN3 | |
| AB11AB7DDS8N | 에프 | ABK1AB7E8186 | |
| AB11AB7J9945 | 에프 | ABD1E974C2FM | |
| AB11AB7K2PLR | 에프 | ABN1E275SV4E | |
| AB11AC70J01H | 에프 | ABD1E977ZMSL | |
| AB11AC70J10V | 에프 | ABJ1AB750FYP | |
| AB11AC70J120 | 에프 | ABP1E270SWJH | |
| AB11AC70J1C1 | 에프 | ABU1E36194WM | |
| AB11AC70J1ZR | 에프 | ABW1AC62A4RY | |
| AB11AC70J22C | 에프 | AB91EB6DCMFM | |
| AB11AC70J33T | 에프 | ABD1A667K0FR | |
| AB11AC70J394 | 에프 | ABM1A67KKNUK | |
| AB11AC70J4Z5 | 에프 | AB81A37PN5SH | |
| AB11AC70J5UL | 에프 | AB81E87AYYUC | |
| AB11AC70J681 | 에프 | ABW1AC62A93N | |
| AB11AC70J7CS | 에프 | AB21A47N49XU | |
| AB11AC70J8Z4 | 에프 | ABP1EB6D12XK | |
| AB11AC70J9R2 | 에프 | AB11AC70J22C | 에프 |
| AB11AC70JA3D | 에프 | AB21AC77P9HA | |
| AB11AC70JC6A | 에프 | ABJ1AB79ULEV | |
| AB11AC70JCN6 | 에프 | ABU1E879EMAV | |
| AB11AC70JDDH | 에프 | ABD1A667K70L | |
| AB11AC70JDFJ | 에프 | ABH1AB71A2UX | |
| AB11AC70JEPY | 에프 | AB11AC70J9R2 | 에프 |
다시 : 열 찾기 및 레이블다른 방법론이 있습니다.
Names Default To Here( 1 );
dt = Current Data Table();
dt2 = dt << subset( Invisible, selected rows( 0 ), columns( :Name( "ID1#" ), :Fail1 ) );
dt2:Fail1 << set name( "FAIL2" );
dt = dt << Update(
with( dt2 ),
Update,
By Matching Columns( :Name( "ID2#" ) = :Name( "ID1#" ) ),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 0 ),
Preserve main table order( 1 )
);
다시 : 열 찾기 및 레이블안녕 짐,
나는 한 가지 더 질문이있다. 내 실제 경우 ID2 #에 약 70K 행이 있지만 ID1 #에는 약 3K 행만 있습니다. 스크립트를 실행했을 때 완료하는 데 30 분 이상 걸리는 것과 같습니다
시간을 단축하는 더 빠른 방법이 있습니까?
감사.
다시 : 열 찾기 및 레이블안녕 짐,
고마워요. ..!
예상대로 작동합니다.
다시 : 열 찾기 및 레이블ID 열에 실제로 이름에 "#"이 있다고 가정하면 다음 스크립트가 트릭을 수행합니다.
Names Default To Here( 1 );
dt = Current Data Table();
For( i = 1, i <= N Rows( dt ), i++,
FoundRows = dt << get rows where( :Name( "ID2#" ) == :Name( "ID1#" )[i] );
If( N Rows( FoundRows ) > 0,
:Fail2[FoundRows] = "F"
);
);