Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1524to1528
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

Nur bestimmte Duplikate entfernen

Nur bestimmte Duplikate entfernen
17.11.2016 12:29:40
Philipp
Hallo zusammen,
ich habe eine Tabelle mit mehreren Statuswechseln aus einem Ticketsystem.
Incident ID Create Date Gruppe
INC000000618504 1.11.16 12:25 2nd
INC000000618504 1.11.16 12:38 TXVT
INC000000618504 1.11.16 12:56 3rd
INC000000618504 1.11.16 16:04 2nd
INC000000617209 2.11.16 11:09 2nd
INC000000619186 2.11.16 11:22 TXVT
INC000000619224 2.11.16 12:05 2nd
usw
Bei doppelten Einträgen für die Incident ID soll jeweils die Zeile mit dem frühesten Create Date erhalten bleiben. Ausnahme: Die Gruppe ist TXVT. Dann soll immer der früheste TXVT Timestamp erhalten bleiben - auch wenn das Ticket vorher in einer anderen Gruppe war.
Ich schaffe es mit "Duplikate entfernen" bisher immer nur den ersten Wert zu erhalten. Wie kann ich hier Abhängigkeiten definieren ?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur bestimmte Duplikate entfernen
17.11.2016 13:12:35
UweD
Hallo
mit Hilfsspalten und dann nach X filtern und löschen.

Tabelle1
 ABCDE
1Incident ID Create DateGruppeTmpFiltern X
2INC00000061850401.11.2016 12:252nd1X
3INC00000061850401.11.2016 12:38TXVT2 
4INC00000061850401.11.2016 12:563rd0X
5INC00000061850401.11.2016 16:042nd0X
6INC00000061720902.11.2016 11:092nd1 
7INC00000061918602.11.2016 11:22TXVT2 
8INC00000061922402.11.2016 12:052nd1 

verwendete Formeln
Zelle Formel Bereich N/A
D2: D8=WENN(C2<>"TXVT";(AGGREGAT(15;2;(B:B)/(A:A=A2);1)=B2)*1;(AGGREGAT(15;2;(B:B)/((A:A=A2)*(C:C="TXVT"));1)=B2)*2)  
E2:E8=WENN(AGGREGAT(14;2;(D: D)/(A:A=A2);1)=D2;"";"X")  
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://Hajo-Excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 21.10 einschl. 64 Bit


LG UweD
Anzeige
AW: AW: Nur bestimmte Duplikate entfernen
18.11.2016 09:30:58
Philipp
Hallo Uwe,
vielen vielen Dank! Das klappt soweit. Toll!
Nice to have:
Gibt es noch eine "universellere" VBA-Lösung ?
AW: Nur bestimmte Duplikate entfernen
18.11.2016 09:53:50
Daniel
Hi
1. füge eine Hilfsspalte mit der Formel ein (für die Kursiven Begriffe bitte den jeweiligen Zellbezug einsetzen:
=Wenn(Gruppe="TXVT";Datum-3652;Datum)
2. sortiere die Liste nach der Hilfsspalte
3. wende jetzt das Duplikate-Entfernen mit der Incident-ID als Kriterium an.
4. lösche die Hilfsspalte wieder
das Duplikate-Entfernen lässt immer den ersten Wert einer Gruppe stehen.
Durch geschicktes Sortieren muss man erreichen, dass die Zeile, die stehen bleiben soll, als erste kommt.
In der Hilfsspalte wird das Datum um 10 Jahre nach vorne verlegt, wenn der Eintrag TXVT enthält, somit steht dieser Eintrag dann auf jeden Fall an erster Stelle.
Per VBA macht man das dann genauso, dh einfach diese Schritte per VBA ausführen lassen.
Der Recorder ist dein Freund.
Gruß Daniel
Anzeige
AW: AW: Nur bestimmte Duplikate entfernen
18.11.2016 11:26:16
Philipp
Hallo Daniel,
clever und so einfach! Klappt auch. Danke!
Für meinen Use-Case hat sich der Ansatz von Uwe als zielführender erwiesen.
So habe ich die Duplikate "markiert" und kann sie kontextbezogen trotzdem in die Berechnungen reinnehmen.
Eine abschließende Frage habe ich noch.
Uwes Formel klappt super wenn ich eben die genauen Zellbezüge nehme A2 B2 C2 usw.
Ich arbeite in meiner Tabelle aber mit einer echten "Tabelle".
Die Tabellen-Formel für Temp schmeißt mir dann aber leider andere Werte aus
=WENN([@[Incident ID]]"TXVT";(AGGREGAT(15;2;([Create Date])/([Incident ID]=[@[Incident ID]]);1) =[@[Create Date]])*1;(AGGREGAT(15;2;([Create Date])/(([Incident ID]=[@[Incident ID]]) *([Gruppe]="TXVT"));1)=[@[Create Date]])*2)
Wie müsste die Formel von Uwe korrekt lauten um das in meiner Tabelle abzubilden
Incident ID Create Date Gruppe Tmp
INC000000618504 1.11.16 12:25 2nd 1
INC000000618504 1.11.16 12:38 TXVT 0
INC000000618504 1.11.16 12:56 3rd 0
INC000000618504 1.11.16 16:04 2nd 0
INC000000617209 2.11.16 11:09 2nd 1
INC000000619186 2.11.16 11:22 TXVT 1
INC000000619224 2.11.16 12:05 2nd 1
Anzeige
Nevermind...
18.11.2016 11:42:30
Philipp
Dummer Fehler bei mir. Hat sich gelöst.
Korrekt ist natürlich:
=WENN([@Gruppe]"TXVT";(AGGREGAT(15;2;([Create Date])/([Incident ID]=[@[Incident ID]]);1) =[@[Create Date]])*1;(AGGREGAT(15;2;([Create Date])/(([Incident ID]=[@[Incident ID]]) *([Gruppe]="TXVT"));1)=[@[Create Date]])*2)
Noch mal Danke an Euch beide!

32 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige