Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1836to1840
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

Werte aus Text isolieren?

Werte aus Text isolieren?
25.06.2021 16:20:51
Andreas
Hi zusammen,
bin auf der Suche nach Formeln, um verschiedene Masse aus Texten zu isolieren.
Genauere Beschreibung in meiner Datei.
https://www.herber.de/bbs/user/146801.xlsx
Vielen Dank vorab für eure Hilfe und ein schönes Wochenende!
Gruß Andreas

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte aus Text isolieren?
25.06.2021 16:34:22
UweD
Hallo
Teil1

H13:  =WENN(ISTZAHL(FINDEN(" /";B13));LINKS(B13;FINDEN(" /";B13)-1);LINKS(B13;FINDEN(" x";B13)-1))
muss jetzt weg
LG UweD
AW: Werte aus Text isolieren?
25.06.2021 17:14:34
Günther
Moin,
mit deiner Version geht das sehr gut mit der Power Query-Funktionalität (über Daten | Abrufen und transformieren)!
 
Gruß
Günther  |  mein Excel-Blog
AW: als komplette Formellösung ...
25.06.2021 17:42:12
neopa
Hallo Andreas,
... z.B. so:
in H13: =WENNFEHLER(LINKS(B13;FINDEN(" ";B13))+0;"")
in I13: =WENNFEHLER(LINKS(GLÄTTEN(TEIL(B13;FINDEN("/";B13)+1;99));FINDEN(" ";GLÄTTEN(TEIL(B13;FINDEN("/";B13)+1;99))));"")
in J13 =WENNFEHLER(LINKS(GLÄTTEN(TEIL(B13;FINDEN("x";B13)+1;99));FINDEN(" ";GLÄTTEN(TEIL(B13;FINDEN("x";B13)+1;99))));"")
in K13: =WENNFEHLER(LINKS(GLÄTTEN(TEIL(B13;FINDEN("x";WECHSELN(B13;"x";"-";1))+1;99));FINDEN(" "; GLÄTTEN(TEIL(B13;FINDEN("x";WECHSELN(B13;"x";"-";1))+1;99))));"")
und alle nach unten kopieren.
Gruß Werner
.. , - ...
Anzeige
AW: Werte aus Text isolieren?
25.06.2021 18:13:41
Yal
Hallo Andreas,
Power Query wäre tatsächlich eine gute Lösung, aber einfach?
In VBA gibe es die nutzliche "Split" Funktion, die es als Excel-Formel nicht gibt, ausser in 365 als Lambda: siehe http://www.excel-ticker.de/text-split/
Es trennt einen Text nach dem gegebenen "Trenner" ("x" oder "/") in einem Array, wovon man die einzelne Element rausholen kann.
Aber es lässt sich leicht als UDF (User Defined Function) nachbilden: ein kurzes VBA-Code, dass man wie ein Excel-Formel einsetzen kann:

Public Function Splitter(Target, Trenner As String, Optional Index = 1)
Splitter = Trim(Split(Target, Trenner)(Index - 1))
End Function
_ Visual Basic Editor öffnen (Alt+F11)
_ Modul einfügen (Alt+e, m)
_ Code in dem Modul-Fenster copy-pasten
Dann in der Tabelle:

_ Zelle H13: =WENN(ISTFEHLER(splitter($B13;"/";2));splitter($B13;"x");splitter($B13;"/"))
_ Zelle I13: =WENN(ISTFEHLER(splitter($B13;"/";2));"";splitter(splitter($B13;"/";2);"x"))
_ Zelle J13: =splitter($B13;"x";2)
_ Zelle K13: =splitter(splitter($B13;"x";3); " ")
zum Testen einfach probieren
=splitter("a / b x c x d"; "x"; 1)
=splitter("a / b x c x d"; "x"; 2)
=splitter("a / b x c x d"; "x"; 3)
Na ja: auch nicht einfach.
VG
Yal
Anzeige
AW: Werte aus Text isolieren?
25.06.2021 20:28:12
Günther
Also Yal,
ich schreibe auch VBA. Aber ich finde es auch sehr gut, dass immer mehr Verantwortliche der IT-Leitung den Einsatz von VBA -insbesondere wenn der Code aus einer fremden Quelle kommt- untersagen. Und wenn ich bedenke, dass sehr viele Lösungen bei Einsatz von PQ ohne eine einzige (selbst erstellte) Formel bzw. Code erreichbar sind, dann zeigt dieses die Stärken des Tools auf.
Und da ich seit Anfang der 80er Jahre absoluter Autodidakt in Sachen EDV/IT bin kann ich dir versichern, dass das Erlernen von PQ deutlich leichter ist als die komplexe Logik einer Programmiersprache (VBA) zu beherrschen. Ich bin vielleicht durch jahrelange Tätigkeit als Trainer etwas "versaut", dass ich vom Gegenüber erwarte, sich selbst und seine Fähigkeiten maximal einzubringen. Fertiglösungen wären für meine Kunden vielleicht sogar billiger gewesen (zumindest zu Beginn), aber nach einem Seminar konnten die meisten Teilnehmer diverse Probleme selbstständig lösen, auch wenn die Datenlage eine ganz andere war.
 
Gruß
Günther  |  mein Excel-Blog
Anzeige
Und über M kann man keinen Schaden anrichten? orT
26.06.2021 02:57:47
Luc:-?
Morhn, Luc :-?
AW: Und über M kann man keinen Schaden anrichten? orT
26.06.2021 12:47:39
Günther
… über zig Umwege schon. Aber DEUTLICH weniger Möglichkeiten als mit VBA.
 
Gruß
Günther  |  mein Excel-Blog
Split-UDFs diverser Qualitäten ...
26.06.2021 03:04:51
Luc:-?
…gibt's dutzendweise im Archiv, Yal;
habe selber ca 1/2 Dtzd geschrieben. Und eine Art Λ-Ersatz kann man auch für VBA-Objekt-Properties und bestimmte -Methods auf VBA-Basis kreieren.
Morhn, Luc :-?
AW: Split-UDFs diverser Qualitäten ...
28.06.2021 19:40:43
Yal
Hallo Luc,
ja, gebe ich Dir recht.
Aber für einen so einfachen 3-Zeiler mache ich mich nicht die Mühe zu suchen, sondern tippt es schneller komplett neu.
Eigentlich kaum nachvollziehbar, dass es keine native Excel-Formel dafür gibt.
VG
Yal
Anzeige
AW: Split-UDFs diverser Qualitäten ...
28.06.2021 19:53:18
Daniel
Hi
Es gibt eine native Excelfunktion, die das kann: XMLFILTERN
http://www.excel-ticker.de/xmlfiltern-zum-aufteilen-von-text-verwenden/
allerdings muss der zu trennende Text in XML-Tags stehen, dh man muss das Trennzeichen erst durch xml-Tags ersetzen, was die Sache umständlich macht..
Gruß Daniel
Wenn schon UDF...
25.06.2021 18:21:30
Yal
...dann vielleicht etwas ganz gezielt:
in H13: =VonBis(B13;"";"/") 'zwischen Anfang und ersten "/"
in I13: =vonBis(B13;"/";"x") 'zwischen ersten "/" und ersten "x"
in J13: =vonBis(B13;"x";"x";1;2) 'zwischen ersten "x" und zweiten "x"
in K13: =vonBis(B13;"x";"m";2) 'zwischen zwieten "x" und ersten (nicht eingegeben, weil per default) "m"
Basiert auf folgender UDF

Public Function VonBis(Target, Von, Bis, Optional VonIndex = 1, Optional BisIndex = 1)
Dim Start As Integer, Start_Mem
Dim Ende As Integer, Ende_Mem
Dim i
For i = 1 To VonIndex
Start = InStr(Start + 1, Target, Von)
If Start = 0 Then
Start = Start_Mem
Else
Start_Mem = Start
End If
Next
For i = 1 To BisIndex
Ende = InStr(Ende + 1, Target, Bis)
If Ende = 0 Then
Ende = Ende_Mem
Else
Ende_Mem = Ende
End If
Next
VonBis = Mid(Target, Start + 1, Ende - Start - 1)
End Function
(Klugscheisserei am Freitag nachmittag ;-)
VG
Yal
Anzeige
AW: Wenn schon UDF...
28.06.2021 08:33:27
Andreas
Guten Morgen miteinander und besten Dank für die vielen Lösungsvorschläge. Da ist bestimmt was dabei womit ich es hinbekomme : )
Gruß Andreas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige