<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我的數據按列排列如下:
晶圓#,Log#,DUT ID,測試小時,參數1,參數2 ........
我有一套規範要用於識別在測試時間= 0時失敗的所有DUT。一旦識別出那些DUT,我想刪除那些相同DUT的所有實例。但是,我不希望將同一組規範應用於所有其他小時的測試數據。
我甚至以相同的格式生成了另一個表,確定了所有t = 0的失敗。現在我想鍵入Log#,DUT ID並從原始表中刪除失敗DUT的所有實例(所有後續測試時間)。我該怎麼做?
(這是Martin上述方法的略微變化)。
通常,如果對單個列中的值有不同的限制,則最好分割數據,以便將所需的限制存儲為列屬性。但如果你有理由不這樣做,下面的方法就是做我想你想做的事情的一種方法。將代碼剪切並粘貼到編輯器窗口中,然後選擇“編輯>運行腳本”。('Wait()'命令是這樣你可以看到發生了什麼)。
NamesDefaultToHere ( 1 ) ;
//示例表
DT =
新表 ( “DUT” ,
添加行 ( 12 ) ,
新欄目 ( “DUT ID” ,
數字 ,
“標稱” ,
格式 ( “最好” , 12 ) ,
設定值 ( [ 1 , 2 , 3 , 4 , 1 , 2 , 3 , 4 , 1 , 2 , 3 , 4 ] )
) ,
新欄目 ( “測試時間” ,
數字 ,
“序” ,
格式 ( “最好” , 12 ) ,
設定值 ( [ 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 ] )
) ,
新欄目 ( “P1” ,
數字 ,
“連續” ,
格式 ( “固定十二月” , 12 , 3 ) ,
設定值 (
[ 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 , 3 ) ,
設定值 (
[ 0.967955026618985 , - 1.05625737545624 , 0.399938006086842 ,
- 0.0459988344031106 , - 1.30650202283731 , 1.66536579742163 ,
1.19669670020495 , - 0.205442597157623 , - 1.40714522703899 ,
0.517030195850593 , - 0.51315580063705 , - 1.17294833449061 ]
)
)
) ;
//假設'測試時'的'pi'<0.5的值= 0定義失敗 -
//然後在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 ;
[編輯:添加“Eval公式”以避免實時計算問題。]
這是我認為你正在尋找的代碼片段:
DT = 數據表 ( “targetdt” ) ;
DT << 選擇Where ( : 小時 == 0 ) ;
SDT = DT << 子集 ( 選定的行 ) ; //在hours = 0時生成數據的子集表
minspec = 3 ; //你的規格
SDT << 新欄目 ( “INSPEC” ,式 ( : 參數1 > = minspec ) Eval公式 ) ; //根據hours = 0數據查看此dut是否符合規範
DT << 更新 (
同 ( SDT ) ,
匹配列 ( : 日誌# = : 日誌# , : DUT_ID = : DUT_ID ) ,
從更新表添加列 ( : INSPEC )
) ;
DT << 選擇Where ( : INSPEC == 0 ) ;
DT << 刪除行 () ;
關鍵是要有一個像“inspec”這樣的列,你可以使用“更新”添加到原始表中。然後您可以按該列進行過濾。