如何在顺序可能不同的情况下匹配两列的值假设我测量了晶片的两次缺陷,并且每个缺陷都有 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个是新加法器