Anzeige
Archiv - Navigation
1152to1156
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

Texte zerlegen

Texte zerlegen
maik.f
Hallo,
ich habe folgendes Problem:
In Zelle A1 kann "72 % PVC, 18% BW, 10% PE" stehen. Der Text soll dann so zerlegt werden, dass in Zelle B1 "PVC", in C1 "BW" und in D1 "PE" steht. Der Text aus A1 wird über die SVERWEIS-Funktion aus anderen Spalten geholt.
Das stellt ja eigentlich kein Problem dar. Aber wenn in A1 "100 BW" steht, soll in B1 "BW stehen und C1 und D1 sollen leer bleiben.
Oder wenn in A1 "80 % BW, 20 % PE" steht soll in B1 "BW" und in C1 "PE" stehen und C1 bleibt leer.
Und genau da verhaspel ich mich in den ganzen Fehlermmeldungen. Kann mir da jemand weiterhelfen? Vielen Dank im Voraus...

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Texte zerlegen
30.04.2010 13:25:05
Rudi
Hallo,
vergib einen Namen (strg+F3)
Name: x
Bezug: =AUSWERTEN("{""" &WECHSELN(INDIREKT("ZS1";0);",";""";""") &"""}")
B1: =WENN(SPALTE(A1)>ANZAHL2(x);"";TEIL(INDEX(x;SPALTE(A1));FINDEN("%";INDEX(x;SPALTE(A1)))+2;99))
und nach rechts kopieren.
Gruß
Rudi
AW: Texte zerlegen
30.04.2010 19:26:48
Maik.F
Hallo Rudi,
das funzt schonmal super!
Im zweiten Schritt müßte jetzt noch folgendes passieren (In A1 steht ja noch "72 % PVC, 18% BW, 10% PE"):
In B2 soll "72 %", in C2 "18 %" und in D2 "10 %" stehen. Bitte hilf mir auch da nochmal! Vielen Dank!!!
dann nimmst du eben Links orT
30.04.2010 21:13:51
Rudi
Hallo,
bei Excelgut solltest du das schaffen
Gruß
Rudi
Anzeige
AW: dann nimmst du eben Links orT
01.05.2010 10:54:46
Maik.F
Hallo Rudi,
für B2 funktioniert es natürlich mit =LINKS(A1;FINDEN("%";A1)).
Aber für C2 und D2 funktioniert es schon nicht mehr so einfach. Sorry, aber bei diesem Problem sehe ich inzwischen den Wald vor lauter Bäumen nicht mehr. Da es vorkommen kann, dass zwischen "10" und "%" ein Leerzeichen steht oder auch nicht, habe ich Deine Formel etwas variiert. Die Ergebnisse waren umso verwirrender...
Daher wäre es schön, wenn Du mich zur richtigen Lösung "schubsen" könntest.
Gruß, Maik
VBA Variante
01.05.2010 12:12:59
Tino
Hallo,
hier eine VBA Variante
Im VBA kommt in ein Modul dieser Code
Function SplitText(rngZelle As Range, FindText$, TextSplit$) As String
Dim MeAr, varIndex As Variant

MeAr = Split(rngZelle.Value, TextSplit)

If Ubound(MeAr) > 0 Then
    varIndex = Application.Match("*" & FindText & "*", MeAr, 0)
    If IsNumeric(varIndex) Then SplitText = Trim$(MeAr(varIndex - 1))
Else
    If InStr(rngZelle.Value, FindText) > 0 Then SplitText = Trim$(rngZelle.Value)
End If

End Function
In der Tabelle kannst Du nun diese Formel anwenden.
 ABCD
1WertePVCBWPE
272 % PVC, 18% BW, 10% PE72 % PVC18% BW10% PE
372 % PVC72 % PVC  
418% BW 18% BW 
510% PE  10% PE
618% BW, 10% PE 18% BW10% PE

Formeln der Tabelle
ZelleFormel
B2=SplitText($A2;B$1;", ")
C2=SplitText($A2;C$1;", ")
D2=SplitText($A2;D$1;", ")
B3=SplitText($A3;B$1;", ")
C3=SplitText($A3;C$1;", ")
D3=SplitText($A3;D$1;", ")
B4=SplitText($A4;B$1;", ")
C4=SplitText($A4;C$1;", ")
D4=SplitText($A4;D$1;", ")
B5=SplitText($A5;B$1;", ")
C5=SplitText($A5;C$1;", ")
D5=SplitText($A5;D$1;", ")
B6=SplitText($A6;B$1;", ")
C6=SplitText($A6;C$1;", ")
D6=SplitText($A6;D$1;", ")

Gruß Tino
Anzeige
Problem erledigt! Vielen Dank!
01.05.2010 18:24:09
Maik.F
Hallo Tino,
da in B2 nur "10 %" stehen soll habe ich die Formel wie folgt umgebogen:
=LINKS(SplitText($A1;B$1;", ");FINDEN("%";SplitText($A1;B$1;", ")))
Diese Formel habe ich noch nach C2 und D2 kopiert und damit ist mein Problem gelöst.
Vielen Dank an euch beide für die Hilfe!
Gruß, Maik
oder Funktion erweitern
01.05.2010 18:46:52
Tino
Hallo,
Du kannst die Funktion auch gleich erweitern.
Function SplitText(rngZelle As Range, FindText$, TextSplit$) As String
Dim MeAr, varIndex As Variant
MeAr = Split(rngZelle.Value, TextSplit)
If UBound(MeAr) > 0 Then
varIndex = Application.Match("*" & FindText & "*", MeAr, 0)
If IsNumeric(varIndex) Then SplitText = Trim$(MeAr(varIndex - 1))
Else
If InStr(rngZelle.Value, FindText) > 0 Then SplitText = Trim$(rngZelle.Value)
End If
SplitText = Trim$(Replace(SplitText, FindText, ""))
End Function
Gruß Tino
Anzeige
Sicherheitsabfrage?
03.05.2010 10:14:54
maik.f
Hallo Tino,
die Funktion läuft einwandfrei.
Allerdings tritt jetzt beim Starten von Excel jedesmal eine Abfrage auf:
"Diese Arbeitsmappe enthält eine oder mehrere Microsoft Excel 4.0 Makros. Diese Makros könnten Viren oder anderen beschädigenden Code enthalten. ..."
Kann man diese Meldung irgendwie vermeiden? Wenn z.B. meine Frau die Datei öffnet bekommt sie gleich Panik...
Gruß, Maik

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige