Microsoft Excel

Herbers Excel/VBA-Archiv

Text verketten | Herbers Excel-Forum


Betrifft: Text verketten von: Timo
Geschrieben am: 03.02.2010 20:20:57

Hallo zusammen,

ich habe einen Text aus einer index vergleich Abfrage verkettet. Nun möchte ich die doppelten Textbausteine aus diesen Text entfernen. Gibt es dazu eine Möglichkeit?

Danke

  

Betrifft: wie sieht der Text aus? owT von: Uduuh
Geschrieben am: 03.02.2010 20:35:14




  

Betrifft: AW: wie sieht der Text aus? owT von: Timo
Geschrieben am: 03.02.2010 20:40:58

hallo Uduuh,

der verkettete Text sieht in der Zelle z.B. so aus: Banane, Ananas, Milch, Vollei, Milch ...


  

Betrifft: und wie die Index-Vergleich-Formel? owT von: Uduuh
Geschrieben am: 03.02.2010 20:49:51




  

Betrifft: AW: und wie die Index-Vergleich-Formel? owT von: Timo
Geschrieben am: 03.02.2010 20:51:27

=INDEX(Tabelle2!B$1:B$5;VERGLEICH($A$3;Tabelle2!$A$1:$A$5;0))


  

Betrifft: AW: und wie die Index-Vergleich-Formel? owT von: Timo
Geschrieben am: 03.02.2010 20:56:24

https://www.herber.de/bbs/user/67741.xlsx


  

Betrifft: das ist ja .... von: Uduuh
Geschrieben am: 03.02.2010 21:09:27

Hallo,
letztlich ein SVERWEIS. Die Verkettung kommt also nicht durch die Formel zu Stande.
da fällt mir nur ne UDF ein.
In ein Modul:

Function ohneDup(sText As String)
  Dim oText As Object, sTmp, arrTmp
  Set oText = CreateObject("scripting.dictionary")
  arrTmp = Split(Replace(sText, " ", ""), ",")
  For Each sTmp In arrTmp
    If Not oText.exists(sTmp) Then oText.Add sTmp, sTmp
  Next
  ohneDup = Join(oText.keys, ", ")
End Function

In der Tabelle:
=ohneDup(INDEX(Tabelle2!B$1:B$5;VERGLEICH($A$3;Tabelle2!$A$1:$A$5;0)))

Gruß aus’m Pott
Udo



  

Betrifft: Nee, genau genommen ein Hilfsspaltenkonstrukt... von: Luc:-?
Geschrieben am: 04.02.2010 14:26:25

...für beides, Udo... ;-)
Für so etwas verwende ich auch eine udFkt, weil das einfacher ist. Möglicherweise würde sich WF daran die „Formelzähne“ ausbeißen, zumindest dürfte die Fml ziemlich lang wdn... ;-)
Man könnte dabei so vorgehen, Timo:
→ alle für die Verkettung relevanten Zellinhalte (INDEX...) nach dem Aufzählungstrennzeichen (hier ", ") splitten (das kann man wohl auch mit Fml — ggf über Iteration)
→ dann die einzelnen, so erhaltenen Elemente mit dem vgl, was schon im Verkettungsergebnis steht.
→ was übrigbleibt mit dem bereits Vorhandenen verketten.
Wenn man mit mehreren Hilfszellen arbeitet, dürfte sich das auch einfacher darstellen...
Die eleganteste Lösung bleibt aber eine udFkt, die eine Option hat, das (ggf auch noch anderes) aus der Verkettung auszuschließen.

Deshalb enthält meine udF hier noch ein Argument, um so etwas festzulegen, Udo... ;-)
Gruß Luc :-?