在Excel中,explode函数用于将一个文本字符串按照指定的分隔符拆分为多个文本项,并将这些文本项作为数组返回。但是,explode函数只能处理单个分隔符的情况。如果需要处理不规则分隔符,可以使用以下方法:
=ArrayFormula(IFERROR(VLOOKUP(ROW(INDIRECT("1:"&LEN(A1))), Split(A1, "[|;,]"), 2, FALSE), ""))
该公式首先使用Split函数将字符串按照"[|;,]"分隔符拆分为一个数组,然后使用VLOOKUP函数遍历拆分后的数组,并将每个元素转换为对应的值。最后,使用IFERROR函数来处理任何可能的错误。
Function explode_multi(text, delimiters)
Dim arr() As String
Dim i As Long, j As Long
Dim temp() As String
temp = Split(text, delimiters)
ReDim arr(1 To UBound(temp))
For i = 1 To UBound(temp)
arr(i) = temp(i)
Next i
explode_multi = arr
End Function
该函数接受两个参数:要拆分的文本字符串和分隔符数组。它首先使用Split函数将文本字符串按照分隔符拆分为一个临时数组,然后将临时数组中的每个元素复制到一个新的数组中,并最终返回该数组。
使用此自定义函数,可以像使用explode函数一样处理不规则分隔符,例如:
=explode_multi("A|B,C;D", Array("|", ","))