簡體   English   中英

如何將文本轉換為列並忽略一些分隔符

[英]How to convert text to columns and ignore some delimiters

我嘗試將價目表從 PDF 復制/粘貼到 excel 工作表中,但所有內容都粘貼到單個列 (A) 中,而不是將其轉換為適當數量的列。

使用帶有空格分隔符的列的文本不起作用,因為許多產品的產品名稱中有多個空格。

我有大約 300 行不同長度的項目描述。 應該有 4 列:項目編號、描述、數量和價格。 但所有 4 列可能有不同數量的分隔符和字符。

例子:

MGB123 Brand 20 Mil Business Card Magnet 500 .225
NNR1221 Brand 15 Mil Custom Shaped Marker and Clip 250 4.123
PQXRF123 Brand 10 Mil Pen 1000 .221
etc...

我用過:

=MID(A1,FIND("~~~~~",SUBSTITUTE(A1," ","~~~~~",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))+1,LEN(A1))

將價格分開,但是我將如何更改公式以獲取倒數第二列?

您可以使用這 4 個公式來提取商品編號、名稱、數量和價格。

=FILTERXML("<t><s>"& SUBSTITUTE(A1," ","</s><s>")&"</s></t>", "//s[1]")

=TEXTJOIN(" ",TRUE, FILTERXML("<t><s>"& SUBSTITUTE(A1," ","</s><s>")&"</s></t>", "//s[position()>1 and position()<last()-1]"))

=FILTERXML("<t><s>"& SUBSTITUTE(A1," ","</s><s>")&"</s></t>", "//s[last()-1]")

=FILTERXML("<t><s>"& SUBSTITUTE(A1," ","</s><s>")&"</s></t>", "//s[last()]")

如果 TEXTJOIN 在您的 Excel 版本中不可用,您可以嘗試使用 CONCAT。

=CONCAT(FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>", "//s[position()>1 and position()<last()-1]")&" ")

再次取決於您的 Excel 版本,可能需要使用 CTRL+SHIFT+ENTER 作為數組公式輸入。

如果 CONCAT 不可用,試試這個,

=MID(A1,FIND(" ",A1)+1,FIND(FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>", "//s[last()-1]"),A1)-FIND(" ",A1)+2)

雖然我確信可能有更好的方法。:)

以下公式也適用於 Excel 的早期版本:

Item Number: =LEFT(A2,FIND(" ",A2)-1)
Description: =MID(A2,FIND(" ",A2)+1,FIND(CHAR(1), SUBSTITUTE(A2," ",CHAR(1),LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))-FIND(" ",A2))
Qty:         =--TRIM(MID(SUBSTITUTE(A2," ",REPT(" ",99)),99*2,99))
Price:       =--TRIM(RIGHT(SUBSTITUTE(A2," ",REPT(" ",99)),99))

Qty 和 Price 開頭的雙一元是將字符串轉換為數字。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM