Erstellung einer neuen Spalte basierend auf der Gruppierung anderer SpaltenHallo alle,
Ich versuche, eine neue Spalte "Status" zu erstellen, die "Aktiv" oder "Ersetzt" zurückgibt, basierend auf der folgenden Spezifikation (angehängter Teil der Tabelle mit Spalte "Status" als Veranschaulichung des erwarteten Ergebnisses).
Jedes TOOL und jede Site kann während der Zeit ein anderes Sub_Tool ersetzen und führt mehrere Einheiten mit seinem Zeitstempel aus. Das neueste Sub_Tool für das spezifische Tool und die Site sollte in der Statusspalte Aktiv und alle vorherigen Sub_Tool, die auf diesem Tool und der Site verwendet wurden, sollten Ersetzt erhalten.
Wie im beigefügten Beispiel kann sich das gleiche Sub_Tool im Laufe der Zeit wiederholen, sollte aber nur bei den letzten Läufen als aktiv markiert werden.
Echte Dateien haben viele Tools und jedes Tool hat viele Seiten, also brauchen Sie eine robuste Codierung.
Deine Hilfe ist sehr Willkommen.
Betreff: Erstellung einer neuen Spalte durch Gruppierung anderer SpaltenVielen Dank für die vollständigere Testdatei und für das Testen meines ursprünglichen Codes.
Hier ist eine neue Version des Formats
If( Row() > 1,
If( :TOOL != Lag( :TOOL ) | :SITE != Lag( :SITE ) | Row() == N Rows( Current Data Table() ),
TargetValue = :SUB_TOOL[Row() - 1];
:Active2[Row() - 1] = "Active";
For( i = Row() - 1, i >= 1, i--,
If( :SUB_TOOL[i] == TargetValue,
:Active2[i] = "Active",
Break()
)
);
)
);
If( Row() == N Rows( Current Data Table() ),
"Active",
"Replaced"
);
Sie müssen die Spaltenreferenzen im Code von "Active2" in den Spaltennamen ändern, den Sie der Spalte geben.
Nun ist meine Frage an Sie:
Verstehen Sie, wie die Formel funktioniert?
Wenn nicht, müssen Sie den Code studieren und Fragen zum Code stellen, damit Sie ihn verstehen und eventuell notwendige Änderungen in Zukunft vornehmen können.
Betreff: Erstellung einer neuen Spalte durch Gruppierung anderer SpaltenVielen Dank, dass Sie sich die Zeit genommen haben, dieses Problem zu lösen. Das vorgeschlagene Skript ergibt die folgenden Fehlabsichten für die erstellte Spalte Sub_Tool_Status:
1. Letzter Zeilenwert ergibt Ersetzt (angehängte Datei Zeile 91 gelb markiert)
2. Die letzte Zeile ist leer (angehängte Datei letzte Zeile)
2. Bei mehreren Ersetzungen wird nur die letzte Zeile vor der Ersetzung ersetzt und die vorherigen Zeilen werden nicht aktualisiert (angehängte Datei mit zwei grünen Schattierungen markiert)
Betreff: Erstellung einer neuen Spalte durch Gruppierung anderer SpaltenHier ist eine von mehreren Möglichkeiten, wie die neue Spalte wahrscheinlich berechnet werden kann.Erstellen Sie einfach eine neue Zeichenspalte, fügen Sie die folgende Formel in die neue Spalte ein und ändern Sie die Verweise auf "Active2" auf den Namen der neu erstellten Spalte.
If( Row() > 1,
If( :TOOL != Lag( :TOOL ) | :Site != Lag( :Site ) | Row() == N Rows( Current Data Table() ),
TargetValue = :Sub_Tool[Row() - 1];
:Active2[Row() - 1] = "Active";
For( i = Row() - 2, i >= 1, i--,
If( :Sub_Tool[i] == TargetValue,
:Active2[i] = "Active",
:Active2[i] = "Replaced";
Break();
)
);
)
);
If( Row() == N Rows( Current Data Table() ),
"Active",
"Replaced"
);
Betreff: Erstellung einer neuen Spalte durch Gruppierung anderer SpaltenHallo,
Die ursprüngliche Tabelle wird viele andere Spalten haben, für die ich Statistiken mit dem Sub_Tool berechnen werde, daher muss nicht nur die letzte Zeile als aktiv markiert werden, sondern der gesamte Stapel, auf dem das letzte Sub_Tool ausgeführt wurde. Dann ja, ich muss Finden Sie heraus, welches SubTool zuletzt für das Tool und die Site verwendet wurde, und markieren Sie dann alle Zeilen als aktiv, bis das SubTool geändert wurde.
Betreff: Erstellung einer neuen Spalte durch Gruppierung anderer SpaltenWenn ich Ihre Definition gelesen habe, kann ich Zeile 36 als aktiv betrachten, aber abgesehen davon, dass die Zeilen 28 bis 35 den SubTool-Wert zum Speichern haben, verstehe ich nicht, warum diese Zeilen als aktiv markiert werden sollten.
Oder möchten Sie einfach herausfinden, welches SubTool zuletzt für das Tool und die Site verwendet wurde, und dann alle Zeilen als aktiv markieren, die zurückgehen, wenn sich das SubTool ändert?????
ich bin verwirrt