Excel 删除数字字符串中的特殊字符和数字

Excel 删除数字字符串中的特殊字符和数字,excel,filter,excel-formula,concatenation,substitution,Excel,Filter,Excel Formula,Concatenation,Substitution,我想清理一些包含特殊字符和数字的字符串 我用一个包含字母和数字的字符串尝试了一些公式: =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C2,"0",""),"1",""),"2",""),"3",""),"4",""),"5",""),"6",""),"7",""),"8",""

我想清理一些包含特殊字符和数字的字符串

我用一个包含字母和数字的字符串尝试了一些公式:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C2,"0",""),"1",""),"2",""),"3",""),"4",""),"5",""),"6",""),"7",""),"8",""),"9",""),";#;#",", "),";#","")

但是,我这里的主要问题是,我想清理一个包含数字的字符串,如下所示:


通过调整我在第一个示例中使用的公式,是否可以实现上述截图?因为第一个示例中的公式只会删除字符串中的所有字符。

这是一个有趣的挑战,可能会做得更聪明/更短,但我想尝试只使用公式(我可以想到的另一个选项是使用PowerQuery):


因此,在
B2
put中:

=TEXTJOIN(", ",TRUE,TEXT(FILTERXML("<t><s>"&SUBSTITUTE(A2,";#","</s><s>")&"</s></t>","//s[string-length(text())>3]"),"0000"))
=TEXTJOIN(“,”,TRUE,TEXT(FILTERXML(“&SUBSTITUTE(A2,;#“,”)&“//s[string length(TEXT())>3]”,“0000”))

结果:


注意:这是一个数组公式,需要通过CtrlShift Center确认


直到微软向DA formula家族引入某种类型的
SPLIT
公式,我认为
FILTERXML
将是你最好的选择。

谢谢JvdV!这就是我要找的。它工作得很好!是的,确实很有趣。我应该熟悉XPATH。感谢您的帮助和提供的信息!:)我能再问一个问题吗?:)1870年就是一个例子#92;#2165;#32;#1276;#94--我把它改成1870年#192;#2165;#132;#1276;#给了我不同的结果。该字符串中唯一一致的是187021651276,其中包含4。我将公式调整到>4,但它给了我一个错误。已经得到了。忘记用更新的答案替换公式。我的错。再次感谢,JvdV!:)请注意,如果您需要@Sevpoint,您仍然可以检查确切的长度
“//s[字符串长度(text())=4]”
。让我们清理一下注释部分=)