A1 = ac_tree_birch_NewYork_ext如何分離與多個下劃線的文本和值的不同長度
A2 = bc_animal_dog_Washington_des
如何由「_」,在單元格中的文本分開,因爲有不同的長度單元格值。我想使用公式,而不是文本到列。
感謝
A1 = ac_tree_birch_NewYork_ext如何分離與多個下劃線的文本和值的不同長度
A2 = bc_animal_dog_Washington_des
如何由「_」,在單元格中的文本分開,因爲有不同的長度單元格值。我想使用公式,而不是文本到列。
感謝
這可能可以通過Flash Fill
(EXCEL 2013+)來完成。
對於第一行數據,在隨後的單元格中輸入您的預期結果。這是你想怎麼分解數據:
然後選擇您的輸出數據的第一個單元格,然後點擊Flash的色帶填寫:
這樣做對剩餘的列。這將填補基於自己的原始數據中被Excel識別的圖案列:
可能應該注意的是在xl2013中引入了[Flash Fill](https://support.office.com/zh-cn/article/Flash-Fill-3fb96b4a-ee83-4493-af45-6522324477bd)。 – Jeeped
謝謝@jeeped,加入回答 – radiocontrolled
如果VBA的解決方案是可以接受的,你可以寫周圍的VBA Split
函數的包裝:
Public Function Split2(s As String) As String()
Split2 = Split(s, "_")
End Function
然後在工作表中,選擇(比如說)單元格B1:F1,進入
=Split2(A1)
爲陣列功能(CTRL-SHIFT-ENTER)並出來你的數據。
希望有所幫助。
使用SUBSTITUTE function改變所有下劃線(例如CHAR(95)
),以大量空間(典型的原始字符串的整個長度上)和剝離出填充件與MID function。用TRIM和IFERROR'wrapper'結束。
在B1爲,
=IFERROR(TRIM(MID(SUBSTITUTE($A1, CHAR(95), REPT(CHAR(32), LEN($A1))), (COLUMN(A:A)-1)*LEN($A1)+1, LEN($A1))), TEXT(,))
填寫正確的,而且下降。
謝謝!那完美的工作。 – scannon
在使用'閃存Fill' – radiocontrolled
我寧願使用一個公式看看。有關於此的任何想法? – scannon
您可以使用「IF」,「LEN」,「FIND」,「RIGHT」,「LEFT」和「SUBSTITUTE」的組合。 – radiocontrolled