Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1308to1312
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
Inhaltsverzeichnis

Duplikate speziell entfernen

Duplikate speziell entfernen
25.04.2013 10:39:19
Martin
Hi Leute ich hab ein dringendes Problem. Ich muss heut Nachmittag eine Auswertung abgeben und die Daten die ich dafür bekommen habe sind ein Graus.
Ich habe eine Tabelle mit ca. 20.000 Datensätzen. Ich muss die Tabelle nun nach Duplikaten filtern. Allerdings ist das mit dem normalen Duplikatsfilter nicht möglich.
Ich habe 6 Werte an die ich mich richten muss:
Beginn: Tageszeit des Starts: 0 = Vormittag; 1 = Nachmittag; 2 = Abend
Datum: Datum des Termins
Nummer: Die Nummer einer Einheit. Nicht die ID. Kommt von 1 - x mal vor
Flag 1 bis 3: gibt bekannt welche Tagesteile die Einheit in Anspruch nimmt
Flag 1 = Vormittag
Flag 2 = Nachmittag
Flag 3 = Abend
Ich muss die Tabelle nun so bereinigen, dass immer nur die wenigsten Datensätze übrig bleiben.
Hier noch ein Beispiel mit weiteren Erklärungen. Ich glaube dann ist es einfacher.
https://www.herber.de/bbs/user/85050.xlsx
Ich danke euch schon jetzt für eure Hilfe.
lg
Martin

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Duplikate speziell entfernen
25.04.2013 11:10:55
EtoPHG
Hallo Martin,
Aufgrund welcher Regel wird der Eintrag in Zeile 11 (Nummer 3000) entfernt?
Gruess Hansueli

AW: Duplikate speziell entfernen
25.04.2013 11:30:11
Martin
Hi Hansueli!
Danke für die schnelle Antwort.
Die Zeile 10 und 11 werden entfernt, da die Zeile 9 bereits alle beinhaltenden flags enthält. Die Einheit belegt den Vormittag und den Nachmittag vom 05.06.2013
Hmmm. Das bedeutet natürlich auch, dass die Spalte "Beginn" eigentlich nicht relevant ist, sondern nur die vorhandenen flags.
Danke und lg
Martin

AW: Duplikate speziell entfernen
25.04.2013 11:31:28
Martin
Hab vergessen als offen zu markieren.

Versuch's mit einer Pivottabelle (owT)
25.04.2013 11:55:54
EtoPHG

Zellen verketten, dann sind sie eindeutig (owT)
25.04.2013 12:51:15
Rainer

Anzeige
AW: Zellen verketten, dann sind sie eindeutig (owT)
25.04.2013 13:02:02
Bertram
Hallo Rainer,
die Datensätze sind dann zwar eindeutig, das ist aber noch nicht ausreichend.
Siehe hier https://www.herber.de/forum/messages/1310347.html
Gruß
Bertram

AW: Duplikate speziell entfernen
25.04.2013 13:00:06
Bertram
Hallo Martin,
hab da mal was gebastelt:-) Ist zwar nicht unbedingt elegant, sollte aber funktionieren, wenn deine Ausgangsdaten sortiert sind nach
1. Datum aufsteigend
2. Nummer aufsteigend
3. Flag 3 absteigend
https://www.herber.de/bbs/user/85060.xlsx
Gruß
Bertram

Anzeige
AW: Duplikate speziell entfernen
25.04.2013 13:14:35
Martin
Hi Bertram,
danke für die Mühe! Ich werd das mal versuchen.

AW: Duplikate speziell entfernen
25.04.2013 13:21:06
UweD
Hallo
kann aus den ersten 3 Spalten

0	25.04.2013	1000	1
0	25.04.2013	1000	1
0	25.04.2013	1000		1

nicht eine übrigbleiben

0	25.04.2013	1000	1	1
?

AW: Duplikate speziell entfernen
25.04.2013 13:53:25
UweD
meine natürlich ersten 3 Zeilen (nicht Spalten)

AW: Duplikate speziell entfernen
25.04.2013 14:28:33
UweD
Sollte das so sein, dann wäre diese Lösung möglich

Sub supersort()
On Error GoTo Fehler
Dim TB, i%
Dim SP%, ZE&, LR&
Set TB = ActiveSheet
SP = 2 'Spalte B
ZE = 2 'Zeile 2
With TB
LR = .Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
Application.ScreenUpdating = False
For i = LR To ZE Step -1
If .Range("C" & i) = .Range("C" & i - 1) And _
.Range("D" & i) = .Range("D" & i - 1) Then
If .Range("E" & i) = .Range("E" & i - 1) And _
.Range("F" & i) = .Range("F" & i - 1) And _
.Range("G" & i) = .Range("G" & i - 1) Then
.Rows(i).Delete xlUp 'alles gleich
Else
.Range("E" & i - 1) = IIf(Application.Max(.Range("E" & i), .Range("E" &  _
i - 1)) > 0, 1, "")
.Range("F" & i - 1) = IIf(Application.Max(.Range("F" & i), .Range("F" &  _
i - 1)) > 0, 1, "")
.Range("G" & i - 1) = IIf(Application.Max(.Range("G" & i), .Range("G" &  _
i - 1)) > 0, 1, "")
.Rows(i).Delete xlUp
End If
End If
Next
End With
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
Gruß UweD
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige