excel将所有数字提取到单个单元格
发布时间:2023-06-25 21:39:59
前三篇文章分别解了提取位于字符串开头和末尾的数字的公式技术、提取字符串中所有的数字并放在不同的单元格中的公式技术,本文研究从字符串中提取所有数字并将这些数字作为单个数字放置在单个单元格中的技术。
本文使用与上一篇文中相同的字符串:
81;8.75>@5279@4.=45>A?A;
我们希望公式能够返回:
818755279445
解决方案
相对简洁的数组公式:
=NPV(-0.9,IFERROR(MID(A1,1+LEN(A1)-ROW(INDIRECT(“1:”& LEN(A1))),1)/10,””))
原理解析
现在,我们应该很熟悉ROW/INDIRECT函数组合了:
ROW(INDIRECT(“1:” & LEN(A1)))
生成由1至单元格A1中的字符串长度数组成的数组,本例中A1里的字符串长度为24,因此得到:
{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24}
由1+LEN(A1)=25减去该数组,即:
25-{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24}
得到:
{24;23;22;21;20;19;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1}
即公式中MID函数的参数start_num的值,这样:
MID(A1,1+LEN(A1)-ROW(INDIRECT(“1:”&LEN(A1))),1)
转换为:
MID(“81;8.75>@5279@4.=45>A?A;”,{24;23;22;21;20;19;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1},1)
得到:
{“;”;”A”;”?”;”A”;”>”;”5″;”4″;”=”;”.”;”4″;”@”;”9″;”7″;”2″;”5″;”@”;”>”;”5″;”7″;”.”;”8″;”;”;”1″;”8″}
再由10除这个数组,得到:
{#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;0.5;0.4;#VALUE!;#VALUE!;0.4;#VALUE!;0.9;0.7;0.2;0.5;#VALUE!;#VALUE!;0.5;0.7;#VALUE!;0.8;#VALUE!;0.1;0.8}
传递给IFERROR函数,得到:
{“”;””;””;””;””;0.5;0.4;””;””;0.4;””;0.9;0.7;0.2;0.5;””;””;0.5;0.7;””;0.8;””;0.1;0.8}
继续之前,我们先看看NPV函数。
NPV函数具有一个好特性,可以忽略传递给它的数据区域中的空格,仅按从左至右的顺序操作数据区域内的数值。
NPV函数的语法为:
NPV(rate,value1,value2,value3,,,)
等价于计算下列数的和:
=value1/(1+rate)^1+value2/(1+rate)^2+value3/(1+rate)^3+…
为了生成想要的结果,需将数组中的元素乘以连续的10的幂,然后将结果相加,可以看到,如果为参数rate选择合适的值,此公式将为会提供精确的结果。因此,选择-0.9,不仅因为1-0.9显然是0.1,而且从指数1开始采用0.1的连续幂时,得到:
0.1
0.01
0.001
0.0001
…
相应地得到:
10
100
1000
10000
…
因此,在示例中,生成的数组的第一个非空元素是0.5,将乘以10;第二个元素0.4乘以100,第三个元素0.4乘以1000,依此类推。
这样,公式:
=NPV(-0.9,IFERROR(MID(A1,1+LEN(A1)-ROW(INDIRECT(“1:”& LEN(A1))),1)/10,””))
转换成:
=NPV(-0.9,{“”;””;””;””;””;0.5;0.4;””;””;0.4;””;0.9;0.7;0.2;0.5;””;””;0.5;0.7;””;0.8;””;0.1;0.8})
得到:
818755279445
注意,应对单元格进行格式设置,否则可能结果是货币形式或者指数形式。也可以在公式中添加一个INT函数来确保输出的是整数:
=INT(NPV(-0.9,IFERROR(MID(A1,1+LEN(A1)-ROW(INDIRECT(“1:”&LEN(A1))),1)/10,””)))
其实,还有更复杂的公式可以实现,例如数组公式:
=SUM(MID(A1,LARGE(IF(ISNUMBER(0+MID(A1,Arry1,1)),Arry1),ROW(INDIRECT(“1:”&COUNT(0+MID(A1,Arry1,1))))),1)*10^(ROW(INDIRECT(“1:”&COUNT(0+MID(A1,Arry1,1))))-1))
公式中的Arry1是定义的名称:
=ROW(INDIRECT(“1:”&LEN($A1)))
一对比,就会感叹这样巧妙的公式应用了,只能说佩服!


猜你喜欢
- Word作用常用的办公软件,具有十分良好的绘图功能,利用该软件所集成的绘图工具,可以制作出很实用的图形。下面小编教你在word中画图的技巧。
- 在苹果Mac OS X系统下,现在支持直接播放无损音乐的免费播放器有很多,这里小编向朋友们介绍几款免费Mac无损音乐播放器,均可在iTune
- 最近有用户表示,登录Apple ID后被提示“您的Apple ID已被停用”。如果遇到这种情况该怎么办呢?不用慌
- Excel表格中都需要录入数据,表格制作的快慢,和数据录入的速度紧密相关。今天给大家分享4个Excel技巧,包括快速录入数据技巧,提升你的办
- 微软的Win11正式推出已经三个月了,如果从去年6月份官宣算起则是半年多了,为了推广新系统,微软此前奉行的是免费升级策略,Win10等系统可
- iPhone和iPad在中国的销量让苹果开始重视这块拥有巨大潜力的市场,从上一代移动操作系统iOS5开始,便为中国用户增加了定制功能:内置Q
- 有时我们需要在wps表格里制作个人简历,这时我们应该怎么做呢?下面就让小编告诉你用wps制作表格简历 的方法。wps制作表格简历的方法:打开
- WPS文字怎么将网页内容保存为在线素材?WPS文字软件提供了世界上最出色的文字处理功能,WPS文字软件已经广泛应用在我们的日常办公中,掌握W
- 最新版的希沃白板5推出了星球2.0学科工具,相较于星球1.0版本,这一版本不仅提供了星球百科和结构知识,更优化了演示效果,支持自定义星球贴图
- Win11正式版已经发布了,所有符合升级条件的设备都能够获得免费升级到正版系统,那么正版Win11系统到底怎么样呢?值得用户去升级吗?下面为
- 如在如图所示的工作表A列中,班级数字都夹杂在字段中,如果按这样的数据执行排序,无法得到以班级排列的列表。若将数据提出为另一列,排序就轻而易举
- 在wps软件中用户会在编辑文件时遇到一些自己无法解决的问题,但是这也不影响大家对wps软件的喜欢,在wps软件中用户不仅可以使用丰富且强大的
- 还在寻找波西米亚风格预设吗?别急,今天小编给大家整理了6款波西米亚风格调色lr预设,波西米亚风格调色lr预设适用于各种复古婚礼,温暖照片调色
- 现在的笔记本电脑一般都支持双显卡切换功能,当应用大程序时,我们应该选用独立显卡,普通应用使用CPU核心显卡即可。而当看电影和玩游戏的时候,将
- >wi>n7系统,打开-开始菜单后有个最近使用的文档记录,有的朋友的电脑显示的条目多,有的显示的少,这个具体要怎么控制呢?具体操
- Microsoft Office Powerpoint是 利用 Windows SharePoint Services 停止 合
- 最近有很多小伙伴下载了Ai格式的文件,因此就比较好奇AI文件是一款什么样的文件格式,并且也想着只要我们要如何去打开各种文件,那么下面就和小编
- 您可能并不总是想把所有内容从源区域复制到目标区域内。例如,可能只想复制公式结果而非公式本身。或者只是想把数字格式从一个区域复制到另一个区域,
- 我们给excel图表添加趋势线在大公司用的还是比较多的,有时候我们可能还需要给excel图表添加误差线,接着上节的实例我们再来学习下给exc
- 普通窗口: 特大窗口: 标准状态条: 目前搜狗输入法支持的外观