16.12.2020, 23:53
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.
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).