Die Einträge 2-4 Stellen für mich keine Duplikate da. Ich möchte nur solche löschen, wo sich die Teile, die durch das "_" getrennt sind, in umgekerhter Reihenfolge wiederholen. Also in diese Fall 5-7. Das am besten durch eine Funktion die ich dann auf mehrere Tabellen anwenden kann, da sich das Problem wiederholen wird.
13.06.2016, 20:40 (Dieser Beitrag wurde zuletzt bearbeitet: 13.06.2016, 21:03 von WillWissen.
Bearbeitungsgrund: Makro in Codetags gesetzt
)
Hallo Mahadmakandis, dies ließe sich durch ein Makro regeln mit folgendem Ablauf regeln: - A2 der Tabelle wählen - alle weiteren Ai durchsuchen, ob sich 'umgekehrtes Duplikat' findet - wenn ja, Zeile löschen - weiter mit nächster Zeile bis unten - dann A3 wählen, wiederholen, bis wiederum unten in der Tabelle (leere Zelle A...) Falls sonst kein Underline im Text vorkommt, wäre das folgender Code:
Code:
Sub DupKill() Dim zeile As Long, i As Long, a1, a2, a3, a4, j With ActiveWorkbook.ActiveSheet zeile = 2 While Not IsEmpty(.Cells(zeile, 1)) j = InStr(1, .Cells(zeile, 1), "_") a1 = Left(.Cells(zeile, 1), j - 1) a2 = Mid(.Cells(zeile, 1), j + 1) i = zeile + 1 While Not IsEmpty(.Cells(i, 1)) a3 = Left(.Cells(i, 1), j - 1) a4 = Mid(.Cells(i, 1), j + 1) If a1 = a4 And a2 = a3 Then 'muss weg .Cells(i, 1).EntireRow.Delete shift:=xlUp Else i = i + 1 End If Wend zeile = zeile + 1 Wend End With End Sub
14.06.2016, 13:30 (Dieser Beitrag wurde zuletzt bearbeitet: 14.06.2016, 14:22 von Rabe.
Bearbeitungsgrund: Zitat auf Relevantes reduziert
)
(13.06.2016, 20:40)AlterDresdner schrieb: Falls sonst kein Underline im Text vorkommt, wäre das folgender Code:
In jeder Interaktion kommt genau einmal "_" vor und in keinem anderen sonst. Ich bin ein absoluter Excell Anfänger und habe mich durch ein anderes Thema gerade das 1. mal mit PowerQuery beschäftigt.
Was würdest du mir vom Aufwand empfehlene erst auszuprobieren? VBA oder Makros?
Ok, aber es muss ja einen Unterschied geben, da er mir 2 Varianten vorgeschlagen hat.
Ich weiß zwar wie ich Makros aufzeichne aber nicht mit welchen Funktionen ich die beschriebenen Schritte ausführe. Zum Beispiel den abgleich ob es die Zeile irgendwo in umgekehrter Reihenfolge gibt.
Den VBA Modus habe ich auch schon geöffnet aber auch dort weiß ich nicht wo ich den Code einfüge bzw. welche Anpassungen ich vornehmen muss.
Hallo Mahadmakandis, mein Vorschlag ist ein Weg, am Anfang die Beschreibung, dann der Code. Anzuwenden wäre er wie folgt: - neue leere Datei erzeugen, Alt+F11 drücken, im sich dann öffnenden VBA-Editor den Code in 'Diese Arbeitsmappe' einfügen, Datei speichern. - andere Datei mit den Daten öffnen, zu bearbeitendes Blatt anwählen, Makro DupKill starten, Ergebnis prüfen. Da ich nicht weiß, mit welchem Excel Du arbeitest, musst Du den Weg zum Makro starten selbst finden.
Einfacher mit dem Start wird es, wenn Du ein beliebiges Makro aufzeichnest und dabei eine Tastenkombination Ctrl+wasauchimmer vergibst. Nach Beenden der Aufzeichnung eben aufgezeichneten Code durch den Inhalt von DupKill ersetzen. Damit Du das nicht alles selber machen musst: Im Anhang ist die Datei DupKill.xlsm, das Makro ist mit Strg+q zu starten. Jetzt also: DupKill.xlsm öffnen, andere Datei öffnen, zu bearbeitendes Blatt anwählen, Strg+q drücken, Ergebnis angucken. Gruß der AlteDresdner
14.06.2016, 18:32 (Dieser Beitrag wurde zuletzt bearbeitet: 14.06.2016, 18:32 von Mahadmakandis.)
Hallo AlterDresdner,
danke für die Anleitung! Das ganze hat in sofern funktioniert, dass aus 834 Daten nun 430 Daten geworden sind.
Ich habe es Stichprobenartig für 2 mir vorher bekannten Duplikate überprüft: Sie sind weg!
Die Duplikate die ich behalten wollte sind auch weiterhin da.
Es gibt allerdings ein Problem. Dafür muss ich kurz erklären wie die Duplikate entstanden sind. Es wurde geschaut wieviele Erfinder an einem Patent gearbeitet haben. 01_inventors
Nach dieser Logik, müsste jede Beziehung somit ein Duplikat besitzen richtig? Daher sollte sich der Datensatz von 834 Zeilen auf 417 verringern... es sind aber 430. Hast du eine Idee woran das liegen könnte?
Hallo Mahadmakandis, so sehe ich das nicht. Wenn Du mir mal die genannte Datei schickst (bereinigt oder nicht), würde ich mal schauen, wo evtl. etwas fehlt (schatte.jm(at)web(dot)de. Gruß der AlteDresdner
(15.06.2016, 18:44)AlterDresdner schrieb: Hallo Mahadmakandis, so sehe ich das nicht. Wenn Du mir mal die genannte Datei schickst (bereinigt oder nicht), würde ich mal schauen, wo evtl. etwas fehlt (schatte.jm(at)web(dot)de. Gruß der AlteDresdner
Ich kann aktuell die Daten noch nicht schicken, da ich noch auf eine Antwort bezüglich der Weitergabe warte.
Wo ist der Fehler rein an der Logik? Die Formel, aus denen die Interaktionen entstanden sind befindet sich außerdem nicht in der Datei, die waren bereits gegeben. Mir wurde nur erklärt, wie sie entstanden sind.