ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > 函数与公式 > 怎样才能一次性提取()内不超15位正数?

怎样才能一次性提取()内不超15位正数?

作者:绿色风 分类: 时间:2022-08-18 浏览:100
楼主
传递
Q:怎样才能一次性提取()内不超15位正数?

 

A:可以用
  1. =-LOOKUP(,--RIGHT(A1,ROW($1:$15)))
来处理。
为了分析这公式,先演示一个动画效果:先在A列直接输入数据,然后数字两边加“()”。这样大家可以看到:为何在纯数字上加不了“()”,加上“()”后,出来成“-数字”(这是基础设置)。

 
数字两侧加括号在EXCEL中有特殊意义,可以理解为,它是一种默认样式,即负数样式,尽管在格式中可以改变这种样式,但它还是默认的!
一般做法,是把“()”去掉,取中间的数字。其实可以将“()”一起取出来了,用公式前的“-”抵消了“-”数字, 最后成 123 等
(正数)也可以是一个数字,但是在数字提取当中,一般会忘记(数字)是个数字。然后,用了相对比较长的公式去解决。以后取“()”中的正数,就不用先把“)”或者“(”去掉了
可以直接用
  1. =-LOOKUP(,--RIGHT(A1,ROW($1:$15)))
来处理
公式分析
  1. =-LOOKUP(,--RIGHT(A1,ROW($1:$15)))
这个式子是可以达到要求的,如果要说原理很也简单
说透了,用这个式子的目的 就是从右开始,截出 (1232)来
比如,A1=ABC(1232)通过按F9,看一下公式的结构部分
=-LOOKUP(,--{")";"2)";"32)";"232)";"1232)";"(1232)";"c(1232)";"bc(1232)";"abc(1232)";"abc(1232)";"abc(1232)";"abc(1232)";"abc(1232)";"abc(1232)";"abc(1232)"})
前面两个前负的作用下,数组中唯一能转成数字的,只有(1232),RIGHT截出来的为文本型(1232),然后让 -- 转变成了数字,也就是 -1232
前面两个前负的作用下,然后让 -- 转变成了数字,也就是 -12
LOOKUP前面的 - 又让 -12 回到了 正数形式,最终得到了原有的答案
缺点:不能随意的插入行或删除行,一旦有这些动作,公式就...不对了,呵呵。
LOOKUP 这式子的效率比较低下的,如果数据量多且变化量大的情况下,尽量少用LOOKUP。

其他公式还有
  1. =SUBSTITUTE(MID(A1,FIND("(",A1)+1,99),")",)
  1. =-LOOKUP(,-RIGHT(LEFT(A1,LEN(A1)-1),ROW($1:$15)))
  1. =MID(LEFT(A1,LEN(A1)-1),FIND("(",A1)+1,15)

等等
怎样才能一次性提取()内不超15位正数?.rar
2楼
jayzoudequan
学习了··············
3楼
水吉果果
学习

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap