如何在順序可能不同的情況下匹配兩列的值假設我測量了晶片的兩次缺陷,並且每個缺陷都有 X、Y 軸數據。
有些缺陷是重複缺陷,它們有非常相似的軸數據(雖然不完全相同),所以我會給它們加上“重複”標籤,而有些缺陷沒有匹配,所以我會給它們加上“新”標籤。
如何編寫一個公式來自動執行此操作? (即:自動製作列“基於之後判斷”的公式)
(請注意,對於相同的缺陷,值並不完全相同,只是非常接近。 並且相同的缺陷可能在前後的不同行中)
| X-之前 | Y-之前 | X-之後 | Y-之後 | 判斷依據 |
| -446659 | 888856 | -446649 | 888852 | 重複 |
| -445908 | 630775 | -445899 | 630772 | 重複 |
| -447462 | 301534 | -446122 | 588199 | 新的 |
| -140914 | 508425 | -447456 | 301532 | 重複 |
| | | -140907 | 508433 | 重複 |
分析數據表回复:如何在順序可能不同的情況下匹配兩列的值這是一種方法。I 確定兩點之間的差異,然後對差異應用新建/重複邏輯。我相信您的數據表中有錯誤,該錯誤顯示在新計算中
Names Default To Here( 1 );
dt = Current Data Table();
xFudge = Abs( Min( Col Min( :"x-before"n ), Col Min( :"x-after"n ) ) );
yFudge = Abs( Min( Col Min( :"y-before"n ), Col Min( :"y-after"n ) ) );
//dt << New Column( "diff" );
dt << New Column( "Repeat_New", character );
For Each Row(
diff = Sqrt(
((xFudge + :"x-before"n) - (xFudge + :"x-after"n)) ^ 2 + ((yFudge + :"y-before"n) - (yFudge +
:"y-after"n)) ^ 2
);
If( diff < 100 | isMissing(diff)
,
:Repeat_New = "Repeat";
,
:Repeat_New = "New"
);
);
回复:如何在順序可能不同的情況下匹配兩列的值嗨,特克斯尼爾森,
謝謝你的回复,你的方法我試過了。 但是,有一個問題。
看來您只比較同一行的數據。
真實情況是:
對於以前,可能有 500 個缺陷,即 500 行。 之後,可能有 1000 行。
同樣的缺陷可能位於前列的第50#行,位於後列的第121行,你不會知道。
因此,有必要將 after 的所有 1000 行與 before 的所有 500 行進行比較,以匹配每個重複缺陷。
匹配結果可能是:500個中490個能找到匹配,10個沒找到,另外500個是新加法器