Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
208to212
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
208to212
208to212
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Duplikate herausfiltern

Duplikate herausfiltern
29.01.2003 10:38:07
Frank Andert
Moin!

Möchte aus nem Excelsheet Duplikate herausfiltern. Am besten aus zwei Spalten. Verwende dabei folgendes Makro:

Sub ident_rows()
startzeile = ActiveCell.Row 'suche aufwärts ab der aktuell aktivierten Zeile
startspalte = ActiveCell.Column
i = startzeile
geloeschte_zeilen = 0
Set bereich = Intersect(Columns(startspalte), _
Range(startzeile & ":65536"), _
ActiveSheet.UsedRange)
If bereich.Cells.Count < 2 Then Exit Sub
Do
j = bereich.Cells.Count
gleich = False
Do
If bereich(i) = bereich(j) Then
bereich(j).EntireRow.Delete shift:=xlUp
geloeschte_zeilen = geloeschte_zeilen + 1
End If
j = j - 1
Loop Until j <= i
bereich(i).Offset(0, 1) = geloeschte_zeilen
geloeschte_zeilen = 0
i = i + 1
Loop Until i >= bereich.Cells.Count

End Sub
-------
Aber er filtert irgendwie mir unergründlich Zeug raus und dann stehen in zwei Zelle untereinander immernoch Duplikate. Was mach ich falsch. Möchte, dass er in Spalte F und Spalte H die Duplikate sucht. Ausserdem wäre es noch von Vorteil, wenn er mir die gelöschten zählt, d.h. dass ich seh, wo die Duplikate waren und wieviele es mal waren.

Thxs 4 Help!

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Duplikate herausfiltern
29.01.2003 10:40:48
Hajo_Zi

Hallo Frank

Doppelte Löschen
angenommen Deine Daten stehen in A1 bis A????
Bereich markieren = Spalte A anklicken (evtl eine Leerzeile vorher einfügen)
Daten / Filter / Spezialfilter
keine Duplikate
jetzt kannst du noch einstellen, ob an gleicher Stelle oder woanders placiert; hier also B1 eingeben
Spalte A anschließend löschen
Bei meheren Spalten, muß die Liste eine Überschrift haben, am besten fett formatiert, dann erkennt Sie auch Excel als Überschrift.

Gruß Hajo

Re: Duplikate herausfiltern
29.01.2003 10:45:47
wolf.w.radzinski

"Was mach ich falsch."

:-)

Hallo Frank,

gar nichts, ich dachte du hast schon eine andere Lösung gefunden und hab mich nicht weiter darum gekümmert :-) denn obiges Makro hat noch ein paar kleine Macken (da es ursprünglich für was ganz anderes geschrieben wurde)

Zusatzfrage(n)

darf man die Zeilen vor der Suche sortieren? Wieviele Zeilen gibt es durchschnittlich? Zuerst alle Duplikate aus Spalte F entfernen und danach die aus H oder nur Duplikate, di in F UND H gleiche Inhalte haben?

Gruß -wr-

Anzeige
Zusatzfragen (2)
29.01.2003 11:01:56
wolf.w.radzinski

Was passiert, wenn ein "Duplikat" gefunden wird? Soll die ganze Zeile oder nur die ZELLE gelöscht werden?

Re: Zusatzfragen (2)
29.01.2003 11:17:30
Frank Andert

Nee, nicht sortieren. Ich hab ein Textfile, da stehen diverse Sachen wie ne Nr., Datum, Uhrzeit usw. drin, dass soll dann per Makro in Excel importiert werden, so dass Datum, Uhrzeit in ner eigenen Spalte stehn. Vorher werden noch Überschriften eingefügt und dann, wenn die Daten importiert wurden, wird noch alles schön formatiert, die Zeilen fixiert und die Datei mit dem aktuellen Datum abgespeichert. Es kann durchaus sein, dass in in Spalte F mehrmals der gleiche Name drinsteht, weil etwas mehrmals abgebrochen ist. In Spalte H steht wiederrum der Returncode und wenn diese beiden Kriterien übereinstimmen mit den anderen, dann sollen die Duplikate gelöscht werden. Wieviele Zeilen es durchschnittlich gibt ist schwer zu sagen, dass kommt darauf an, wieviele Abbrüche am Tag so passieren. Dass können mal 20 sein, manchmal aber au nur 3.

Konntet ihr mir alle folgen? *g*

Anzeige
it works, aber noch einen Wunsch
29.01.2003 11:28:14
Frank Andert

ja, es tut :)

Jetzt nur noch der letzte Wunsch, dann hab ichs endlich vollendet:

Kann ich mir die Anzahl der gelöschten Zeilen, also der Duplikate, anzeigen lassen?

Bitte, diese eine letzte Hürde muss ich nur noch überwinden.

Re: it works, aber noch einen Wunsch
29.01.2003 11:31:01
Hajo_Zi

Hallo Frank

wenn Du es in eine neue Tabelle kopierts hast Du doch den unterschied durch die Zeilenanzahl

Gruß Hajo

Re: it works, aber noch einen Wunsch
29.01.2003 11:34:59
Frank Andert

Jaa, nee, is nich so wirklich prickelnd. Dann wird mir ja nur angezeigt, dass Duplikate gelöscht wurden, aber nicht welche. Mir schwebt da aber noch etwas vor. Kann ich identische Zellen, also die mit gleichem Inhalt markieren? Dass macht dann alles etwas übersichtlicher. Aber wennd as nicht geht, dann muss ich wohl auf dieses, bestimmt nette Feature, verzichten.

Anzeige
Re: it works, aber noch einen Wunsch
29.01.2003 11:38:20
Hajo_Zi

Hallo Frank

mal als Ansatz

Doppelte Einträge
Annahme: Deine Werte stehen in A1 bis Axx
A2 anwählen,Format, Bedingte Formatierung (bei bedingter Formatierung soll es eine Grenze von 2050 Zeilen geben, mal selber Testen)
- "Formel ist" auswählen NICHT "Zellwert ist"
Bei der Formel eingeben =ZÄHLENWENN(A$1:A1;A2)>=1
Bei Format dann z.B. Musterfarbe rot auswählen mit OK beenden.
Die Formatierung auf Die Zellen A3 bis Axx kopieren. Fertig
Dann werdenn Doppelt farblich gekennzeichnet

oder
kann man auch die Doppeleingabe selber verhindern:
z.B, unter Daten, Gültigkeit, benutzerdefiniert
Formel
=ZÄHLENWENN(A:A;A1)=1
nach unten kopieren.
Von Ulrich Schneider

Gruß Hajo

Anzeige
Rundumschlag
29.01.2003 11:57:14
wolf.w.radzinski

1) füge eine weitere Titelspalte ein
2) schreibe z.B. in D1="A" und in H1="B"
3) füge eine Hilfsspalte ein mit der Formel =D1&H1
4) weitere Hilfsspalte mit =Zählenwenn("werte für Hilfsspalte")-1
5) starte dieses Makro
Sub Makro()
Columns("A:H").AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Columns("D:H"), Unique:=True
End Sub

steht jetzt in der zweiten Hilfsspalte die "Anzahl" gelöschter Zeilen? (oder hab ich da was falsch gemacht?)

Gruß -wr-



Re: Rundumschlag
29.01.2003 13:42:34
Frank Andert

Doch, da steht was, '0' um genau zu sein. Das stimmt ja, denk ich mal. Nur bringt mir wie gesagt, dass ausrechnen der gelöschten Zeilen nichts, weil ich ja dann nicht weiss, was in den Zeilen drin stand. Aber wie gesagt, so wie es jetzt ist, funktioniert es schonmal wunderbar und dafür dank ich euch! Allen!! :)

Anzeige
Re: Rundumschlag
29.01.2003 14:06:41
wolf.w.radzinski

Hallo Frank,

ich hoffe du hast bei meinem Beipsiel auch

=Zählenwenn("werte für Hilfsspalte")-1

durch die tatsächlich benutzte Spalte ersetzt (soviel mitdenken wird erwartet - schließlich ist es ja auch dein Problem)

ANGENOMMEN in Spalte J Zelle J3 steht die Formel =D3 & H3 (und die Formel wurde nach unten kopiert!)

und in Spalte K Zelle K3 steht dann =Zählenwenn(J:J;J3)-1 (und die Formel wieder nach unten kopiert)

DANN steht nach dem Start des (Filter)Makros nicht in jeder Zelle der Spalte K eine Null, außer es gibt wirklich keine Duplikate

Re: Rundumschlag
29.01.2003 14:09:43
wolf.w.radzinski

Hallo Frank,

>>Nur bringt mir wie gesagt, dass ausrechnen der gelöschten Zeilen nichts, weil ich ja dann nicht weiss, was in den Zeilen drin stand<<

1) ein FILTER löscht nichts

2) die Zahl steht genau in der Zeile, in welcher du in Spalte D und H ablesen kannst, was in den geFILTERTEN Spalten in diesen Zellen stand (die Info über die restlichen Zellen verlierst du natürlich durchs Filtern, dazu mußt du dann wieder ALLE DATENSÄTZE anzeigen!)

Gruß -wr-

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige