Hallo zusammen, ich stehe vor einem Problem, dass ich aktuell nicht lösen kann.
Folgendes:
- Ich habe eine Spalte mit Paketnummern, die sich zum teil mehrfach wiederholen - ich habe eine weitere Spalte mit Sendungsnummern, die zu diesen Paketnummernr gehören. Diese Sendungsnummern sind einmalig - ich habe eine dritte Spalte mit einem Versanddatum je Sendungsnummer
Ich möchte nun, dass es pro Paket nur noch ein Versanddatum gibt undzwar soll dabei immer nur das jeweils aktuellste Datum je Paket erhalten bleiben. Jedes andere Datum des Paketes soll mit dem aktuellsten Datum überschrieben werden.
Da die Tabelle mit der ich arbeite mehreretausend Zeilen hat, kommt manuelles Aussortierung und überschreiben nicht in Frage. Mit Makro-Kenntnissen kann ich leider nicht dienen
Über Pivot-Tabellen, Sortierfunktionen, Duplikate, etc. bin ich bisher leider nicht zum Ergebnis gekommen.
Hat jemand eine Idee? Ist schwer zu beschreiben, ich hoffe es ist so weit verständlich.
Anbei eine kleine Beispieldatei. Die grün markierten Zellen wären also jeweils das Datum, was für das jeweils ganze Paket (Spalte A) übernommen werden soll.
zum Überschreiben der Daten wirst du um VBA nicht herumkommen; dabei kann ich dir fachlich aber nicht helfen.
Zitat:undzwar soll dabei immer nur das jeweils aktuellste Datum je Paket erhalten bleiben. Jedes andere Datum des Paketes soll mit dem aktuellsten Datum überschrieben werden.
29.07.2020, 00:00 (Dieser Beitrag wurde zuletzt bearbeitet: 29.07.2020, 00:00 von Raoul21.)
Hi Wisch
füge folgendes Makro in ein modul in Alt+F11 ein.
Code:
Sub Datumeinsatz() Application.ScreenUpdating = False Dim a As Long, c As Long, d As Range, e As Range, f As Date With Range("A1").CurrentRegion a = 2 Do For c = a To .Rows.Count If .Cells(c, 1) <> .Cells(a, 1) Then Exit For Next c Set d = Range(.Cells(a, 3), .Cells(c - 1, 3)) f = d(1) For Each e In d If e > f Then f = e Next e d.Value = f a = c Loop Until c > .Rows.Count End With Application.ScreenUpdating = True End Sub
Vorausgesetzt, dass die Paketnummern alle zusammenstehen.
Das Ganze kann auch mit Arrays programmiert werden, was eventuell bei einer so großen Menge wie bei Dir spürbar schneller geht.
Der Vorteil des Makros ggü der Power Query Abfrage ist, dass Du es nur in ein Modul kopieren und starten musst.
Wisch, dein Ergebnis sieht gut aus. Leider habe ich mit PowerQuery noch nie etwas gemacht.
Wäre es kompliziert mir in Stichworten zu erklären, wie du dieses Ergebnis erreicht hast? Das Ergebnis in einem neuen Tabellenblatt wäre in der Tat kein Problem.
Und sorry für die Falsche Markierung in Paket 3. Upsi
Über: Daten > Abfragen und Verbindungen, gelangst du zu Power Query. Rechts werden dann alle in der Mappe enthaltenen Abfragen gezeigt. U.a. mit einem Doppelklick auf eine Abfrage, öffnet sich für diese der PQ-Editor und zeigt immer das Ergebnis des letzten Schritts an.
Klicke, von oben nach unten, die einzelnen Schritte an, um zu sehen was passiert. Zeigt ein Schritt, rechts, ein zahnradähnliches Symbol, öffnet sich, durch einen Klick darauf, das jeweilige Funktionsfenster.
In der Funktionszeile (direkt über der Tabelle) wird der erzeugte M-Code des jeweiligen Schritts gezeigt, der auch nach Bedarf angepasst werden kann. Ein Druck auf die Taste "Erweiterter Editor" zeigt den gesamten M-Code der Abfrage. Es braucht eine Weile (Tage/Wochen), bis man sich an diese Darstellung gewöhnt hat und den Inhalt interpretieren kann. Auch hier kann nach belieben, geändert, eingefügt und gelöscht werden, sollte aber Anfangs vermieden werden, da man zuerst einmal die M-Code Regeln kennen muss, um Fehlermeldungen halbwegs zielsicher interpretieren zu können. Bspw. ist Groß-/Kleinschreibung bei PQ immer exakt zu beachten. Sowohl bei Befehlen, als auch bei selbst definierten Feldnamen und auch bei den Schrittnamen.
Da aber sehr viele Abfragen einfach zusammengeklickt werden können, ist es zuerst einmal nicht wichtig, den daraus resultierenden M-Code zu verstehen.
Für diese Abfrage habe ich den Cursor irgendwo in die Ausgangstabelle positioniert und "Daten > Abfragen und Verbindungen > Aus Tabelle/Bereich" gewählt und das Popup mit OK bestätigt.
Schon hatte ich die Schritte Source und Changed Type (Quelle / Geänderter Typ), da ich einmalig im PQ-Editor über: Datei > Optionen und Einstellungen > Abfrageoptionen > Regionale Einstellungen > Abfrageschritte "Immer Englisch" gewählt habe, werden bei mir die englischen Schrittnamen angezeigt. Dies ist hilfreich, wenn ich bei eigenen Fragen, international frage.
Durch anklicken des Symbols links vom Spaltentitel kann/muss der automatisch ermittelte Datentyp angepasst werden. MUSS bspw. bei Postleitzahlen.
Hier nun die weiteren Schritte:
Grouped Rows: Start > Gruppieren nach: Paketnummer (ohne Aggregation (Alle Zeilen)) und Ermittlung "Datum aktuell ,mittels "Max" aus Versanddatum.
Expanded {0}: Die neue Spalte "Anzahl" zeigt nun oben eine Taste mit 2 auseinanderlaufende Pfeile an. Durch anklicken kann gewählt werden, welche Felder beim "erweitern" der Gruppierung angezeigt werden sollen. Der Inhalt der neuen Spalte "Datum aktuell", wird dabei automatisch auf alle Zeilen der jeweiligen Gruppe (Paketnummer) übernommen.
Removed Columns: Nicht benötige/benötigte Spalten markieren und Start > Spalten entfernen/Andere Spalten entfernen wählen.
Renamed Columns: Spaltentitel nach Bedarf anpassen.
Abschließen der Abfrage über Start > Schließen & Laden. Wird das Ergebnis einer Abfrage nur für weitere Abfragen benötigt, kann es auch nur intern (Nur Verbindung erstellen) geladen werden. PivotTabel/PivotChart sind auch möglich.
Ich habe nun noch eine weitere Abfrage erstellt, die die zu jeder Paketnummer die Anzahl der Lieferungen und das Versanddatum zeigt.
Einige gute YouTube Videos sind gut geeignet um mehr über Power Query zu erfahren.
VG, wisch Wer Hilfe nimmt, sollte auch Hilfe geben! Auch wenn dies auf einem ganz anderem Gebiet geschieht.