ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

VLOOKUP能用在不同的工作表中吗?-->gvntw转移

[复制链接]

TA的精华主题

TA的得分主题

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

VLOOKUP能用在不同的工作表中吗?-->gvntw转移

在请问:我在B1写入

=VLOOKUP(A1,'2'!A1:B5,2,0)

之后下拉为什么只有A1显示出来111,之后的数据都是显示的N/A

还请问VLOOKUP不是对比一次就可以了吗?

为什么楼上的解决办法却用到了2次甚至3次VLOOKUP

我看到很多地方都重复使用这句VLOOKUP

能否帮我解读一下!

=IF(ISERROR(VLOOKUP(A1,'2'!$A$1:$B$5,2,0)),VLOOKUP(A1,'3'!$A$1:$B$5,2,0),VLOOKUP(A1,'2'!$A$1:$B$5,2,0))

TA的精华主题

TA的得分主题

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

给你个更短的——只用1次vlookup

=VLOOKUP(A1,IF(COUNTIF('2'!A:A,A1),'2'!A:B,'3'!A:B),2,)下拉复制。

表示用A1做关键字,在(如果2!A:A含有A1的内容,就在2!A:B,否则在3!A:B)里找。

to 11楼:

=VLOOKUP(A1,'2'!A1:B5,2,0)——问题在于:

1、'2'!A1:B5中的A1:B5未设置绝对引用,所以下拉复制时变为'2'!A2:B6、'2'!A3:B7……

2、有的内容在2表找不到,比如甲二,当然返回#N/A了。

3、解读:=IF(ISERROR(VLOOKUP(A1,'2'!$A$1:$B$5,2,0)),VLOOKUP(A1,'3'!$A$1:$B$5,2,0),VLOOKUP(A1,'2'!$A$1:$B$5,2,0))

用iserror函数判断vlookup函数是否出错(其实vlookup出错的类型肯定是#N/A,所以可以用isna函数代替iserror),则整个公式就不难解读了:

即:如果vlookup在2表查找引用出错,则在3表查找引用,否则(即没有出错)在2表查找引用。

TA的精华主题

TA的得分主题

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

再个一个,不过不是查找引用,而是分类汇总:

=SUM(SUMIF(INDIRECT({2,3}&"!A:A"),A1,INDIRECT({2,3}&"!B:B")))下拉复制。

这个公式会将2、3表中与A列姓名一致的数据相加汇总。而vlookup只返回第一个(比如2表有2个以上的甲一,vlookup只返回第一个的数量)

且:这个公式适用于工作表多且工作表名规范、表格结构规范一致的情况,比如2、3、……100这么多个工作表要这样汇总,写vlookup的if不累死掉啊,用这个:

=SUMPRODUCT(SUMIF(INDIRECT(ROW($2:$100)&"!A:A"),A1,INDIRECT(ROW($2:$100)&"!B:B")))

TA的精华主题

TA的得分主题

发表于 2006-3-5 21:28 | 显示全部楼层

如果非要用vlookup,还有一个办法:(针对重复发的那个帖子http://club.excelhome.net/dispbbs.asp?boardid=1&id=153963)

=VLOOKUP(A1,INDIRECT(LOOKUP(2,1/(COUNTIF(INDIRECT({2,3,4,5}&"!A:A"),A1)=1),{2,3,4,5})&"!A:B"),2,)

注意“甲六”后面的空格还是没有去掉,将会导致错误。

或者: =VLOOKUP(A1,INDIRECT(LOOKUP(2,1/(COUNTIF(INDIRECT(ROW($2:$5)&"!A:A"),A1)=1),ROW($2:$5))&"!A:B"),2,) ——奇怪!竟然也是个普通公式就可以了。呵呵。
[此贴子已经被作者于2006-3-5 21:32:06编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-3-5 21:45 | 显示全部楼层
谢谢gouweicao78!不好意思,没注意看你的回复,否则也不会重复发帖,因为原帖只是在两个表中查找......

TA的精华主题

TA的得分主题

发表于 2006-3-5 21:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
最后一个公式以前好像见过gvntw版主或者谁写过,没记清楚,自己刚才慢慢写出14楼第一个公式后再改为第二个公式,按以往的经验,indirect用row()做引用需要按Ctrl+shift+enter结束,{2,3,4,5}为常量数组则不用,这次竟然也不用按三键。感觉有点意外!见附件:(18楼) 我觉得——这个问题(为何14楼最后一个公式不用按三键)的主要原因在于lookup函数! lookup是无法生成数组(这句话有错,后面已有新解释,即lookup第一参数为数组的情况,特此更正,避免误导他人——函数帮助:“函数 LOOKUP 的数组形式是在数组的第一行或第一列中查找指定数值,然后返回最后一行或最后一列中相同位置处的数值。如果需要查找的数值在数组的第一行或第一列,就可以使用函数 LOOKUP 的这种形式。当需要指定列或行的位置时,可以使用函数 LOOKUP 的其他形式。” 所以indirect(lookup()……得到的并非数组。所以不用按三键! 不知道这个理解是否正确,还请版主及高手们指正为盼,谢谢! 另:此题题目及解法均为函数,并非基础应用,请版主转移到函数版块吧。
[此贴子已经被作者于2006-3-6 14:22:24编辑过]

x9akfjPR.rar

3.77 KB, 下载次数: 393

VLOOKUP能用在不同的工作表中吗?-->gvntw转移

TA的精华主题

TA的得分主题

发表于 2006-3-5 22:34 | 显示全部楼层

LOOKUP本身支持数组,本身不用三键。indirect所使用的参数是LOOKUP取出的那个结果值参与计算的引用文本,不存在数组,所以不用三键结束。

TA的精华主题

TA的得分主题

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

Lookup本身支持数组,所以不用三键结束。

这里的lookup计算结果已经是单值了,所以后面也就没有用三键的必要了。

TA的精华主题

TA的得分主题

发表于 2006-3-5 22:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用[I]apolloh[/I]在2006-3-5 22:37:46的发言:

Lookup本身支持数组,所以不用三键结束。

这里的lookup计算结果已经是单值了,所以后面也就没有用三键的必要了。

谢谢老大解释! 第一句我理解,从函数帮助就可以看到有2个语法(向量和数组)。 第二句:这里的lookup计算结果已经是单值了”我就觉得有些奇怪了,lookup计算结果能不是单值吗?即lookup能生成数组吗? 对附件修改如下:(06-3-6再次修改,更正lookup不能返回数组一说) Gk4LKe71.rar (4.37 KB, 下载次数: 173)
[此贴子已经被作者于2006-3-6 14:29:07编辑过]

F54wCQsC.rar

4.18 KB, 下载次数: 152

TA的精华主题

TA的得分主题

发表于 2006-3-5 23:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用[I]gouweicao78[/I]在2006-3-5 22:45:58的发言:[BR]
以下是引用[I]apolloh[/I]在2006-3-5 22:37:46的发言:

Lookup本身支持数组,所以不用三键结束。

这里的lookup计算结果已经是单值了,所以后面也就没有用三键的必要了。

谢谢老大解释! 第一句我理解,从函数帮助就可以看到有2个语法(向量和数组)。 第二句:这里的lookup计算结果已经是单值了”我就觉得有些奇怪了,lookup计算结果能不是单值吗?即lookup能生成数组吗?
Lookup当然能生成数组,当第一个参数为数组时,其结果会是数组。 请参见 http://blog.excelhome.net/UploadFiles/2006-2/23934696.rar 最后一种解法。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-26 23:31 , Processed in 0.044894 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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