繁体   English   中英

格式化Excel单元格-删除除数字外的所有数字

[英]Formatting excel cells - remove all except digits

有什么方法可以写一些公式来删除单元格中的所有字符并仅过滤出数字/数字?

例如:

po63; 22kv为6322。

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

每个字符串最多限于15个数字, 数组公式**

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

将单元格格式设置为“ 常规” (Excel习惯于假设NPV的回报将是货币)。

问候

**数组公式的输入方式与“标准”公式的输入方式不同。 首先按住CTRL和SHIFT,然后再按Enter,而不是仅按ENTER。 如果操作正确,您会注意到Excel在公式周围使用大括号{}(尽管不要尝试自己手动插入大括号)。

经过进一步思考(请参阅XOR帖子下方的评论),我可以替代XOR的公式-过程非常相似,但使用不同的步骤才能达到目标:

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

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

这样做是从A1中字符串的各个字符开始,从最右边的字符开始[它使用RIGHT公式从最右边的字符开始,起始长度为1,然后为2,依此类推。到字符串的长度,然后使用LEFT字符来捕获特定的迭代],然后尝试将该字符乘以10 ^ [小数位]。 如果它产生#VALUE错误,则表明该字符是字符串,而不是数字。 否则,它将每个字符放在与其在原始字符串中的位置相关联的小数位。

然后,它将整个内容转换为字符串,并用“”替换“ 0”,以纠正小数位数尚不正确的事实。 与XOR公式一样,如果最终数字> 10 ^ 15,则此操作将失败,这是因为Excel的浮点计算问题。

我认为这不一定是一种更简单的方法,而可以以不同的方式来帮助您了解其工作原理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM