377 Aufrufe
Gefragt in Tabellenkalkulation von Mitglied (335 Punkte)
Hallo liebe Excel-Freunde,

ich habe ein Problem, bei dem mir die Text in Spalten Funktion nicht weiter zu helfen scheint. Und zwar habe ich eine Spalte, bei der die Marke und das Model in einer Spalte sind. Z. B.:

Mercedes Benz E-Klasse
BMW X5
Audi Q7
Mercedes Benz S-Klasse
BMW 3er

Das Problem ist Mercedes Benz, da durch das Leerzeichen die Funktion Text in Spalten Mercedes in einer Spalte steht und Benz in der Anderen (E-Klasse sowieso wie gewollt in einer separaten Spalte. Rauskommen soll aber natürlich Mercedes Benz und E-Klasse in 2 Spalten.

Ich habe mir gedacht, das wenn ich eine separate Tabelle mit Tabellennamen anlege, auf die sich die Funktionen Teil und Lange beziehen könnten, das Problem lösen könnte. Aber vielleicht habt Ihr ja eine ganz andere Idee?

Es ware wirklich toll, wenn Ihr mir helfen könntet.

Vielen Dank und noch ein Schönes Wochenende.

Gruss

Peter

6 Antworten

0 Punkte
Beantwortet von
Hallo Peter ^^

Mit den Formeln geht das auch,nach selber forgehendsweise!
Mit Formeln habe ich nichts am Hut,daher erstmal eine Benutzerdefinierte Funktion!

Einzufügen
Alt + F11/Projectexplorer/Allgemeines Modul

Function Trennen(Zelle As Range, Schalter As Boolean) As String
If Schalter = False Then
Trennen = Mid(Zelle, InStrRev(Zelle, " "), Len(Zelle))
Else
Trennen = Mid(Zelle, 1, InStrRev(Zelle, " "))
End If
End Function


Syntax
Stringende bis zum ersten Leerzeichen
=Trennen(A1;0)

Stringanfang bis zum ersten Leerzeichen von rechts
=Trennen(A1;1)
0 Punkte
Beantwortet von
Hallo Peter ^^

Oder mit einem Makro in einem Rutsch alle Trenn,das geht auch!
Dann werden Quellspallte wie Zielspaltenangaben gebraucht!

Gruss Nighty
0 Punkte
Beantwortet von
Hallo Peter ^^

Ein Beispiel!

Gruss Nighty

Sub AlleTrennen()
Dim Zellen As Long
'Quelle ActiveSheet
'Ziel Worksheets("Tabelle2") Spalte B+C
'Die 1 steht für Quelle/Spalte A
For Zellen = 2 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'Die 2 und 3 stehen für Worksheets("Tabelle2") Spalte B+C
Worksheets("Tabelle2").Cells(Zellen, 2) = Trennen(ActiveSheet.Cells(Zellen, 1), 1)
Worksheets("Tabelle2").Cells(Zellen, 3) = Trennen(ActiveSheet.Cells(Zellen, 1), 0)
Next Zellen
End Sub

Function Trennen(Zelle As Range, Schalter As Boolean) As String
If Schalter = False Then
Trennen = Mid(Zelle, InStrRev(Zelle, " "), Len(Zelle))
Else
Trennen = Mid(Zelle, 1, InStrRev(Zelle, " "))
End If
End Function
0 Punkte
Beantwortet von
gibt es dafür nicht den haken "aufeinanderfolgende trennzeichen" (oder so ähnlich, habe
gerade kein excel zur hand) beim text in spalten assistent?
0 Punkte
Beantwortet von
ja, aber hier gibt es ja keine aufeinanderfolgenden Trennzeichen
das wäre der Fall wenn zum Beispiel zwischen BMW und X5, 2 oder mehr Leerzeichen wären
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Peter,

versuch mal folgende Formel für die Marke:
=LINKS(A1;FINDEN("#";WECHSELN(A1;" ";"#";LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";"")))))
und folgende Formel für das Model:
=RECHTS(A1;LÄNGE(A1)-FINDEN("#";WECHSELN(A1;" ";"#";LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";"")))))

Dabei steht in A1 der Text, der getrennt werden soll. Ich gehe mal davon aus, dass die Modelbezeichnung keine Leerzeichen enthält.
Die Formel zum "Rückwärts-Finden" habe ich hier gefunden.

Gruß

M.O.
...