Registriert seit: 02.04.2020
Version(en): 365
Hi Excel Heros!
Hätte da eine Frage! Ich möchte aus einem String alle Variablen herauslesen, die zwischen % liegen inkl. den % Anzeigen.
Also wenn in der Zelle D3 "Robschi %kennt% sich in %Excel% nicht aus."
Dann soll Ausgegeben werden: %kennt% %Excel%
Mit
=TEIL(D3;SUCHEN("%";D3);SUCHEN("%";D3;SUCHEN("%";D3)+1)-SUCHEN("%";D3)+1)
bekomme ich nur den ersten Teil heraus.
Wie mach ich da weiter?
Danke, L.G. Robschi
Registriert seit: 08.05.2014
Version(en): Office 2010, Office 365, Office 365 Betakanal
Hallo,
wenn Du ein modernes Excel hast, was dynamische Arrays kann und somit die Funktionen EINDEUTIG und SEQUENZ kennt,
kannst Du es wie folgt lösen ...
Code:
A1=Heute ist ein %Variable 1% Tag und %Variable 2% machen %Variable 3%.
B1=1
C1=WENNFEHLER(TEIL($A$1;INDEX(EINDEUTIG(WENNFEHLER(FINDEN("%";$A$1;SEQUENZ(LÄNGE($A$1)));LÄNGE($A$1)));2*B1-1);
INDEX(EINDEUTIG(WENNFEHLER(FINDEN("%";$A$1;SEQUENZ(LÄNGE($A$1)));LÄNGE($A$1)));2*B1)-INDEX(EINDEUTIG(
WENNFEHLER(FINDEN("%";$A$1;SEQUENZ(LÄNGE($A$1)));LÄNGE($A$1)));2*B1-1)+1);"-")
B2=B1+1
C2=WENNFEHLER(TEIL($A$1;INDEX(EINDEUTIG(WENNFEHLER(FINDEN("%";$A$1;SEQUENZ(LÄNGE($A$1)));LÄNGE($A$1)));2*B2-1);
INDEX(EINDEUTIG(WENNFEHLER(FINDEN("%";$A$1;SEQUENZ(LÄNGE($A$1)));LÄNGE($A$1)));2*B2)-INDEX(EINDEUTIG(
WENNFEHLER(FINDEN("%";$A$1;SEQUENZ(LÄNGE($A$1)));LÄNGE($A$1)));2*B2-1)+1);"-")
:
Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awardshttps://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
00202
Nicht registrierter Gast
Hallo, :19:
habe die Formeln von "maninweb" in eine Beispieldatei gepackt. Wenn du da Fehler bekommst, habe ich noch zwei Alternativen drin: :21:
[attachment=30842]
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
04.04.2020, 11:58
(Dieser Beitrag wurde zuletzt bearbeitet: 04.04.2020, 11:58 von RPP63.)
Off topic:
Hallo Mourad!
Zitat:… wenn Du ein modernes Excel hast, was […] SEQUENZ kennt,
Ich habe die Funktion bisher noch nicht benutzt, sehe aber gerade die gewaltigen Möglichkeiten, die auf Basis von Zählvariablen entstehen.
(Fast) jeder kennt ja die Matrixversion zur Ermittlung der Quersumme einer Zahl mit unbekannter Stellenanzahl:
{=SUMME(1*TEIL(A2;ZEILE(INDIREKT("1:"&LÄNGE(A2)));1))}Geht ja nun viel einfacher:
=SUMME(1*TEIL(A2;SEQUENZ(LÄNGE(A2));1)) | A | B | C |
1 | Zahl | Qsneu | Qsalt |
2 | 12345 | 15 | 15 |
3 | 1234 | 10 | 10 |
4 | 123 | 6 | 6 |
Zelle | Formel |
B2 | =SUMME(--TEIL(A2;SEQUENZ(LÄNGE(A2));1)) |
C2 | {=SUMME(1*TEIL(A2;ZEILE(INDIREKT("1:"&LÄNGE(A2)));1))} |
Achtung, Matrixformel enthalten! |
Die geschweiften Klammern{} werden nicht eingegeben. |
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine. |
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 08.05.2014
Version(en): Office 2010, Office 365, Office 365 Betakanal
Off-Topic als Antwort an Ralf.
-------------
---------------------------------------Hallo Ralf,
jep, die neuen Funktionen sind schon cool. Hier eine Möglichkeit/Idee, einen Text nach Trennzeichen aufzuteilen.
Code:
A1=K01234-Z567-A3456-Information
B1=EINDEUTIG(WENNFEHLER(FINDEN("-";"-"&$A$1;SEQUENZ(LÄNGE($A$1)));LÄNGE($A$1)+2))
C1=WENNFEHLER(TEIL($A$1;B1#;INDEX(B1#;2):INDEX(B1#;ZEILEN(B1#))-B1#-1);"")
Noch ist's mir nicht gelungen, das dynamische Ausgabe-Array um eine Zeile zu reduzieren.
Vielleicht hat ja jemand eine Idee dazu.
Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awardshttps://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
04.04.2020, 16:55
(Dieser Beitrag wurde zuletzt bearbeitet: 04.04.2020, 16:55 von LCohen.)
=WECHSELN("%"&TEXTVERKETTEN("% %";;WENN(ISTFEHLER(SUCHEN("#";
GLÄTTEN(TEIL(WECHSELN(WECHSELN($A1;" ";"#");"%";WIEDERHOLEN(" ";299));SPALTE(A1:Z1)*299-298;299))));
GLÄTTEN(TEIL(WECHSELN(WECHSELN($A1;" ";"#");"%";WIEDERHOLEN(" ";299));SPALTE(A1:Z1)*299-298;299));""))&"%";"%%";)
Registriert seit: 02.04.2020
Version(en): 365
04.04.2020, 22:24
(Dieser Beitrag wurde zuletzt bearbeitet: 04.04.2020, 22:24 von Robschi Nachbar.)
Hi,
Wenn bei deiner Formel ein zeichen hinter dem %Zeichen steht, dann wird dieses auch angezeigt:
Lunch today @13:00h %name%? --> %name% %?%
wie bekomme ich das noch weg?
DANKE
Robschi
Registriert seit: 02.04.2020
Version(en): 365
Danke.
Die Lösung: =WENNFEHLER(TEIL($A$1;INDEX(EINDEUTIG(WENNFEHLER(FINDEN("%";$A$1;SEQUENZ(LÄNGE($A$1)));LÄNGE($A$1)));2*B1-1);
INDEX(EINDEUTIG(WENNFEHLER(FINDEN("%";$A$1;SEQUENZ(LÄNGE($A$1)));LÄNGE($A$1)));2*B1)-INDEX(EINDEUTIG(
WENNFEHLER(FINDEN("%";$A$1;SEQUENZ(LÄNGE($A$1)));LÄNGE($A$1)));2*B1-1)+1);"-")
ist genial für meine Anwendung!
Eine Frage noch dazu: ich bräuchte wirklich nur die Ausgaben die ohne Leerzeichen zwischen % stehen.
Wenn im text beispielweise
To get 20% off your next oil change; send %code% to %name%.
steht, dann sollte
bei B1= 1 %code% und bei B1=2 %name%
ausgegeben werden.
Kannst du mir da auch noch helfen.
Liebe Grüße
Robschi
Registriert seit: 08.05.2014
Version(en): Office 2010, Office 365, Office 365 Betakanal
Hallo,
das ist komplizierter, weshalb ich da eher eine Hilfsspalte verwenden würde. Nur rudimentär getestet ...
Code:
A1=To get 20% off your next oil change; send %code% to %name%.
B1=WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(
WECHSELN($A$1;".";" ");",";" ");";";" ");"-";" ");"<";" ");">";" ");"%%";"% %");" %";"<");"% ";">")
C1=1
D1=WENNFEHLER(INDEX(WECHSELN(LINKS(TEIL($B$1;EINDEUTIG(WENNFEHLER(SUCHEN("<"&"*"&">";$B$1;
SEQUENZ(LÄNGE($B$1)));LÄNGE($B$1)));99);FINDEN(">";TEIL($B$1;EINDEUTIG(WENNFEHLER(
SUCHEN("<"&"*"&">";$B$1;SEQUENZ(LÄNGE($B$1)));LÄNGE($B$1)));99))-1);"<";"%")&"%";C1;1);"-")
C2=C1+1
D2=D1 AutoAusfüllen
Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awardshttps://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Registriert seit: 02.04.2020
Version(en): 365
DANKE Nochmal! Ich habs jetzt mit der VBA Funktion gelöst,... das ist am effizientesten!