在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("|", ","))