<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我一直試圖找到一種方法來刪除某些列中具有相同單元格但在其他列中沒有的行。
例如,我想找到列PartNo,SerialNum和Site的值相同但不是Customer和Value的行。然後我想刪除其中一行。在
在這種情況下,我將留下1,3和4行 - 見下文。
謝謝
| 部件號 | 序號 | 現場 | 顧客 | 值 |
|---|
| 1 | 2 | 3 | 一個 | 1.5 |
| 1 | 2 | 3 | b | 2 |
| 3 | 4 | 五 | C | 3 |
| 2 | 3 | 4 | d | 五 |
| 2 | 3 | 4 | Ë | 6 |
如果要通過腳本執行此操作,以下代碼將顯示僅保留重複行的第一個實例的示例。它利用了摘要錶鍊接到詳細信息表的事實。
//示例數據
DT1 = 打開 ( “$ SAMPLE_DATA / Big Class.jmp” ) ;
//哪些列用於定義重複項?
keyCols字段 = { “年齡” , “性別” } ;
//創建一個不可見的鏈接匯總表dt2
DT2 = DT1 << 摘要 ( 組 ( EVAL ( keyCols字段 )) ,無形 ) ;
//遍歷dt2的行......
rows2Keep = [] ;
對於 ( [R = 1 , [R <= NROWS ( DT2 ) , [R ++,
// ...依次選擇每一行
DT2 << SelectRows ({ [R }) ;
//在dt1中找到相應的行
duplicateRows = DT1 << GetSelectedRows ;
//只保留第一個
rows2Keep = VConcat ( rows2Keep , duplicateRows [ 1 ]) ;
//刪除當前選擇
DT2 << ClearSelect ;
) ;
關 ( DT2 , NoSave關 ) ;
//刪除dt1中重複的行
rows2Delete = ( 1 :: NRow ( DT1 )) `;
rows2Delete [ rows2Keep ] = [] ;
DT1 << DeleteRows ( rows2Delete ) ;
你好,
您可以使用Join將表連接到自身,在Part No,Serial Num和Site列上進行匹配,並刪除倍數。 以下是此案例的“加入”對話框的外觀。
希望有所幫助!