【问题标题】:Remove special characters and numbers in a number string删除数字字符串中的特殊字符和数字
【发布时间】:2020-04-23 06:50:35
【问题描述】:

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

我尝试了一些公式来使用包含字母和数字的字符串来实现这一点:

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

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

无论如何我可以通过调整我在第一个示例中使用的公式来实现上面的屏幕截图吗?因为第一个示例中的公式只会删除字符串中的所有字符。

【问题讨论】:

    标签: excel filter excel-formula concatenation substitution


    【解决方案1】:

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


    所以基本上在B2 put:

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

    结果:


    注意:是数组公式,需要通过CtrlShiftEnter

    确认

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

    【讨论】:

    • 谢谢JvdV!这就是我要找的。效果很好!
    • 是的,确实很有趣。我应该熟悉 XPATH。感谢您的帮助和提供信息! :)
    • 我能再问一个问题吗? :) 一个例子是 1870;#92;#2165;#32;#1276;#94 - 我将其更改为 1870;#192;#2165;#132;#1276;#194 并给了我不同的结果.该字符串中唯一一致的是包含 4 的 1870,2165,1276。我将公式调整为 >4,但它给了我一个错误。
    • 已经知道了。忘记用更新的答案替换公式。我的错。再次感谢,JvdV! :)
    • 请注意,如果您需要@Sevpoint,您仍然可以检查确切的长度。 "//s[string-length(text())=4]"。让我们清理评论部分=)
    猜你喜欢
    • 2021-04-23
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2016-08-18
    • 2021-08-21
    • 2011-04-11
    • 2016-01-23
    相关资源
    最近更新 更多