Excel 中的將文字拆分為列的函數

Excel 中的將文字拆分為列的函數

我有一個 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))

相關內容