Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Begriff gegen anderen austauschen

Forumthread: Begriff gegen anderen austauschen

Begriff gegen anderen austauschen
15.02.2015 11:19:50
bernie

Hallo Profis,
ich hatte mich zwar mit dem gleichen Thema schon mal an euch gewendet - aber bisher komme ich auf keinen grünen Zweig.
In einem Sheet "Eint" habe ich Ortsnamen, welche sich im Text verbergen.
Im Sheet "Ort" habe ich eine Aufstellung aller Orte (Spalte A). In Spalte B (Sheet "Ort") befinden sich die Ortsnamen, versehen mit einem Komma.
Ich möchte nun, dass die Ortsnamen in Sheet "Eintr" mit einem Komma versehen werden.
Mit der Formel '=WECHSELN(A1;INDEX(ORT!$A:$B;;1);INDEX(ORT!$A:$B;;2))'
wird blöderweise nur die erste Zeile verändert. Damit es verständlicher wird habe ich eine Beispieldatei angehängt - in Spalte B Sheet "Eintr" mein misslungener Versuch an dem ich mir die Zähne ausbeiße.....
Kann mir da jemand auf die Sprünge helfen?
https://www.herber.de/bbs/user/95775.xls
Bernie

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Begriff gegen anderen austauschen
15.02.2015 13:32:05
Daniel
Hi
Normal.
die Wechseln-Funktion erwartet als 2. und 3. Parameter immer einen Textwert.
Wenn du so wie hier einen grösseren Zellbereich (dh die ganze Spalte) angibst, wird der Inhalt der erste Zelle verwendet, weil die Formel mit dem Zellbereich nichts anfangen kann, sondern nur mit dem einzelnen Text.
Eine Schleifenbildung analog einer Matrixformel (ich vermute mal dass du sowas vorhattest) ist bei Texten mit Excelformeln nicht möglich.
wenn du das Problem mit Excelformeln lösen willst, dann so wie von mir im alten Beitrag beschrieben (das scheint ja funtkioniert zu haben), oder du musst mit VBA eine neue Funktion schreiben.
dazu folgenden Code in ein allgemeines Modul schreiben und die Funktion WechselnMulti verwenden.
Function WechselnMulti(txt As String, WerteAlt As Range, WerteNeu As Range) As String
Dim arr1
Dim arr2
Dim i As Long
arr1 = Intersect(WerteAlt, WerteAlt.Worksheet.UsedRange).Value
arr2 = Intersect(WerteNeu, WerteNeu.Worksheet.UsedRange).Value
WechselnMulti = txt
For i = 1 To Worksheefunction.Min(UBound(arr1, 1), UBound(arr2, 1))
WechselnMulti = WorksheetFunction.Replace(WechselnMulti, arr1(i, 1), arr2(i, 1))
Next
End Function
Gruß Daniel

Anzeige
AW: Begriff gegen anderen austauschen
17.02.2015 08:15:46
bernie
Hall Daniel
nachdem ich an Deiner Funktion etwas rumgebastelt hatte
Function wechselnmulti(txt As String, WerteAlt As Range, WerteNeu As Range) As String
Dim arr1 As Variant
Dim arr2 As Variant
Dim i As Long
arr1 = Intersect(WerteAlt, WerteAlt.Worksheet.UsedRange).Value
arr2 = Intersect(WerteNeu, WerteNeu.Worksheet.UsedRange).Value
wechselnmulti = txt
For i = 1 To WorksheetFunction.Min(UBound(arr1, 1), UBound(arr2, 1))
wechselnmulti = Replace(wechselnmulti, arr1(i, 1), arr2(i, 1))
Next
End Function

gings perfekt.
Besten Dank für Deine Unterstützung
Bernie

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige