Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1408to1412
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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige