BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / office-tool / #17198同步于 2009/1/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
OfficeTool机器人发帖

问:求最后一个数值

bluetear
2009/1/17镜像同步15 回复
在A1:A200的区域中,需要得到最下面的一个数值,该如何写命令呢 要是要倒数第二个数值,又如何写咧,用offset怎么写? 来个达人吧~~~ 找到一个 =LOOKUP(2,1/(A1:A200<>""),A1:A200) 但是看不懂,也帮忙解一下吧,3q
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
flycat机器人#1 · 2009/1/17
vba的话 Range("A200").Select Selection.End(xlUp).Select 函数不会... 【 在 bluetear (微) 的大作中提到: 】 : 在A1:A200的区域中,需要得到最下面的一个数值,该如何写命令呢 : 要是要倒数第二个数值,又如何写咧,用offset怎么写? : 来个达人吧~~~ : ...................
flycat机器人#2 · 2009/1/17
lookup具体的看excel帮助 不过应该不是实现这个用的. 【 在 bluetear (微) 的大作中提到: 】 : 在A1:A200的区域中,需要得到最下面的一个数值,该如何写命令呢 : 要是要倒数第二个数值,又如何写咧,用offset怎么写? : 来个达人吧~~~ : ...................
bluetear机器人#3 · 2009/1/17
就是想学函数的,vba的普遍适用性不强 【 在 flycat 的大作中提到: 】 : vba的话 : Range("A200").Select : Selection.End(xlUp).Select : ...................
bluetear机器人#4 · 2009/1/17
看了,但是没有这个好多分之一的介绍,所以没看懂,这个命令能实现最后一个数值的功能,我试验过了 【 在 flycat 的大作中提到: 】 : lookup具体的看excel帮助 : 不过应该不是实现这个用的.
flycat机器人#5 · 2009/1/17
你可以试下这个 =LOOKUP(9E+307,A1:A200) 不过我完全不懂这是为啥 【 在 bluetear (微) 的大作中提到: 】 : 看了,但是没有这个好多分之一的介绍,所以没看懂,这个命令能实现最后一个数值的功能,我试验过了
flycat机器人#6 · 2009/1/17
LOOKUP,MATCH,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查找,为了返回数组中最大的值。 9E+307是一个很大的数,很接近Excel计算允许的最大值,它好记,可以应付几乎所有的情况,所以,约定俗成而用它。 帮助中说,Variant 类型的数据正数最大值是 1.797693134862315E308,可是1E+308就出错了,这是为什么?因为 计算规范 功能 最大限制 数字精度 15 位 单元格中可键入的最大数值 9.99999999999999E307 最大正数 1.79769313486231E308 最小负数 2.2250738585072E-308 最小正数 2.229E-308 最大负数 -2.2250738585073E-308 注:Lookup、Match都还有第三个参数,这个参数可以改变它的查找方式
bluetear机器人#7 · 2009/1/17
恩,好的,能用,3q,lookup的帮助也没有说这个9E+307的含义,我换成几千的数值也可以用~~太诡异了 【 在 flycat 的大作中提到: 】 : 你可以试下这个 : =LOOKUP(9E+307,A1:A200) : 不过我完全不懂这是为啥
flycat机器人#8 · 2009/1/17
这个的原理就是从上往下搜和这个一样或者比这个大的数, 搜不到就返回最后一个。 9e+307就是一个很大的数而已 【 在 bluetear (微) 的大作中提到: 】 : 恩,好的,能用,3q,lookup的帮助也没有说这个9E+307的含义,我换成几千的数值也可以用~~太诡异了
flycat机器人#9 · 2009/1/17
不过这个方法找不出倒数第二个 【 在 flycat (曾经的小十九|狂拍组.最近火锅吃多了) 的大作中提到: 】 : 这个的原理就是从上往下搜和这个一样或者比这个大的数, : 搜不到就返回最后一个。 : 9e+307就是一个很大的数而已 : ...................