格式化Excel单元格 – 删除除数字以外的所有内容

有没有办法写一些公式,将删除单元格中的所有字符,并过滤掉数字/数字?

例如:

po63; 22kv为6322。

这是一个简单的问题,在一些编程语言中有一个方法,所以我怀疑在excel中也存在这样的事情,但到目前为止我还没有find解决scheme!

每个string总共限制15个数字, 数组公式**

=NPV(-0.9,IFERROR(MID(A1,1+LEN(A1)-ROW(INDEX(A:A,1):INDEX(A:A,LEN(A1))),1)/10,""))

将单元格格式化为常规 (Excel有一个习惯,假设从NPV返回将是货币)。

问候

**数组公式不是以与“标准”公式相同的方式input的。 按住CTRL键和SHIFT键,而不是按下ENTER键,然后按ENTER键。 如果你做得对,你会注意到Excel在公式周围放置了大括号(尽pipe不要试图自己手动插入这些)。

经过一番进一步的思考(请参阅我的评论在XOR的post下)我有一个替代XOR的公式 – 在过程非常相似,但使用不同的步骤到达那里:

 =SUBSTITUTE(TEXT(SUM(IFERROR(LEFT(RIGHT(A1,ROW(A:A)))*10^(ROW(A:A)-1),"")),"#"),"0","") 

由于这是一个数组公式,因此必须使用CTRL + SHIFT + ENTER来确认,而不仅仅是ENTER或TAB。

这样做是从A1中的string的单个字符开始,从最右边的字符开始[使用RIGHT公式从最右边的字符开始,初始长度为1,然后是2等等。到string的长度,然后使用LEFT字符来抓取特定的迭代],并试图将该字符乘以10 ^ [小数位]。 如果它创build了#VALUE错误,则表示该字符是string,而不是数字。 否则,它将每个字符放在与原始string中位置相关的小数位。

然后把整个事情转换成一个string,并用“”replace掉“0”,以纠正小数位不正确的事实。 与XOR的公式一样,如果最终数字大于10 ^ 15,则由于Excel中的浮点计算问题而失败。

我认为这不一定是一个简单的方法,只是一种不同的方式,可以帮助你理解它是如何工作的。