使用三个不同的分隔符拆分成列

Split into columns using three different separators

我想根据这三个定界符将 Excel 字段转换为三列:正斜杠、破折号和右括号:) / -

这是我需要看到的:

我试过 excel 中的 'Text to Columns' 数据工具,但它不能同时接受三个自定义分隔符。


我想要一个简单快速的Excel方法,可以转换以下模式:

你可以试试FILTERXML/SUBSTITUTE:

=SUBSTITUTE(FILTERXML("<a><b>'" & SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A2,"/","</b><b>'"),")","</b><b>'"),"-","</b><b>'") & " </b></a>","//b[" & COLUMN(A:A) & "]"),"'","")

一种方法是先修复数据,然后 运行 TextToColumns。 Select 您希望处理的单元格和 运行 这个简短的 VBA 宏:

Option Explicit
Sub FixPhoneData()
    Dim cell As Range, v As String
    
    For Each cell In Selection
        With cell
            v = .Value
            v = Replace(v, ")", "-")
            v = Replace(v, "/", "-")
            .Value = v
        End With
    Next cell
End Sub

之前:

及之后:

如果有 Excel O365,你可以试试:

B1中的公式:

=TRANSPOSE(MID(CONCAT(IFERROR(MID(A1,SEQUENCE(LEN(A1)),1)*1,"")),{1,4,7},{3,3,4}))

现在,只要您提供通常的 10 位数字,您就可以在公式中使用任何模式。

如果总是这三个相同的模式,你也可以使用:

=TRANSPOSE(MID(RIGHT(A1,12),{1,5,9},{3,3,4}))

最后一个更简单的解决方案也可以在 O365 之前的 Excel 中使用,如果使用 INDEX():

=INDEX(MID(RIGHT($A1,12),{1,4,7},{3,3,4}),COLUMN(A1))

向右和向下拖动此公式。


如果您的目标是最终在单个单元格中使用此模式,那么事情会立即变得容易得多,您可以使用:

=REPLACE(RIGHT(A1,12),4,1,"-")


如果您需要在 GS 中执行此操作,请尝试:

=SPLIT(REPLACE(RIGHT(A1,12),4,1,"-"),"-")