拆分文本列
回答
隨着A1數據,在B1輸入:
=TRIM(MID(SUBSTITUTE($A1,"#",REPT(" ",999)),COLUMNS($A:A)*999-998,999))
和複製對面。
文本到列與#
作爲分隔符可能適合,但可能與TRIM爲每個結果單元格。
考慮到現在有(版本2010+)的菜單命令可以做到這一點,可以通過導入嚮導來完成,VBA功能可以輕鬆完成此操作,並且其他解決方案已經發布,這可能看起來沒有必要。儘管如此,這是使用數組公式的另一種方法。
您需要有一個標題行,並在將顯示分隔值的列中填充增量整數(1,2,3,...)。您需要與分隔值相同的列數。本例中使用的分隔符是「#」。必須爲公式選擇第二個分隔符(示例中的「@」,但可能更好,類似於CHAR(1))。
如果Excel具有Split功能(如VBA),但它不會,這將是理想選擇。
如果Excel有一個FIND函數可以找到第n個字符的出現,但它不會。
但是,Excel確實有SUBSTITUTE
函數,它可以在第n次出現的字符上進行操作,然後就可以找到該字符。所以一個麻煩的解決方法是可能的。
=FIND("@",SUBSTITUTE($A2,"#","@",5))
將計算到$ A2中字符串中的字符位置,在該位置出現第5個分隔符「#」。
例如
$A2 = "Hello#my#name#is#Bob#What#is#your#name?"
SUBSTITUTE($A2,"#","@",5) = "Hello#my#name#is#[email protected]#is#your#name?"
FIND("@",SUBSTITUTE($A2,"#","@",5)) = 21
爲了使它更一般工作,墊串的兩端安裝一個分隔符,並使用MID
功能到你想要的文本部分隔離開來。使用列標題行(例如B $ 1:M $ 1)來指定哪個分隔值將出現在該列中。
=MID($A2, FIND("@",SUBSTITUTE("#" & $A2 & "#","#","@",B$1)), FIND("@",SUBSTITUTE("#" & $A2 & "#","#","@",B$1+1)) - FIND("@",SUBSTITUTE("#" & $A2 & "#","#","@",B$1)) - 1)
可以跨越複製式,或者可以跨第一列突出,然後在適當位置B $ 1與底座陣列範圍在式類型(例如B $ 1:F $ 1),並將其保存作爲使用CTRL + SHIFT + ENTER的數組公式。
例如,
{=MID($A2, FIND("@",SUBSTITUTE("#" & $A2 & "#","#","@",B$1:F$1)), FIND("@",SUBSTITUTE("#" & $A2 & "#","#","@",B$1:F$1+1)) - FIND("@",SUBSTITUTE("#" & $A2 & "#","#","@",B$1:F$1)) - 1)}
將是B2陣列式:F2到A2分成5個獨立#-delimited值,假設B1:F1跨越包含1,2,3,4,5細胞。因爲SEARCH
不區分大小寫,所以使用通配符(*,?)。
優秀的解釋! – HarveyFrench
致評論者:我通過加-1來編輯它,因爲我相信沒有它,解決方案提供不起作用! – HarveyFrench
- 1. 拆分文本
- 2. 拆分文本
- 3. 拆分文本
- 4. 拆分文本
- 5. 在文本文件中拆分列
- 6. 拆分文本與拆分功能
- 7. 拆分文本2008
- 8. 拆分文本第
- 9. 的Oracle 11g拆分文本列行
- 10. Android - 在列中拆分文本
- 11. Python的熊貓與文本拆分列
- 12. 拆分文本文件
- 13. 拆分文本文件
- 14. 在文本文件中拆分文本
- 15. 拆分文本成針
- 16. scala.xml.parsing.ConstructingParser拆分文本內容
- 17. Excel公式拆分文本
- 18. SSIS拆分XML文本
- 19. 在jquery中拆分文本
- 20. 拆分文本與 '\ r \ n'
- 21. 的Python:拆分文本行
- 22. 按空格拆分文本
- 23. 的Java:拆分文本
- 24. 拆分文本按標籤
- 25. 將csv文件拆分爲單列文本文件
- 26. 拆分CSV文件爲文本文件
- 27. 將文本拆分爲部分
- 28. 將文本拆分成相等部分
- 29. python拆分列
- 30. 拆分列行
非常感謝你。 – SouravD
非常歡迎! –