
我有一個 Excel 電子表格,其中包含如下所示的資料行。有一個代碼,其中包含產品名稱,然後是一個數字。
QA32 Product One (Large) 23
AZ63 Product Two 96
PR65 Product Three 149
如何將每個欄位拆分為一列?
我嘗試在 Excel 上使用分隔選項並用空格分隔“將文字拆分為列”,但事實上某些產品名稱包含多個單詞,導致某些數字位於錯誤的列中。例如,
Code Name Number
QA32 Product One (Large) 23
AZ63 Product Two 96
PR65 Product Three 149
這是期望的結果:
Code Name Number
QA32 Product One (Large) 23
AZ63 Product Two 96
PR65 Product Three 149
感謝幫助!
答案1
用於FIND-function
確定第一個和最後一個空格的位置。之後,使用 將MID-function
資料拆分為三個部分。如果您知道空間的位置,那麼分割就很容易。找到第一個空格也很簡單,因為FIND
從左到右。不幸的是,沒有辦法告訴 Excel 從右向左搜尋。
所以困難的部分是,確定最後一個空格!這裡我們使用數組公式。
要輸入數組公式,請將公式貼上到單元格中,並且不要點擊Enter。
相反,您按Ctrl+ Shift+ Enter。
{=MAX((MID(A2,ROW(A:A),1)=" ")*ROW(A:A))}
如果成功完成,Excel 將附加一個開始和結束大括號。
在給定單元格中插入所有公式並使用autofill down
A2:您的資料放在這裡
B2:=FIND(" ",A2,1)
C2:=MAX((MID(A2,ROW(A:A),1)=" ")*ROW(A:A))
<-陣列公式!
D2: =MID(A2,1,B2-1)
E2: =MID(A2,B2+1,C2-B2-1)
F2:=MID(A2,C2+1,LEN(A2))
結果螢幕
答案2
如果返回合適的演算法:
- 代碼=第一個字
- 產品 = 第一個字和最後一個字之間的所有內容
- 數字=最後一個字
那麼下面的公式應該要有效。
假設你的數據在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))