各列がメイン データ テーブルの列の名前であり、行の値がメイン テーブルのその列に不正なデータを持つ部品番号である参照テーブルがあります。たとえば、メイン テーブルの列 1 は部品番号、列 2 は「Temp」です。行番号が部品番号と等しいため、行 1 が部品「1」であり、「Temp」列の値が 65 であるとします。パート 2 の温度は -100 であるため、悪いデータです。したがって、「Temp」という名前の列の下の参照テーブルの行 1 の値は「2」になります。これは、メイン テーブルに不正なデータがあるすべての部品番号に対して繰り返され、各列に対しても同様に繰り返されます。
これにより、不正なデータ参照テーブルが作成され、メイン テーブルの最新データを取り込むたびに、ループスルーして不正なデータを自動的に削除できます。次の行でも機能するコードがあります:
(ここで、vlist には参照テーブルのすべての部品番号が含まれ、dt2 はメイン データ テーブルです)
try(rowindex=dt2 << Get Rows Where(contains(vlist,:WORKORDERNO )));
超遅いです。完了するまでに 22 秒かかります。196 列を処理する必要があるため、これには非常に時間がかかります。これを高速化する方法についての提案をいただければ幸いです。
完全なコードはここにあります:
names default to here(1);
dt=open("J:\Public\Ti Process Control\Dashboard Files\JMP data for CC's\Limits\master_data_table_clean_up.jmp", invisible(1)); //this is the reference table
dt<<BEGIN data="https://community.jmp.com/" update=""></BEGIN>