Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
656to660
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
656to660
656to660
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Doppelteinträge

Doppelteinträge
29.08.2005 10:20:13
Daniel
Hallo Herbers...
Ich weiß dass dies eines der beliebtesten Fragen im Forum ist und sie auch schon tausend mal durchgekaut wurde, doch leider komme ich mit den bisherigen Lösungen auf mein Problem nicht ganz zu Potte.
ich habe eine große "Datenbank" die in Zeilen gespeicht Messdaten für Geräte speichert. Um Redundanzen zu vermeiden möchte ich ein Makro schreiben dass doppelte Zeilen anhand dem Vergleich von Spalte A, B und H bis S entfernt. Alle bisherigen Lösungen mit Spezialfilter etc. funktionieren nicht.
Bitte um Hilfe.
Gruß aus Schwaben,
Daniel

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelteinträge
29.08.2005 10:33:43
Fred
Hi,
sind die Daten sortiert oder falls nicht, können sie sortiert werden?
Kannst du auch mit einer Hilfsspalte leben?
mfg Fred
AW: Doppelteinträge
29.08.2005 10:52:18
Daniel
Hallo,
Die Daten sortiere ich im Vorfeld auf jeden Fall in der Reihenfolge Spalte A, B und H.
auf eine Hilfsspalte wäre kein Problem (kann ich ja danach wieder löschen)
vielen Dank schon im voraus.
mfg
Daniel
AW: Doppelteinträge
29.08.2005 11:22:23
Angel
Hallo
Also mit bedingter Formatierung hab ichs hingekriegt!
Spalte markieren/Format/bedingte Formatierung/"Formel ist"
= Zählenwenn(A:A;A1)grösserals1
Allerdings habe ich das noch nicht auf Zeilen probiert nur auf Spalten!
Hoffe das hilft dir weiter!
Gruss
Angel
Anzeige
AW: Doppelteinträge
29.08.2005 11:44:03
Daniel
ich glaube das führt nicht zum ziel da ich ja als kriterium eine redundanz in verschiedenen spalten brauche.
aber trotzdem danke für deine gedanken.
AW: Doppelteinträge
29.08.2005 11:43:05
ingoG
Hallo Daniel,
sind die Einträge in Spalte H-S als Einzelwerte zu sehen, oder wäre auch eine Vertauschung der Werte in diesen Spalten als Doppelt anzusehen.
Also ist in den Spalten H-S 1 2 3 4... = 4 3 2 1...
wenn das nicht der Fall ist, also jeder wert pro spalte gleich sein muß kannst Du folgende Formel in einer Hilfsspalte nutzen:
=summenprodukt(($A$1:$a1=$a1)*($b$1:$b1=$b1)*($H$1:$h1=$h1)*($i$1:$i1=$i1)*($j$1:$j1=$j1)*($k$1:$k1=$k1)*($L$1:$L1=$L1)*($m$1:$m1=$m1)*($n$1:$n1=$n1)*($o$1:$o1=$o1)*($p$1:$p1=$p1)*($q$1:$q1=$q1)*($r$1:$r1=$r1)*($s$1:$s1=$s1))&gt1
diese Formel gibst Du in Zeile 1 in eine Freie Spalte ein und kopierst sie nach unten soweit wie du sie brauchst...
das ergebnis ist Wahr, wenn wenn die Einträge in dieser Zeile schon einmal vorher vorkommt (in den angegebenen Spalten)
Das original, also der erste eintrag, ist jeweils noch mit falsch angegeben.
Wenn Du anschließend diese Zeilen löschst, solltest Du vorher die Formeln durch werte erstezen (kopieren, inhalte_einfügen/werte), danach kannst Du die tabelle dann filtern oder sortieren.
am besten kopiesrt Du nat. zur Sicherheit deine Datenbank vorher ;-)
Gruß Ingo
PS eine Rückmeldung wäre nett...
Anzeige
AW: Doppelteinträge
29.08.2005 12:25:33
Daniel
Hallo Ingo,
ich denke im großen und ganzen ist deine ´Lösung auf jeden Fall richtig.
Nur kann ich sie in meinem Fall glaube ich nicht anwenden da ständig neue Werte eingelesen werden und die Datenbank von einem andern Excel Dokument per Makro nur zum schreiben und auslesen "geöffnet" wird. Ich denke die einzigste Lösung für mich wäre ein Algorithmus den ich zu einem bestimmten Zeitpunkt ausführe. nur steig ich da nicht ganz hinter wie ich den schreiben soll.
Daniel
AW: Doppelteinträge
29.08.2005 14:36:14
ingoG
Hallo Daniel,
versuchs mal mit nachfolgendem Macro:
einfach in ein Modul der arbeitsmappe einfügen und aus der Tabelle starten.
bei sehr grossen Datenmengen läuft es ein wenig ;-)
auf jeden fall solltest Du zum Testen erst einmal eine Kopie erzeugen
Gruß Ingo
PS eine Rückmeldung wäre nett...
&ltpre&gt
Sub DoppelteLoeschen_Daniel()
Dim rr%
Application.ScreenUpdating = False
For rr = Range("a65536").End(xlUp).Row To 1 Step -1
If WorksheetFunction.CountIf(Range("$A$1:$A" & rr), Range("$A" & rr)) &gt 1 And _
WorksheetFunction.CountIf(Range("$B$1:$B" & rr), Range("$B" & rr)) &gt 1 And _
WorksheetFunction.CountIf(Range("$H$1:$H" & rr), Range("$H" & rr)) &gt 1 And _
WorksheetFunction.CountIf(Range("$I$1:$I" & rr), Range("$I" & rr)) &gt 1 And _
WorksheetFunction.CountIf(Range("$J$1:$J" & rr), Range("$J" & rr)) &gt 1 And _
WorksheetFunction.CountIf(Range("$K$1:$K" & rr), Range("$K" & rr)) &gt 1 And _
WorksheetFunction.CountIf(Range("$L$1:$L" & rr), Range("$L" & rr)) &gt 1 And _
WorksheetFunction.CountIf(Range("$M$1:$M" & rr), Range("$M" & rr)) &gt 1 And _
WorksheetFunction.CountIf(Range("$N$1:$N" & rr), Range("$N" & rr)) &gt 1 And _
WorksheetFunction.CountIf(Range("$O$1:$O" & rr), Range("$O" & rr)) &gt 1 And _
WorksheetFunction.CountIf(Range("$P$1:$P" & rr), Range("$P" & rr)) &gt 1 And _
WorksheetFunction.CountIf(Range("$Q$1:$Q" & rr), Range("$Q" & rr)) &gt 1 And _
WorksheetFunction.CountIf(Range("$R$1:$R" & rr), Range("$R" & rr)) &gt 1 And _
WorksheetFunction.CountIf(Range("$S$1:$S" & rr), Range("$S" & rr)) &gt 1 Then
Range("a" & rr).EntireRow.Delete
End If
Next
Application.ScreenUpdating = True
End Sub&lt/pre&gt
Anzeige
AW: Doppelteinträge
29.08.2005 12:30:58
Klaus
Hi Daniel,
Y1: "=A1&B1&H1&I1&J1&K1&L1&M1&N1&O1&P1&Q1&R1&S1"
Z1: "=wenn(zählenwenn(Y1;Y$1:Y1)=1;"";"!")
markiere Z:Z und kopieren / Werte einfügen,
dann lösch mit VBA alle Zeilen, bei denen in Spalte Z ein ! steht.
Gruß,
Klaus M.vdT.
AW: Doppelteinträge
29.08.2005 12:46:56
Daniel
Hallo alle zusammen,
wie ich schon dem Ingo geschrieben hab ist eine Lösung über excelfunktionen eher suboptimal da sich die "Datenbank" ständig erweitert. ich lese mit einem dokument per makro werte aus anderen dokumenten ein, formatiere diese in eine zeile und speichere sie dann per makro in die datenbank, welche wieder ein anderes excel dokument ist.
daher sollte die Lösung aus einem algorithmus bestehen der das für mich erledigt. hat da jemand ein zweckmäßiges beispiel für mich ?
mfg
daN
Anzeige
AW: Doppelteinträge
29.08.2005 13:02:19
Klaus
Hallo Daniel,
Dann schreib die Formeln doch einfach mit in das Makro! Zieh sie mit AutoFill Destination bis zur letzten Zeile und führ das Löschen Makro aus. Das ganze auf nen Button, und die Flexibilität ist da.
Gruß,
Klaus M.vdT.
AW: Doppelteinträge
29.08.2005 13:18:16
Daniel
Hallo Klaus,
vielen dank für dein reges Interresse.
ich hab jetzt mal einen kleinen auszug der db hochgeladen da ichs nicht gebacken bekomm.
(liegt vielleicht auch am harten we ;-)
kannst du dir das mal anschaun und mir den erforderlichen code vielleicht posten.
muchas gracias...
https://www.herber.de/bbs/user/26134.xls
Anzeige
AW: Doppelteinträge
29.08.2005 14:23:01
Daniel
Hallo Klaus,
vielen dank für dein reges Interresse.
ich hab jetzt mal einen kleinen auszug der db hochgeladen da ichs nicht gebacken bekomm.
(liegt vielleicht auch am harten we ;-)
kannst du dir das mal anschaun und mir den erforderlichen code vielleicht posten.
muchas gracias...
https://www.herber.de/bbs/user/26134.xls
AW: Doppelteinträge
31.08.2005 09:47:33
Klaus
Hallo Daniel,

AI1: =A1&B1&H1&I1&J1&K1&L1&M1&N1&O1&P1&Q1&R1&S1
AJ1: =WENN(ZÄHLENWENN($AI$1:AI1;AI1)=1;0;1)


Sub IdentifyDoubles()
azy = "AI1"
azv = "AJ" & Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
Range("AI1:AJ1").AutoFill Destination:=Range(azy, azv), Type:=xlFillDefault
End Sub
Sub ZeilenLoeschen()
Dim iRow As Integer, IRowL As Integer
IRowL = Cells(Rows.Count, 1).End(xlUp).Row
For iRow = IRowL To 2 Step -1
If Cells(iRow, 36) = 1 Then
Rows(iRow).Delete
End If
Next iRow
End Sub

Private Sub CommandButton1_Click()
IdentifyDoubles
ZeilenLoeschen
End Sub


Das sollte funktionieren - bitte Rückmeldung.
Gruß, Klaus M.vdT.
PS: VBA gut?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige