2016-03-25 26 views
-1

A1 = ac_tree_birch_NewYork_ext如何分離與多個下劃線的文本和值的不同長度

A2 = bc_animal_dog_Washington_des

如何由「_」,在單元格中的文本分開,因爲有不同的長度單元格值。我想使用公式,而不是文本到列。

感謝

+0

在使用'閃存Fill' – radiocontrolled

+0

我寧願使用一個公式看看。有關於此的任何想法? – scannon

+0

您可以使用「IF」,「LEN」,「FIND」,「RIGHT」,「LEFT」和「SUBSTITUTE」的組合。 – radiocontrolled

回答

1

這可能可以通過Flash Fill(EXCEL 2013+)來完成。

對於第一行數據,在隨後的單元格中輸入您的預期結果。這是你想怎麼分解數據:

image

然後選擇您的輸出數據的第一個單元格,然後點擊Flash的色帶填寫:

image

這樣做對剩餘的列。這將填補基於自己的原始數據中被Excel識別的圖案列:

image

+0

可能應該注意的是在xl2013中引入了[Flash Fill](https://support.office.com/zh-cn/article/Flash-Fill-3fb96b4a-ee83-4493-af45-6522324477bd)。 – Jeeped

+0

謝謝@jeeped,加入回答 – radiocontrolled

0

如果VBA的解決方案是可以接受的,你可以寫周圍的VBA Split函數的包裝:

Public Function Split2(s As String) As String() 
    Split2 = Split(s, "_") 
End Function 

然後在工作表中,選擇(比如說)單元格B1:F1,進入

=Split2(A1) 

爲陣列功能(CTRL-SHIFT-ENTER)並出來你的數據。

希望有所幫助。

3

使用SUBSTITUTE function改變所有下劃線(例如CHAR(95)),以大量空間(典型的原始字符串的整個長度上)和剝離出填充件與MID function。用TRIMIFERROR'wrapper'結束。

在B1爲,

=IFERROR(TRIM(MID(SUBSTITUTE($A1, CHAR(95), REPT(CHAR(32), LEN($A1))), (COLUMN(A:A)-1)*LEN($A1)+1, LEN($A1))), TEXT(,)) 

填寫正確的,而且下降。

string_pieces

+0

謝謝!那完美的工作。 – scannon

相關問題