列の検索とラベル付けこんにちは、
以下に示すように、ID1#とID2#の2つの列がありますが、どちらも正しい順序ではありません。下の例に示すように、F(FAIL1列)に記録されているID1#を使用してID2#に同じ番号を見つけ、FAIL2列にFとラベルを付ける方法を知りたいです。
ありがとうございました。
| ID1 | FAIL1 | ID2 | FAIL2 |
| AB11A972C99N | F | ABV1A9781NN3 | |
| AB11AB7DDS8N | F | ABK1AB7E8186 | |
| AB11AB7J9945 | F | ABD1E974C2FM | |
| AB11AB7K2PLR | F | ABN1E275SV4E | |
| AB11AC70J01H | F | ABD1E977ZMSL | |
| AB11AC70J10V | F | ABJ1AB750FYP | |
| AB11AC70J120 | F | ABP1E270SWJH | |
| AB11AC70J1C1 | F | ABU1E36194WM | |
| AB11AC70J1ZR | F | ABW1AC62A4RY | |
| AB11AC70J22C | F | AB91EB6DCMFM | |
| AB11AC70J33T | F | ABD1A667K0FR | |
| AB11AC70J394 | F | ABM1A67KKNUK | |
| AB11AC70J4Z5 | F | AB81A37PN5SH | |
| AB11AC70J5UL | F | AB81E87AYYUC | |
| AB11AC70J681 | F | ABW1AC62A93N | |
| AB11AC70J7CS | F | AB21A47N49XU | |
| AB11AC70J8Z4 | F | ABP1EB6D12XK | |
| AB11AC70J9R2 | F | AB11AC70J22C | F |
| AB11AC70JA3D | F | AB21AC77P9HA | |
| AB11AC70JC6A | F | ABJ1AB79ULEV | |
| AB11AC70JCN6 | F | ABU1E879EMAV | |
| AB11AC70JDDH | F | ABD1A667K70L | |
| AB11AC70JDFJ | F | ABH1AB71A2UX | |
| AB11AC70JEPY | F | AB11AC70J9R2 | F |
再:列の検索とラベル付けこれは別の方法論です
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 )
);
再:列の検索とラベル付けこんにちはジム、
もう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"
);
);