booster07
Goto Top

Excel: Einzelne Zeilen einer mehrzeiligen Zelle auslesen

Hallo zusammen,

ich habe folgendes Problem und hoffe auf Eure Hilfe.

Vereinfachtes Beispiel: Zelle A1 ist zum mehrzeilig (Zeilenumbrüche mit Alt+Enter) und hat folgenden Inhalt.

Farbe: rot
Größe: 125
Form: rechteckig

Ich möchte die Angaben zu Farbe, Größe und Form am liebsten mittels einer Formel auslesen, sodass zum Beispiel Zelle B1 den Inhalt "rot" hat, Zelle C1 "125" und Zelle D1 "rechteckig".

Die Angaben sollen in Abhängigkeit der Zeichenfolgen "Farbe:", "Größe" und "Form:" oder falls das nicht möglich ist, in Abhängigkeit der Zeilennummer ausgelesen werden.

Es soll nicht, der gesamte Zellinhalt in Spalten aufgeteilt werden.

Ich hoffe es ist einigermaßen verständlich.


Viele Grüße

Content-ID: 326752

Url: https://administrator.de/contentid/326752

Ausgedruckt am: 08.11.2024 um 05:11 Uhr

131381
Lösung 131381 18.01.2017 aktualisiert um 18:24:58 Uhr
Goto Top
Moin.
Du könntest dir zwar solche Frickel-Formeln zusammen schustern wie
=TEIL($A1;SUCHEN("Farbe:";$A1)+LÄNGE("Farbe:")+1;FINDEN(ZEICHEN(10);$A1)-(SUCHEN("Farbe:";$A1)+LÄNGE("Farbe:")+1))  
für B1 usw.

Sinniger wäre es jedoch IMHO z.B. dafür eine kleine Formel-Funktion in ein Modul zu schreiben:
Public Function GetValue(rngCell As Range, strWert As String)
    For Each Line In Split(rngCell.Value, Chr(10), -1)
        arrData = Split(Line, ":", 2, vbTextCompare)  
        If LCase(Trim(arrData(0))) = LCase(strWert) Then
            GetValue = Trim(arrData(1))
            Exit Function
        End If
    Next
End Function
Und dann in Zelle B1,C1,D1 diese Funktion als Formeln zu nutzen
=GetValue(A1;"Farbe")  
=GetValue(A1;"Größe")  
=GetValue(A1;"Form")  
Gruß mik
Booster07
Booster07 19.01.2017 um 08:17:43 Uhr
Goto Top
Moin,

super! Mit der Formel-Funktion im Modul funktioniert es. Du hast Recht. Das ist die bessere Lösung.

Durch die lange Formel wird auch nur in der ersten Zeile der Zelle gesucht.

Vielen Dank!


Grüße Booster
Kraemer
Kraemer 19.01.2017 um 08:35:41 Uhr
Goto Top
Zitat von @131381:

...
> =GetValue(A1;"Farbe")  
> =GetValue(A1;"Größe")  
> =GetValue(A1;"Form")  
> 
Gruß mik
Nice one! Wäre ich so spontan nicht drauf gekommen!

Krämer