Sie müssen kreativ werden und die Sequenz bis zum Ende der Tabelle fortsetzenHallo,
Ich bin nicht sicher, ob es für mein spezielles Problem eine tolle Lösung gibt, würde aber gerne die Meinung von Experten hören ...
Wenn ich JMP 17 verwende, füge ich häufig neue Daten zu einer vorhandenen Datei hinzu. Jeder Zeile wird eine eigene, eindeutige „Chargennummer“ zugewiesen. Wenn ich einen neuen Datensatz erhalte, gibt es neue Chargennummern, die ich meiner vorhandenen Datei hinzufügen muss. Bislang wäre dies am einfachsten, wenn ich die neuen Chargennummern einfach in die Masterdatei kopiere und eine Tabellenaktualisierungsfunktion ausführe, um alle erforderlichen Daten zu übertragen. Ich suche jedoch nach einer Möglichkeit, dies automatisierter durchzuführen, um die „Datenverarbeitungszeit“ zu verkürzen.
Im Wesentlichen lautet die Quintessenz: Bin ich bei der Verwendung einer der folgenden Methoden nicht weitergekommen oder gibt es eine kreativere Möglichkeit, diese Aufgabe über JSL zu erledigen?
Was ich versucht habe:
- Fügen Sie Zeilen hinzu, markieren Sie die letzten Batchnummern und wählen Sie „Ausfüllen“ -> „Sequenz bis zum Ende der Tabelle fortsetzen“.
- Das Hinzufügen von Zeilen kann über JSL erfolgen, aber ich hatte Schwierigkeiten, eine autonome Möglichkeit zu finden, die Tabelle bis zum Ende zu füllen ...
- Kopieren Sie Chargennummern aus dem Datenimport und fügen Sie sie in den Datenmaster ein. Führen Sie dann eine Funktion zum Aktualisieren der Tabelle aus, um den Rest der Daten zu übernehmen.
- Bewährte Methode, die jedes Mal gut funktioniert. Sie muss nur etwas stärker automatisiert werden.
- Datentabellen verketten und anschließend Duplikate löschen
- Das hat wirklich gut funktioniert, aber manchmal sind die Daten in den letzten paar Zeilen im Master unvollständig, wären aber mit der Datenaktualisierung vollständig. Mit dieser Methode werden die älteren Duplikate gelöscht, obwohl es besser wäre, die neueren Duplikate zu behalten. Diese Methode könnte wirklich gut funktionieren, wenn ich die neueren Duplikate behalten könnte.
- Verwenden Sie eine Row()-Formel in einer angrenzenden Spalte oder für die Chargennummernspalte selbst.
- Wir beginnen fast nie mit Stapel Nr. 1, aber dies lässt sich leicht durch das Hinzufügen von Zeile()+(eine Zahl) erreichen. Wenn der erste Stapel also 6543 ist, wäre meine Formel [Zeile() + 6542] und die richtige Anzahl würde berechnet.
- Dies würde auch gut funktionieren, aber manchmal werden Chargennummern übersprungen. Dies würde dazu führen, dass die berechnete Spalte nicht mit der Chargennummernspalte übereinstimmt, es sei denn, ich möchte zeitweise Lücken in den Daten haben
Automatisierung und SkriptingBetreff: Sie müssen kreativ werden und die Sequenz bis zum Ende der Tabelle fortsetzenWenn Sie die Regeln und Ausnahmen definieren können, kann JSL geschrieben werden, um Ihr Problem zu lösen. Ich habe Schwierigkeiten, alles zu verstehen, was Sie gesagt haben, aber es scheint, dass alles in JSL gehandhabt werden kann, wenn Sie definieren können, wo die erste Chargennummer zu erhalten ist, was bei Unregelmäßigkeiten zu tun ist und wie der Fall übersprungener Chargennummern erkannt und behandelt wird.
Betreff: Sie müssen kreativ werden und die Sequenz bis zum Ende der Tabelle fortsetzenEs ist wirklich eine einfache Übung ... sagen wir, ich habe einen „Master“-Datensatz mit den Chargen 19257 bis 19640. Ich habe einen neuen Datensatz mit den Chargen 19620 bis 19665 erhalten, den ich nun zum „Master“-Datensatz hinzufügen muss, damit sie alle in einer Datei sind. Normalerweise kopiert man diese neuen Chargennummern in den Master und führt dann Tabellen -> Aktualisieren aus, gleicht die beiden Tabellen Charge = Charge ab und überträgt dann alle neuen Daten durch das Update.
Mein größtes Problem ist die Verwendung von JSL, um die Batchnummern aus den neuen Daten in die Stammdaten zu übertragen oder sie autonom bis zum Ende der Tabelle zu füllen. Das Hinzufügen von Zeilen, Ausführen der Tabellenaktualisierung und Löschen nicht verwendeter Zeilen ist der einfache Teil.
Betreff: Sie müssen kreativ werden und die Sequenz bis zum Ende der Tabelle fortsetzenSie können
Tabellen=>Verbinden
Dadurch wird eine neue Tabelle mit allen Daten aus der Originaltabelle und den neuen Zeilen aus der neuen Eingabetabelle erstellt. Anschließend können Sie die Originaltabelle einfach löschen und die neue verknüpfte Tabelle umbenennen.
Betreff: Sie müssen kreativ werden und die Sequenz bis zum Ende der Tabelle fortsetzenDas funktioniert gut, aber die neue Tabelle verliert dann die Zeilenzustände, die in der ersten Datentabelle angewendet werden können. Ich weiß, dass ich eine Zeilenzustandsspalte verwenden kann, aber ich muss alle Aktionen im Protokoll aufzeichnen und „Kopieren aus Zeilenzuständen“ wird aus irgendeinem Grund nicht im Protokoll aufgezeichnet. Die Idee ist, dass all dies im Protokoll aufgezeichnet wird, damit meine Kollegen es von dort kopieren können, um dieses Datenaktualisierungsskript zu erstellen, ohne die dahinter stehende Codierung lernen zu müssen.
„Verketten“ ist vielleicht die Option, nach der ich letztendlich suche, aber ich brauche eine Möglichkeit, Duplikate zu löschen und dabei das ZWEITE Duplikat beizubehalten. Die meisten Informationen in Dutzenden von Spalten werden identisch sein, aber im ersten Duplikat werden gegen Ende der Spaltenliste einige Daten fehlen. Daher wird das zweite Duplikat einen vollständigeren Datensatz liefern. Also:
Charge #
1
2
3 (duplizieren, löschen)
4 (duplizieren, löschen)
5 (duplizieren, löschen)
[unten wären die verknüpften Daten mit einigen doppelten Stapeln]
3 (duplizieren, behalten)
4 (duplizieren, behalten)
5 (duplizieren, behalten)
6
7
8
Betreff: Sie müssen kreativ werden und die Sequenz bis zum Ende der Tabelle fortsetzenIch kann mir nicht vorstellen, was Sie beschreiben, wenn Sie sagen: „ Die Idee ist, dass all dies im Protokoll aufgezeichnet wird, damit meine Kollegen es von dort kopieren und dieses Datenaktualisierungsskript erstellen können, ohne die Codierung dahinter erlernen zu müssen.“ Gibt es eine Möglichkeit, dass Sie genau durchgehen können, was im Protokoll bereitgestellt wird, das die Benutzer kopieren und verwenden?
Bezüglich der Duplikatsstapel schlage ich vor, dass Sie im Scripting-Index nach „Duplikatszeilen auswählen“ suchen. Dort werden alle Zeilen gefunden, die zuvor angezeigt wurden. Sie können dann eine Schleife durch die gefundenen Duplikate durchlaufen und von dort aus die vorherige Zeile finden, die dupliziert wurde, und diese Zeile dann löschen.
Betreff: Sie müssen kreativ werden und die Sequenz bis zum Ende der Tabelle fortsetzenMit dieser Aussage beziehe ich mich auf die Reihe von Schritten, die erforderlich sind, um neue Daten in einen vorhandenen Datensatz zu integrieren. Dazu gehören:
- Öffnen und importieren Sie einen neuen Excel-Datensatz, der zuvor unter einem bestimmten Dateinamen an einem bestimmten Speicherort gespeichert wurde
- Fügen Sie diese Daten dem vorhandenen Datensatz hinzu, um ihn zu vervollständigen
- „Bereinigen“ Sie die Daten (d. h. löschen Sie Spalten, die der neue Datensatz hinzufügt, aber nicht benötigt werden, formatieren Sie andere Spalten neu, was auch immer sonst nötig sein mag)
Alle diese Aktionen werden dem Protokoll hinzugefügt und das vom Protokoll generierte JSL kann in ein neues Skript in der Datentabelle kopiert werden. Nicht viele meiner Kollegen sind mit JSL vertraut, daher brauchen wir diese Einfachheit, damit das gesamte Team dieses Projekt für alle wiederholbar machen kann. Wenn ich einem Skript manuell JSL-Code hinzufügen muss, den das Protokoll nicht erfasst, wird die Implementierung des Endprodukts für das Team viel schwieriger.
Wie würde man den Teil Ihres Vorschlags angehen, in dem es heißt: „Durchlaufen Sie die gefundenen Duplikate, suchen Sie von dort aus die vorherige Zeile, die dupliziert wurde, und löschen Sie diese Zeile dann.“ Ich denke, das könnte das letzte fehlende Puzzleteil sein, um das Ganze zusammenzufügen.