ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] [分享]《lookup向量形式 》扩展性及向量方向问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-6-26 14:44 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 13732120571 于 2015-6-27 10:49 编辑

lookup向量形式,看红色结果为什么超范围了,怎么还没出错?他返回的是哪里的值?
以2003版为例
查找是从1行开始,返回的是从3行开始的
找到是最后一行,65536行,那么返回的是65538?
可是结果没有返回错误,又找不到它出自哪里。

红色区域的引用了哪里的值

红色区域的引用了哪里的值

猜想

猜想


lookup.rar (4.58 KB, 下载次数: 181)

厚颜小结
感谢大家关注和参与
把大家讨论的归纳下,
我眼高手低,小结的不好不对的地方
请大家多指教

小结

小结


附件:
lookup -2.rar (5.23 KB, 下载次数: 67)


评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-6-26 14:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我测试几次,到现在还没找到
真的很诡异~~

TA的精华主题

TA的得分主题

发表于 2015-6-26 15:11 | 显示全部楼层
帮助文件中说:

result_vector 参数必须与 lookup_vector 参数大小相同

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-6-26 15:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
佩服海鲜老师的专研精神。
我觉得这个公式
  1. =LOOKUP(E9,A2:A9,--B3:B4)
复制代码
之所以出错是因为,公式先处理了--B3:B4,这样第三参数就变成了数组而不是单元格的引用。这是有差别的,差别在于直接用单元格引用
  1. =LOOKUP(E9,A2:A9,B3:B4)
复制代码
,这样第三参数是可以自扩展的(结果是17),但是对B3:B4先做减负运算,他便不在是单元格引用,只是固定的{12;13}数组了,没办法自扩展所以会出错。
按照上面的理解就可以解释红色产生0的原因。由于9^9大于65536,第三参数会自动扩展到与row(a:a)对应的3:65536+2,但后两个在单元格中无法表示出来,所以是0。其实这和你查
  1. =LOOKUP(65535,ROW(A:A),B3:B7)
复制代码
结果是0(返回的是B65537的值--看不见的0),是一个道理的。但是如果你查
  1. =LOOKUP(65534,ROW(A:A),B3:B7)
复制代码
,他返回的就应该是B65536的值了。

不知道我理解的对不对,也不知道说的清不清楚。
有机会看到lookup的反编译代码,再过来切磋,呵呵。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-6-26 15:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
祝洪忠- 发表于 2015-6-26 15:11
帮助文件中说:

result_vector 参数必须与 lookup_vector 参数大小相同

谢谢老师关注请教老师
对于下面图片是否有不妥的地方?


比较.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-6-26 15:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
hsw212 发表于 2015-6-26 15:18
佩服海鲜老师的专研精神。
我觉得这个公式之所以出错是因为,公式先处理了--B3:B4,这样第三参数就变成了 ...

谢谢老师参与
1)你说的第一个问题我也这样想,lookup向量形式变成数组形式,失去了他的扩展的可能
2)这个也是猜测,没有可以佐证的数据和公式,我也不清楚。
   前几天刚看到丢丢老师的一个讨论贴
一个小问题 测试:如何引用 A0 单元格
猜测是不是循环的~~,可惜没能找到~

TA的精华主题

TA的得分主题

发表于 2015-6-26 16:01 | 显示全部楼层
本帖最后由 丢丢表格 于 2015-6-26 16:44 编辑
13732120571 发表于 2015-6-26 15:31
谢谢老师参与
1)你说的第一个问题我也这样想,lookup向量形式变成数组形式,失去了他的扩展的可能
2) ...

=LOOKUP(参数1,参数2,【参数3】)
1、 参数 1 省略时, 为 0 值 。
2、 参数3 可以没有 、但不可省略。
3、 一般要求参数2 与参数3 队列大小相同、
     当 参数 2 与 参数 3 队列大小不同时。
  (1)、以参数 2 为准, 多于参数2 的,忽略。  
(2)、少于参数2 的, 自动以引用区域补齐。

(这是我的理解,不知大家是否认可)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-6-26 16:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 13732120571 于 2015-6-26 16:08 编辑
丢丢表格 发表于 2015-6-26 16:01
=LOOKUP(参数1,参数2,【参数3】)
1、 参数 1 省略时, 为 0 值 。
2、 参数3 可以没有 、但不可省略 ...

老师的想法大部分能明白只是 :

(2)、少于参数2 的, 自动以空值补齐 。
那老师对于公式1和公式2的区别怎么解释?
老师的意思是扩展到没能找到单元格的情况下,补以空值?

TA的精华主题

TA的得分主题

发表于 2015-6-26 16:35 | 显示全部楼层
本帖最后由 看见星光 于 2015-6-26 16:38 编辑

和SUMIF一样,自动扩展只支持区域引用(当然,SUMIF求和范围天生也不允许用非区域数组)。和SUMIF不同的是,如果是单个单元格,LOOKUP默认是横向扩展,如果连续单元格区域,首先以result_vector的首个单元格地址和lookup_vector进行对等高度,然后再向下扩充或者缩进到和lookup_vector尺寸相同的位置。扩充的情况,扩充的内容不是空白,而是扩充范围内实际单元格的内容

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-6-26 16:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
13732120571 发表于 2015-6-26 16:07
老师的想法大部分能明白只是 :

(2)、少于参数2 的, 自动以空值补齐 。

不是补空值,只是扩充范围内实际单元格的内容是空白,所以返回0(在公式中,单元格为空,则返回0),如果实际单元格非空白,则会返回实际单元格的内容。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-26 12:03 , Processed in 0.045655 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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