[Lambda] SUBSTITUTE.MULTISTRINGS
#1
Einer geht heute noch:

SUBSTITUTE.MULTISTRINGS(TextString;ChangeReplaceArray)

=LAMBDA(txt;chngrplc;
WENN(ZEILEN(chngrplc)=1;txt;SUBSTITUTE.MULTISTRINGS(
WECHSELN(txt;INDEX(chngrplc;1;1);INDEX(chngrplc;1;2));
INDEX(chngrplc;SEQUENZ(ZEILEN(chngrplc)-1;;2);{1.2}))))


Beispielaufruf:
=SUBSTITUTE.MULTISTRINGS("Heute scheint d. Mond";A1:B3)

mit A1:B2: (links Change, rechts Replace)
Heute Morgen
Mond Sonne


Achtung: Aufgrund der Rekursion kann Zeile 3 nicht angesprungen werden, muss aber im Argument als letzte Zeile ohne Bedeutung enthalten sein! Also A1:B3 statt A1:B2.

Funktionsergebnis:
Morgen scheint d. Sonne

Bin gespannt, ob jemand den Schönheitsfehler mit der abschließend nötigen Leerzeile wegbekommt. Ich bin bei Rekursion immer ziemlich begriffstutzig.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top
#2
Ich habe WEXELN und SUBSTITUTE.MULTISTRINGS (beides rekursiv ohne LET) jetzt umbenannt:

SUBSTITUTE.CHARS(Text;Search-Zeichenfolge;Replace-Zeichenfolge)
SUBSTITUTE.STRINGS(Text;2-Spalten-Search-Replace-Array)

Damit sind sie eindeutig Kinder von SUBSTITUTE (also WECHSELN).
___________________________

Problem sind zwischenzeitlich Bezeichnungen wie

RAND.UNIQ und
UNIQUE.PARTIAL,

weil UNIQUE eigentlich ja eine Eigenschaft darstellen sollte. EINDEUTIG() müsste also eher BEREICH.EINDEUTIG() heißen. Und UNIQUE.PARTIAL() dann ARRAY.UNIQUE.PARTIAL().
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste