Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
格式化excel单元格-删除除数字以外的所有单元格_Excel_Excel Formula_Excel 2010 - Fatal编程技术网

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

格式化excel单元格-删除除数字以外的所有单元格,excel,excel-formula,excel-2010,Excel,Excel Formula,Excel 2010,有没有办法写出一个公式,从单元格中删除所有字符,只过滤掉数字 例如: po63;22kv为6322 这是一个简单的问题,在某些编程语言中有一种解决方法,因此我怀疑excel中也存在这样的问题,但到目前为止我还没有找到解决方案 限制每个字符串总共15个数字,数组公式**: =NPV(-0.9,IFERROR(中间(A1,1+LEN(A1)-行(索引(A:A,1):索引(A:A,LEN(A1))),1)/10“) 将单元格格式设置为常规格式(Excel习惯于假定NPV的回报为货币) 问候 **数组公

有没有办法写出一个公式,从单元格中删除所有字符,只过滤掉数字

例如:

po63;22kv为6322


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

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

=NPV(-0.9,IFERROR(中间(A1,1+LEN(A1)-行(索引(A:A,1):索引(A:A,LEN(A1))),1)/10“)

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

问候


**数组公式的输入方式与“标准”公式不同。不要只按ENTER键,而是先按住CTRL和SHIFT键,然后再按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中字符串的各个字符从最右边的字符开始[它使用正确的公式从最右边的字符开始,初始长度为1,然后是2,以此类推到字符串的长度,然后使用左边的字符获取特定的迭代],它试图将该字符乘以10^[小数点]。如果创建#值错误,则表示该字符是字符串,而不是数字。否则,它会将每个字符置于与其在原始字符串中的位置相关联的小数位

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


我认为这不一定是一种更简单的方法,只是另一种方法,可以帮助您了解它的工作原理。

这很好-它使用数组公式,通过字符串长度向后计数,将每个字符除以10来确定它是否为数值,抛出#值错误,然后,它使用-9的净现值,以正确的小数位顺序提取所有数据。我尝试了以下方法:=SUM(IFERROR(MID(MID(A1,51-ROW(A1:A50),1)*10^(ROW(A1:A50)-1),0)),这失败了,因为在给定的示例中,最后2将乘以10^3,而不是10^0。然而,使用NPV忽略了计算中的空白值。现在,我的方法也有一个缺点,即在创建字母的同时还具有字母字符的“额外空间”。这意味着Excel的浮点限制将阻止该操作,如果从第一个数字到最后一个数字的总距离。原始字符串大于15。我认为@XOR的方法不存在这种限制。