ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > 函数与公式 > 理解lookup数组形式用法的几点注意

理解lookup数组形式用法的几点注意

作者:绿色风 分类: 时间:2022-08-18 浏览:118
楼主
lrlxxqxa
我们都知道lookup函数有两种形式的用法:向量形式和数组形式。前者大家都很容易清晰的理解,对于后者,屡屡遇到很多朋友在此迷惑。

如下图所示,有此问:【在第A列,虽然找不到a,但是1比a小,为什么不返回1相对应的那行的最后一个数3?而是找不到?除非将1转换为文本型才可以得出结果3.是不是表示,数字和文本不能比较大小?】


 

我们先来看下F1帮助中的解释:



回到原问题,分析如下:

1、首先我们可以从构成判断LOOKUP("a",A1:C4)这个公式使用的是lookup的数组形式;那么lookup将在第一行或第一列中查找指定的值,并返回数组最后一行或最后一列内同一位置的值;
2、再看A1:C4这个区域,行数多于列数,也就是说lookup会在数组区域的第一列中查找;
3、再看查找的是"a",很明显第一列中没有找到,于是接着找小于"a"的最大值,结果也没有找到,所以返回#N/A 错误。

这个公式之所以返回错误,是因为lookup的第一参数是"a"是文本类型,所以lookup就在第二参数中查找和第一参数相匹配的文本,上面说了因为第二参数数组行数大于列数,所以在第一列中的文本数据中查找,第一列是{1;b;e;i},文本数据中没有找到a也没有找到比a小的,所以返回#N/A

当把1改为文本数值1就能返回3,是因为文本1比a小,这个1也是文本类型,所以lookup能够在第一列中找到小于a的最大值也就是这个文本1,返回他对应的3.
同理,如果不改数字1为文本,只改b为1a的话,会发现lookup返回其对应的c。
lookup的疑惑.rar
2楼
lrlxxqxa
关于lookup的这种数组形式到底是在首行查找还是在首列查找,很多朋友都觉得不好记,我说下自己的两种土办法:

1、就是记住lookup会选择在更长的条形区域内进行查找。
比如:数组区域行数大于列数(竖高区域),那么首列会比首行长,所以lookup会在首列查找;反之行数小于列数(矮宽区域),那么首行会比首列长,所以她会在首行查找;

2、还可以利用极限的思路,行数大于列数,就把数组区域想象成无限行单列区域,当然只能在首列查找;反之想象成无限列单行区域,当然只能在首行查找;

这样,遇到实际问题时就不会再混淆了。当然有更好的记法,可以跟帖回复,一起分享下。


近期看到的同类问题还有:
[函数与公式] 关于lookup函数的数组用法 http://www.exceltip.net/thread-15913-1-1.html

[函数与公式] 求助LOOKUP运用问题 http://www.exceltip.net/thread-16179-1-1.html
3楼
纵鹤擒龙水中月
学习了

免责声明

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

评论列表
sitemap