使用 FILTERXML 从字符串中提取子字符串

使用 FILTERXML 从字符串中提取子字符串

使用 Excel 365

我有一个小的 VBA 用户定义函数,可以根据逗号作为分隔符将字符串解析为子字符串。我正尝试用工作表公式替换 UDF,以制作一个无宏的工作簿。

UDF 是:

Public Function parsee(s As String)
    Dim i As Long, arr, a
    
    arr = Split(s, ",")
    ReDim output(1 To 1, 1 To UBound(arr) + 1)
    
    i = 1
    For Each a In arr
        output(1, i) = a
        i = i + 1
    Next a
    
    parsee = output
    
End Function

在 Excel 365 中,这种情况以类似于以下的方式蔓延TextToColumns

在此处输入图片描述

根据之前的帖子:

使用 filterxml 从字符串中提取子字符串

我一直在使用:

=TRANSPOSE(FILTERXML("<t><s>"&SUBSTITUTE(A1,",","</s><s>")&"</s></t>","//s"))

除非输入字符串包含&特点(例如A2. 在这种情况下FILTERXML()返回#价值!

有没有一个简单的解决办法来FILTERXML()接受&像其他角色一样??

答案1

替换&&amp;

=TRANSPOSE(FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A2,"&","&amp;"),",","</s><s>")&"</s></t>","//s"))

在此处输入图片描述

相关内容