
I have an excel spreadsheet with rows of data as shown below. There is a code with the product name and then a number.
QA32 Product One (Large) 23
AZ63 Product Two 96
PR65 Product Three 149
How do I split each field into a column?
I tried the "split text into columns" on excel using the delimited option and separating by spaces but the fact that some product names had more that one word caused the some numbers to be in the wrong column. E.g.,
Code Name Number
QA32 Product One (Large) 23
AZ63 Product Two 96
PR65 Product Three 149
This is the desired result:
Code Name Number
QA32 Product One (Large) 23
AZ63 Product Two 96
PR65 Product Three 149
Help is appreciated!
Antwort1
Verwenden Sie FIND-function
, um die Position Ihres ersten und letzten Leerzeichens zu bestimmen. Verwenden Sie anschließend , MID-function
um Ihre Daten in drei Teile aufzuteilen. Wenn Sie die Position Ihrer Leerzeichen kennen, ist das Aufteilen einfach. Das Finden des ersten Leerzeichens ist ebenfalls trivial, da FIND
von links nach rechts gesucht wird. Leider gibt es keine Möglichkeit, Excel anzuweisen, von rechts nach links zu suchen.
Der schwierige Teil ist also, das letzte Leerzeichen zu bestimmen! Hier verwenden wir eine Array-Formel.
Um eine Array-Formel einzugeben, fügen Sie die Formel in eine Zelle ein und drücken nicht Enter.
Stattdessen drücken Sie Ctrl+ Shift+ Enter.
{=MAX((MID(A2,ROW(A:A),1)=" ")*ROW(A:A))}
Bei erfolgreichem Abschluss fügt Excel eine beginnende und eine schließende geschweifte Klammer an.
Fügen Sie alle Formeln in die angegebenen Zellen ein und verwenden Sieautofill down
A2: Ihre Daten kommen hierhin
B2: =FIND(" ",A2,1)
C2: =MAX((MID(A2,ROW(A:A),1)=" ")*ROW(A:A))
<-Array-Formel!
D2: =MID(A2,1,B2-1)
E2: =MID(A2,B2+1,C2-B2-1)
F2:=MID(A2,C2+1,LEN(A2))
Ergebnisbildschirm
Antwort2
Wenn ein geeigneter Algorithmus zurückgeben soll:
- Code = Das erste Wort
- Produkt = Alles zwischen dem ersten und dem letzten Wort
- Nummer = Das letzte Wort
Dann sollten die folgenden Formeln funktionieren.
Angenommen, Ihre Daten liegen in A1:
Code: =LEFT(TRIM(A1),FIND(" ",TRIM(A1))-1)
Product: =TRIM(MID(SUBSTITUTE(TRIM(A1)," ",REPT(" ",99)),100,LEN(SUBSTITUTE(TRIM(A1)," ",REPT(" ",99)))-198))
Number: =TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",99)),99))