Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zelleninhalt aufteilen
#1
Hallo liebes Forum,

ich habe ein Problem, das für mich unlösbar scheint.

Ich habe einen Inhalt in einer Zelle der sozum Beispiel so aussieht (1+2+3+12+18+99). Dabei ist die Anzahl der Zahlen stets Variabel. Ich muss nun den Inhalt aufteilen in einzelne Spalten. Normalerweise würde dies mit Daten-> Text zu Spalten funktionieren. Jedoch stammt der Inhalt der Zelle aus einem anderem Datenblatt, demnach funtkioniert das nicht. Ich möchte das auch lieber mit Formeln lösen, da dieses Prozedere zum aufteilen sehr oft in unterscheidlichen Spalten geschehen soll.

Das einzige was ich aktuell hinbekomme ist die erste Zahl aufzuteilen mit (=WENNFEHLER(LINKS(B4;FINDEN("+";B4)-1);B4)). Die Formel WENNFEHLER wird verwendet, da es möglich ist dass auch nur eine Zahl in der Zelle steht.
Aktuell habe ich die Grenze an Zahlen auf maximal 20 geschätzt. Also ( 1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20).

Ich hoffe hier hat jemand einen brillianten Einfall.


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#2
Hallo,

versuche es mal hiermit:


Code:
=LINKS(GLÄTTEN(TEIL(WECHSELN($B6;"+";WIEDERHOLEN(" ";599));SPALTE(A:Z)*599-598;599));6)
[-] Folgende(r) 1 Nutzer sagt Danke an rate mit für diesen Beitrag:
  • Calvados
Antworten Top
#3
B1:U1: =GLÄTTEN(TEIL(WECHSELN(A1;"+";WIEDERHOLEN(" ";199));SPALTE(A:T)*199-198;199)) als {} abschließen (Formelarray)
Antworten Top
#4
@rate

vielen dank. der code funktioniert. ich versteh den nur leider nicht ganz, könntest du mir das vielleicht etwas erklären?

kurze frage hätte ich noch, ich habe letztens etwas von matrix berechnung gelesen und ich glaub das ist das was @LCOhen mit den geschweiften klammern meinte, das würde doch eigentlich bedeuteten dass man nur die formel in der einen zelle schreiben muss und dann der rest automatisch ausgefüllt wird oder nicht?. das funktioniert nämlich nicht. ich muss die formeln in die adneren zellen kopieren.
Antworten Top
#5
Nein, du markierst B1:U1 als Ganzes, trägst dann meine Formel in eine Zelle der Markierung ein, und dann schließst Du sie mit CSE ab. Dadurch entsteht keine Arrayformel, sondern ein Formelarray.

Das ist die alte Methode vor XL2021.

Die GLÄWEXWDH-Formel ist von mir.
Antworten Top
#6
Mit VBA wäre es auch möglich:

Code:
Sub InhAufteilen()
c = 2  ' Column 2 = Spalte B
lz = Cells(Rows.Count, c).End(xlUp).Row  ' Anzahl benutzte Zeilen in Spalte B
For zz = 4 To lz
    s = Cells(zz, 2).Value
    arr = Split(s, "+")
    anzz = UBound(arr)  ' Anzahl der "+"
    MsgBox anzz
    For i = 0 To anzz
        Cells(zz, c + 1 + i) = arr(i)
    Next
Next
End Sub


Grüsse Niclaus
Antworten Top
#7
Vielen Dank

mit VBA kenne ich mich aber absolut gar nicht aus.

@LCohen, das funktioniert leider nicht. ich hänge mal am besten die Excel an. Leider ist die Excel 2 mb Groß und ich kann die nicht anhängen. Hier ein Link zum herutnerladen

Dateien bitte im Forum hochladen: https://www.clever-excel-forum.de/Thread...ng-stellen
Antworten Top
#8
Hallo, 19 

anbei noch eine Datei mit einer UDF mit RegEx. Weiß allerdings nicht, wie in das in deiner alten Version aussieht. In der neuesten Version wird ja automatisch verteilt. Habe die Datei mal mit CSE-Abschluss gespeichert. 21

.xlsb   REGEXP_UDF_Zahlen_mit_Plus_mehrere_auslesen_ausgeben_CEF.xlsb (Größe: 14,6 KB / Downloads: 3)
________
Servus
Case
Antworten Top
#9
Rate mit hat das gleiche gemacht, nur als zu kopierende Einzelformel. Das ist nicht schlechter. Nimm das.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste