Wie man Werte für zwei Spalten abgleicht, während die Reihenfolge unterschiedlich sein kannAngenommen, ich habe den Defekt für einen Wafer zweimal gemessen und habe X-, Y-Achsen-Daten für jeden Defekt.
Einige Fehler sind Wiederholungsfehler, sie haben sehr ähnliche Achsendaten (wenn auch nicht genau gleich), daher würde ich das Tag "Wiederholung" für sie setzen, während einige Fehler keine Übereinstimmung haben, also würde ich das Tag "neu" für sie setzen.
Wie schreibe ich eine Formel, um dies automatisch zu tun? (dh: Formel zum automatischen Erstellen der Spalte "Beurteile die Basis nach nach")
(Beachten Sie, dass die Werte für denselben Fehler nicht genau gleich sind, nur sehr nahe beieinander. Und derselbe Fehler könnte in einer anderen Zeile für vorher und nachher sein)
| X-Vorher | Y-Vorher | X-Nachher | Y-Nach | Richter Basis auf nach |
| -446659 | 888856 | -446649 | 888852 | Wiederholen |
| -445908 | 630775 | -445899 | 630772 | Wiederholen |
| -447462 | 301534 | -446122 | 588199 | Neu |
| -140914 | 508425 | -447456 | 301532 | Wiederholen |
| | | -140907 | 508433 | Wiederholen |
AnalytikDatentabelleBetreff: Wie man Werte für zwei Spalten abgleicht, während die Reihenfolge unterschiedlich sein kannHier ist ein Ansatz.I bestimmt die Differenz zwischen den beiden Punkten und wendet dann die Neu/Wiederholen-Logik auf die Differenz an.Ich glaube, Sie haben einen Fehler in Ihrer Datentabelle, der in der neuen Berechnung auftaucht
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"
);
);
Betreff: Wie man Werte für zwei Spalten abgleicht, während die Reihenfolge unterschiedlich sein kannHallo txnelson,
Danke für deine Antwort, ich habe deine Methode ausprobiert. Es gibt jedoch ein Problem.
Es scheint, dass Sie nur Daten gleichzeitig in der Zeile vergleichen.
Die reale Situation ist:
Denn früher konnte es 500 Fehler geben, also 500 Reihen. Für danach könnten es 1000 Zeilen sein.
Derselbe Fehler kann sich in Zeile 50# vor der Spalte und in Zeile 121 nach der Spalte befinden, Sie werden es nicht wissen.
Es ist also notwendig, alle 1000 Reihen von Nachher mit allen 500 Reihen von Vorher zu vergleichen, um jeden Wiederholungsfehler abzugleichen.
Das Ergebnis der Übereinstimmung kann sein: 490 von 500 konnten eine Übereinstimmung finden, 10 fehlten und die anderen 500 sind neue Addierer