使用三个不同的分隔符拆分成列
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,"-"),"-")
我想根据这三个定界符将 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,"-"),"-")