ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2006-11-16 16:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:FIND
除了说高之外就是高兴,终于找到组织了

TA的精华主题

TA的得分主题

发表于 2006-11-16 17:33 | 显示全部楼层

山菊大师的集贴在哪里啊,拥有一本多好啊!

TA的精华主题

TA的得分主题

发表于 2006-11-16 21:46 | 显示全部楼层
山菊花老师讲得是声情并茂,通俗易懂.

TA的精华主题

TA的得分主题

发表于 2006-11-19 11:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

高,实在是高

TA的精华主题

TA的得分主题

发表于 2006-11-25 09:23 | 显示全部楼层
QUOTE:
以下是引用山菊花在2006-4-19 20:14:33的发言:

关于9E+307

QUOTE:
我知道9E+307是一个很大的数,但为什么要用它?为什么哪里都用它?总是不明白。

有朋友这样说。

你认识 Lookup 吗?

我认识 Lookup 是在一家叫良缘的婚姻介绍所。那天我也就为那事去了那家婚姻介绍所,呵,比我早的人还有,于是我就站在老L的身边静静地等着。

老L干咳一声,开始为第一位顾客服务了:你今年多大了?这位先生说话还有点脸红,轻轻说:29。

老L看芳名册了,不,是芳龄册,头也不抬,说:成了,姑娘也是29。

年轻人让开了,后面那位有点经理模样的中年人跨一步上前,刚想问点什么,老L又开腔了:你今年多大了?“经理”只得顺着回答:45。老L说,交钱吧,姑娘36。

老L眼睛往上瞄了瞄,话刚开头:“你今年……”又止住了,怪了,为何不说了?原来那人老L认识,你也认识,是大肚子大耳朵猪八戒,猪八戒像懂规矩似的自己报上了年龄:我今年3680岁,老L恢复了常态,说:如此,给你介绍的姑娘62岁。

这下,我也看出点门道来了:

Lookup(29,{18,18,20,22,25,28,29,30,33,36,46,48,60,62})=29

Lookup(45,{18,18,20,22,25,28,29,30,33,36,46,48,60,62})=36

Lookup(3680,{18,18,20,22,25,28,29,30,33,36,46,48,60,62})=62

Lookup 给你找的人一定不会比你大,同龄或者比你小的人中年龄最接近你的。

Lookup的档案中记载:如果函数 LOOKUP 找不到 lookup_value,则查找 lookup_vector 中小于或等于 lookup_value 的最大数值。

新来的是Match

不知为什么,第二天,Lookup 在良缘婚姻介绍所下岗了,新来的是Match,戴眼睛,说话文绉绉的。

无巧不成书,排在前面的还是那三位,我都认识。

Match 跟Lookup一样,也问,你今年多大了?那位还是回答,29。

Match胸有成竹,说,行,给你介绍7号姑娘。先生满心欢喜离开了。

第二位得到的回答是,行,给你介绍10号姑娘。

轮到猪八戒了,听说猪八戒当书记了,这猪书记早清楚,62岁的是高翠花,60岁的是梦中情人嫦娥,他费尽嘴舌,要Match给他换一个,Match就是不同意,说,这是原则。

打开Match的记录本,你看看:

Match(29,{18,18,20,22,25,28,29,30,33,36,46,48,60,62})=7

Match(45,{18,18,20,22,25,28,29,30,33,36,46,48,60,62})=10

Match(3680,{18,18,20,22,25,28,29,30,33,36,46,48,60,62})=14

9E+307是什么概念?

9E+307是科学记数,用普通记数法写是9后面有307个0,长长的……宋丹丹说了,那是相当的长啊。

如果你到这个年龄,还是到良缘婚姻介绍所找老L和小M,还是那本芳龄册,你说,他们给你介绍谁啊?

想找个18的?没门!

言归正传

你会说,这些我懂,不必费这么大劲,我就是想问个明白,为什么用9E+307?

你再返回上面,看看版主为我们写的公式,反正,在构思解题思路时,就有,把那串文本从第一个数字开始,依次取1位、2位、3位、4位……,总共有多长,最后就取多少位。

有一部分,它的结果不是数(这个处理办法你自己看明白),取出的结果是数值的,一定有一个是最大的,它一定排列在最后面(多举些例子,看看是不是这样),我们要取的就是最后面那个数。

为了娶到最后面那位,你就得把年龄往最大里吹,吹!

多少合适?9E+307。

=LOOKUP(562,{5;56;562;562;562;562;#VALUE!;#VALUE!;#VALUE!})

=LOOKUP(1000,{5;56;562;562;562;562;#VALUE!;#VALUE!;#VALUE!})

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

前面也一样返回562,为保险起见,我们用9E+307查找,为了返回数组中最大的值。

注:Lookup、Match都还有第三个参数,这个参数可以改变它的查找方式,如果你还不知道,一定要弄个明白,不要把责任推给山菊花,谢了。

有一天,良缘婚姻介绍所的姑娘起床太晚了,没有按照年龄大小排队,那么,老L就不能为顾客找到合适的姑娘了,对吗?

TA的精华主题

TA的得分主题

发表于 2006-11-25 23:19 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-11-26 10:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
QUOTE:
以下是引用chury11在2006-11-25 9:23:36的发言:

有一天,良缘婚姻介绍所的姑娘起床太晚了,没有按照年龄大小排队,那么,老L就不能为顾客找到合适的姑娘了,对吗?

这个理解不大对。

有一点要首先注意的,就是山菊花版主在14楼说的:

QUOTE:
注:Lookup、Match都还有第三个参数,这个参数可以改变它的查找方式,如果你还不知道,一定要弄个明白,不要把责任推给山菊花,谢了。

假定我们现在没有使用第三参数,就像这样的公式:

Lookup(9E+307,{38,18,20,22,25,28,22,19})

这说明,这次老L要找的是一个9E+307岁的人。

老L是个认死理的人。心中有一个永远不变的信条:来我这里的人,都是按年龄从小到大排队的(从来都是这样,他可不知道今天介绍所的姑娘起晚了,没给排队)lookup档案里说:Lookup_vector 中的值必须以升序顺序放置:...,-2, -1, 0, 1, 2, ...;A-Z;FALSE, TRUE。

他看了第一个,38,<9E+307,不要;第二个,不够岁数,也不要……一直到最后一个,19,也不不是9E+307。

从出生那天开始,老L他爹妈告诉他:找不到合适的,就找比9E307小点的,Lookup的档案中记载:如果函数 LOOKUP 找不到 lookup_value,则查找 lookup_vector 中小于或等于 lookup_value 的最大数值 他又以为这些人都排过队了,最后一个肯定是这里面最大的了。所以老L就拍板了:就是他了!19岁就是我要找的最大的了!老L很傻。

不过,老L也有聪明的地方。前面我说了老L从第一个开始,一个一个向下看。实际上,这只是我的想象。后来有一天我才发现(是看了老L的秘密档案以后。就是这个——LOOKUP的查找策略:老L尽管傻,却没有傻到这个地步。

有一天来了10000个人,他要是从头一个一个找,不是累死了?可是他不大一会就把活干完了。

怎么干的?原来,他采用聪明的策略:从中间开始!

先看第5000个人:45岁?比9E307小,不要!老L想了,既然第5000个都嫌小,那第1个到第4999个不是更小了吗?不用看了(老L就是这样执着,他坚信大家都会自觉排好队的。你们不遵守纪律,他可不管)

剩下5000个怎么办?他还从中间找(这是老L的法宝,他不会丢的),这次是7500号,不够条件;再找8750号……

嘿嘿,老L只找了13次,就把10000个人全找遍了——他说了:这最后一个就是我要的!

你说,老L真的傻吗?

这个办法你会吗?我可是没想到。

别说,还真有人会:MATCH,VLOOKUP,HLOOKUP,这些LOOKUP的表兄弟都会——只要不给他们戴上脚镣(第三参数)

看来老L的爹妈比谁都聪明。

TA的精华主题

TA的得分主题

发表于 2006-11-29 13:56 | 显示全部楼层

谢谢

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

能解释一下ROW()在这里的用途吗?

能用别的函数代替吗?

TA的精华主题

TA的得分主题

发表于 2006-12-6 15:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

太厉害,实在太厉害

TA的精华主题

TA的得分主题

发表于 2006-12-10 16:08 | 显示全部楼层

以前都用复杂的公式.今天学习了,很简短,实用!

谢谢山菊花等斑竹精彩的讲解!

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

本版积分规则

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

GMT+8, 2024-11-19 06:42 , Processed in 0.035285 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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