ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 152490|回复: 248

[已解决] [求助]一个数值和文字混排的单元格,如何提取数值参与计算?

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2006-4-12 16:57 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖已被收录到知识树中,索引项:FIND
一个数值和文字混排的单元格,如何计提数值参与计算?
数值在文字中间如“收入562.00元”;最后,如“计提标准0.5%”。此处的0.5%可参与计算吗?
还有出现在首端的,如895人/月。
不管出现在那个位置,出现数值的地方只有一个。
请大家指点。
[此贴子已经被aichong于2007-10-7 23:57:40编辑过]

TA的精华主题

TA的得分主题

发表于 2006-4-12 17:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

传个附件,好说明问题

一般来说,利用文本公式可以实现

TA的精华主题

TA的得分主题

发表于 2006-4-12 17:51 | 显示全部楼层
=LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2006-4-12 18:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

版主:

感觉你特喜欢写这么长长的一串。

我是看了,就怕了。[em06]

因为,我看不懂。又没有这个基础的东东可学。

TA的精华主题

TA的得分主题

发表于 2006-4-12 21:14 | 显示全部楼层

TO konggs:

这个公式不长呀,而且计算速度快。

TA的精华主题

TA的得分主题

发表于 2006-4-12 21:21 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-4-13 08:21 | 显示全部楼层
gvntw指点,荣幸!谢谢!问题解决,虽然不明就里。[em04]

TA的精华主题

TA的得分主题

发表于 2006-4-13 10:23 | 显示全部楼层

谢谢版主,又提供好思路。

与看不懂的朋友共同学习一下:

以“收入562.00元”为例

1、FIND()告诉我,0-9在文本中第一次出现的位置。

用Find()在指定的文本中查找0-9,会返回第一次出现的位置,如果没有会返回一个错误值,聪明的gvntw,在文本后面连接上1234567890,让Find()不再有借口返回错误值,请放心,它不会影响后面的结果。在编辑栏中,像下面一样,用鼠标将这一段文本抹黑,然后按F9。

=LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))

2、对着 Min(),王小丫说:恭喜你,答对了,第一个数字在第3位。

如果你还怀疑,可以这再次抹黑,并按F9。

=LOOKUP(9E+307,--MID(A1,MIN({7;8;5;12;13;3;4;16;17;18}),ROW(INDIRECT("1:"&LEN(A1)))))

3、神奇魔术师 Mid() ,一个文本变出许许多多。

让事实说话,继续抹抹黑,按F9。开始位置不变,长度依次增1,形成一个数组,数组的个数等于文本长度(Row()的结果)。后面的会出现相同的情况,没关系,还是不影响结果的。

=LOOKUP(9E+307,--MID(A1,3,ROW(INDIRECT("1:"&LEN(A1)))))

4、如果忽略了--,还是功亏一篑。

看看,它的结果会是什么呢?

=LOOKUP(9E+307,--{"5";"56";"562";"562.";"562.0";"562.00";"562.00元";"562.00元";"562.00元"})

5、Lookup() 总是那么沉着,他闭着眼睛说,我就要最后面那个数字。

=LOOKUP(9E+307,{5;56;562;562;562;562.00;#VALUE!;#VALUE!;#VALUE!})

9E+307 是一个非常大的数,在任何时候都适用,如果你知道你的文本中最大数的范围,比如1000,文本中的数字不会超过1000的,那么,这个数字你用1000,也是行的,即:

Lookup(1000,……)

行了,再次感谢版主,你说呢?

评分

4

查看全部评分

TA的精华主题

TA的得分主题

发表于 2006-4-13 11:01 | 显示全部楼层

菊花兄现在是越来越勤奋了,敬佩。函数要是像花兄这样讲,想不进步都难,谢谢。

TA的精华主题

TA的得分主题

发表于 2006-4-13 11:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

公式已经符合题意。

但如果前、后、中间都有数字,用这个公式得出的只是前面的数字。

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-23 21:32 , Processed in 0.036293 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表