Microsoft Excel

Herbers Excel/VBA-Archiv

Doppelte Wörter in einer Zelle löschen


Betrifft: Doppelte Wörter in einer Zelle löschen von: Marcel
Geschrieben am: 19.06.2017 15:51:09

Hallo zusammen,

ich habe eine Spalte ca. 5000 Zellen mit jeweils vielen Begriffen. Alle Begriffe sind mit einem Leerzeichen getrennt. Dabei kann es vorkommen, dass in einer Zelle manche Begriffe doppelt vorkommen.

Die Frage ist nun, ob es eine Möglichkeit gibt Zellen in einem gewissen Bereich nach doppelten Wörtern zu durchsuchen und diese dann automatisch zu löschen?

Beispiel:
Zelle1: haus tisch haus -- haus tisch
Zelle2: haus haus tisch -- haus tisch
Zelle3: tisch frau tisch -- tisch frau
Zelle4: tür dame tür -- tür dame

Danke und Grüße
Marcel

  

Betrifft: AW: Doppelte Wörter in einer Zelle löschen von: {Boris}
Geschrieben am: 19.06.2017 16:25:01

Hi Marcel,

teste mal (vorher die fraglichen Zellen selektieren):

Option Explicit
Sub DoppelteWeg()
Dim objDict As Object
Dim C As Range
Dim arr() As String
Dim i As Long

Const STR_TRENNER As String = " "
For Each C In Selection
    arr = Split(C.Value, STR_TRENNER)
    Set objDict = CreateObject("Scripting.Dictionary")
    For i = 0 To UBound(arr)
        objDict(Trim(arr(i))) = 0
    Next
    C.Value = Join(objDict.Keys, STR_TRENNER)
Next
End Sub
VG, Boris


  

Betrifft: AW: Doppelte Wörter in einer Zelle löschen von: onur
Geschrieben am: 19.06.2017 16:31:31

So zum Beispiel:

https://www.herber.de/bbs/user/114360.xlsm


  

Betrifft: AW: Doppelte Wörter in einer Zelle löschen von: Daniel
Geschrieben am: 19.06.2017 16:58:56

Hi

da VBA-nein hier eine Lösung ohne VBA.

1. die Werte sollten in Tabelle1 Spalte A stehen, die Spalten daneben müssen frei sein (ggf in eine neue Tabelle kopieren)

2. Teile die Werte aus Spalte A mit der Funktion DATEN - DATENTOOLS - TEXT IN SPALTEN und dem Leerzeichen als Trennzeichen in mehrere Spalten auf

3. füge in einem zweiten Tabellenblatt in die Zelle A1 diese Formel ein:

=GLÄTTEN(Tabelle1!A1&" "&WECHSELN(" "&B1&" ";" "&Tabelle1!A1&" ";" "))

ziehe diese Formel soweit nach rechts und nach unten wie benötigt.

in Spalte A der zweiten Tabelle steht das gewünschte Ergebnis.

Gruß Daniel


  

Betrifft: AW: RegEx von: Fennek
Geschrieben am: 19.06.2017 17:02:55

Hallo,

eine weitere Möglichkeit mit RegEx verspricht diese Seite:

http://www.regular-expressions.info/duplicatelines.html

mfg


  

Betrifft: Mit VBA-basierten UDFs äußerst simpel, ... von: Luc:-?
Geschrieben am: 20.06.2017 02:19:42

…Marcel,
falls du so etwas anzuwenden verstehst und auch anwenden darfst, nämlich so: =VJoin(VSplit(A16);;-1)
Die beiden UDFs sind in folgd BspDatei zu finden: https://www.herber.de/bbs/user/99024.xlsm
Feedback nicht unerwünscht! Morrn, Luc :-?

Besser informiert mit …


  

Betrifft: Danke allen - Lösung(en) gefunden! von: Marcel
Geschrieben am: 20.06.2017 08:26:14

Hallo zusammen,

danke für die vielen Antworten!

@Boris: funktioniert super - danke!
@onur: auch Deine Lösung klappt prima - danke!
@Daniel: Funktioniert sicher auch aber mit den Lösungen von Boris und onur (VBA in ein Modul kopieren bekomme ich hin) komme ich schneller ans Ziel. Trotzdem danke, auch für die Aufmerksamkeit! ;)
@Fennek: Danke, aber Lösungen von Boris und onur funktionieren.
@Luc: Danke auch Dir für die Mühe aber ich muss ehrlich sagen, dass ich die Datei nicht wirklich verstanden habe. :/

Viele Grüße
Marcel


  

Betrifft: Aus der BspDatei häätest du die beiden UDFs ... von: Luc:-?
Geschrieben am: 20.06.2017 19:33:23

…mit diesen Namen herauskopieren sollen, Marcel!
Luc :-?


Beiträge aus den Excel-Beispielen zum Thema "Doppelte Wörter in einer Zelle löschen"