A1 = ac_tree_birch_NewYork_ext
A2 = bc_animal_dog_Washington_des
如何通过" _"分隔单元格中的文本,因为单元格值的长度不同。我想使用公式,而不是文本到列。
由于
答案 0 :(得分:3)
使用SUBSTITUTE function将所有下划线(例如CHAR(95)
)更改为大量空格(通常是原始字符串的整个长度),并使用{{3}将带衬垫的部分剥离}。完成MID function和TRIM'包装'。
在B1中,
=IFERROR(TRIM(MID(SUBSTITUTE($A1, CHAR(95), REPT(CHAR(32), LEN($A1))), (COLUMN(A:A)-1)*LEN($A1)+1, LEN($A1))), TEXT(,))
向右和向下填充。
答案 1 :(得分:2)
这可以通过Flash Fill
(Excel 2013 +)完成。
对于第一行数据,请在右侧的后续单元格中输入您的预期结果。这就是您希望数据分解的方式:
然后选择输出数据的第一个单元格,并单击功能区中的Flash Fill:
对剩余的列执行此操作。这将根据原始数据中Excel识别的模式填充列:
答案 2 :(得分:0)
如果VBA解决方案可以接受,您可以在VBA Split
函数周围编写一个包装器:
Public Function Split2(s As String) As String()
Split2 = Split(s, "_")
End Function
然后在工作表中选择(说)单元格B1:F1,输入
=Split2(A1)
作为一个数组函数(CTRL-SHIFT-ENTER),然后输出你的数据。
希望有所帮助。