如何使用多个下划线和不同长度的值分隔文本

时间:2016-03-25 20:44:03

标签: excel-formula delimiter separator

A1 = ac_tree_birch_NewYork_ext

A2 = bc_animal_dog_Washington_des

如何通过" _"分隔单元格中的文本,因为单元格值的长度不同。我想使用公式,而不是文本到列。

由于

3 个答案:

答案 0 :(得分:3)

使用SUBSTITUTE function将所有下划线(例如CHAR(95))更改为大量空格(通常是原始字符串的整个长度),并使用{{3}将带衬垫的部分剥离}。完成MID functionTRIM'包装'。

在B1中,

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

向右和向下填充。

IFERROR

答案 1 :(得分:2)

这可以通过Flash Fill(Excel 2013 +)完成。

对于第一行数据,请在右侧的后续单元格中输入您的预期结果。这就是您希望数据分解的方式:

image

然后选择输出数据的第一个单元格,并单击功能区中的Flash Fill:

image

对剩余的列执行此操作。这将根据原始数据中Excel识别的模式填充列:

image

答案 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),然后输出你的数据。

希望有所帮助。