Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
384to388
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
384to388
384to388
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bereinigen einer Tabelle mit doppelten Einträgen

Bereinigen einer Tabelle mit doppelten Einträgen
19.02.2004 12:26:16
Philip
Hallo,
ich habe folgende Problem.
von meiner SQL Abfrage erhalte ich folgendes Ergebis.
PNR Name Sport Birthday
23 RICKERT 892407 31.12.1974 00:00
23 RICKERT 892377 31.12.1974 00:00
23 RICKERT 892385 31.12.1974 00:00

Ich muss diese Liste bereinigen.
Da es sich immer um dieselbe Person Handel (PNR) allerdings mit verschiedenen Sportarten möchte ich aus den drei Datensätzen einen machen.
Die Liste so anschliessend so aussehen
PNR Name Birthday Sport1 Sport2 Sport3
23 RICKERT 31.12.1974 00:00 892407 892377 892385
Kann mir jemand helfen?
Vielen Dank Philip

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereinigen einer Tabelle mit doppelten Einträgen
19.02.2004 13:25:41
Student2000
LetzteZeile = Worksheets("Tabelle_Alt").Cells.Find(What:="*", _
After:=Worksheets("Tabelle_Alt").Range("A1"), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
a = 1 'Schleife in der Tabelle Alt - Startzahl für die erste Zeile

Zella = 1 ' Zeile zu der die Daten exportiert werden sollen


Do While a < LetzteZeile 'Anzahl der Zeilen in Tabelle Alt
Zelle = 1
Spalte = 1

i = 1 'Startzahl für die erste Zeile in Tabelle Alt
SpalteSport = 6
Do While i < LetzteZeile 'Anzahl der Zeilen in der Tabelle_Alt




If Worksheets("Tabelle_Alt").Cells(Zellea, 1) = Worksheets("Tabelle_Alt").Cells(i, 1) Then
Sheets("Tabelle_Alt").Cells(Zellea, SpalteSport).Value = Sheets("Tabelle_Alt").Cells(i, 3).Value
else
SpalteSport = 5


End If



i = i + 1 'Hochsetzen der Zeile, damit in Tabelle_Alt von Zeile zu Zeile nach unten gesprungen wird

SpalteSport = SpalteSport + 1

Loop 'Ende Schleife in der Tabelle_Alt

Zellea = Zellea + 1 'Hochsetzen der Zelle, damit in Tabelle_Alt von Zelle zu Zelle nach unten gesprungen wird
a = a + 1 'Hochsetzen der Zeile, damit in TAbelle_ Alt von Zeile zu Zeile nach unten gesprungen wird

Loop 'Ende Schleife in der Tabelle_Alt

Anschliessend löscht du nur noch die Spalte "Sport"
Application.ScreenUpdating = True
Bin zwar selber gerade anfänger, konnte dir aber hoffentlich helfen, sind bestimmt noch ein paar Systaxfehler drin aber so könnnte es meiner meinung nach klappen. Viel Glück.
Anzeige
AW: Bereinigen einer Tabelle mit doppelten Einträgen
19.02.2004 17:02:44
Philip
Besten Dank klappt Prima!
Wie kann ich den jetzt die doppelten löschen, so das nur eine Zeile pro PNR übrig bleibt?
Das Problem ist das ich fast 140000 Einträge habe und sie so minimieren könnte
Nochmals danke für die schnelle Hilfe!
AW: Bereinigen einer Tabelle mit doppelten Einträgen
20.02.2004 10:47:33
Student2000
Nimm doch die Sortierfunktion, ganz schnell, sortierst nach Sport1 und dann was unten übersteht schneidest weg.
mfg thomas
AW: Bereinigen einer Tabelle mit doppelten Einträgen
20.02.2004 11:52:22
Philip
Hi,
hatte ich auch dedacht, aner die TAbelle hat 14000 Einträge.
Ideal wäre die doppelten Zeilen direkt nach der Sortierung zu löschen.
Anzeige
AW: Bereinigen einer Tabelle mit doppelten Einträgen
20.02.2004 14:53:05
Student2000
Ok, das wird aber ne weile dauern. Jedenfalls bei 14000 einträge. Aber das gute ist du lässt es ja machen :).
Ok habe ne Idee, du baust dir ne Schleife mit i = 1
do while i < 14001 'hier kannst du auch nach der letzten Zeile suchen
if worksheets("Tabelle").Cells(i, Sport1 oder Sport 3 je nachdem welche leer ist) = "" then
lösche Zeile i ' Obacht nicht ausschneiden sonst haut deine Schleife nicht hin
i = i + 1
else
i = i + 1
end if
Jetzt brauchst du nur noch einmal nach PNR sortieren lassen und Voilà!
mfg Thomas

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige