ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH云课堂-专业的职场技能充电站 Excel转在线管理系统,怎么做看这里 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 高效办公必会的Office实战技巧 免费下载Excel行业应用视频
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 741|回复: 15

[已解决] 用了indirect公式出错,怎么修改公式,谢谢!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-5-22 20:15 | 显示全部楼层 |阅读模式
大侠们,用了indirect公式出错,怎么修改公式,谢谢!

帮忙检查下怎么改公式.rar

26.69 KB, 下载次数: 18

TA的精华主题

TA的得分主题

发表于 2017-5-22 20:30 | 显示全部楼层
因为VLOOKUP(102,INDIRECT("'"&$P$1&"'!$A:$S"),MATCH(统计表!E$3,INDIRECT("'"&$P$1&"'!$A$2:$S$2"),0))
VLOOKUP第四参数缺省,是模糊匹配
改成:
=IF(OR($D7=0,$D7=""),0,VLOOKUP($D7,INDIRECT("'"&$P$1&"'!$A:$S"),MATCH(统计表!E$3,INDIRECT("'"&$P$1&"'!$A$2:$S$2"),0),0))

TA的精华主题

TA的得分主题

发表于 2017-5-22 20:42 | 显示全部楼层
本帖最后由 wangjguo44 于 2017-5-22 20:44 编辑

你写的公式出这个结果,丝毫没有错:
1、首先D6:D7本来就不应该输入102、103,因为《输入1》中本来就没有这两个学号,你“无中生有”,它也只好“将错就错”回答你了;
2、E5等公式中VLOOKUP($D6,INDIRECT("'"&$P$1&"'!$A:$S"),MATCH(统计表!E$3,INDIRECT("'"&$P$1&"'!$A$2:$S$2"),0))中没有第四参数,属模糊查找,语法规定,模糊查找返回小于等于第一参数的位置对应值(且第二参数首列必须严格升序),查找值102、103就得返回101对应的姓名!(改成精确查找,就会因查不到而给出错误提示#N/A)

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-22 20:56 | 显示全部楼层
七夕、 发表于 2017-5-22 20:30
因为VLOOKUP(102,INDIRECT("'"&$P$1&"'!$A:$S"),MATCH(统计表!E$3,INDIRECT("'"&$P$1&"'!$A$2:$S$2"),0))
...

谢谢!明白了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-22 21:02 | 显示全部楼层
wangjguo44 发表于 2017-5-22 20:42
你写的公式出这个结果,丝毫没有错:
1、首先D6:D7本来就不应该输入102、103,因为《输入1》中本来就没有 ...

我原先用IF和ISERROR来消错(我用2003版),但公式一直出错,后来改成用IF(OR($D7=0,$D7="")来表示。=IF(ISERROR(VLOOKUP($D7,INDIRECT("'"&$P$1&"'!$A:$S"),MATCH(统计表!E$3,INDIRECT("'"&$P$1&"'!$A$2:$S$2"),0),0)),0,VLOOKUP($D7,INDIRECT("'"&$P$1&"'!$A:$S"),MATCH(统计表!E$3,INDIRECT("'"&$P$1&"'!$A$2:$S$2"),0),0)))这个公式能帮我修改下吗?谢谢!

TA的精华主题

TA的得分主题

发表于 2017-5-22 21:12 | 显示全部楼层
本帖最后由 wangjguo44 于 2017-5-22 21:14 编辑
e8828369 发表于 2017-5-22 21:02
我原先用IF和ISERROR来消错(我用2003版),但公式一直出错,后来改成用IF(OR($D7=0,$D7="")来表示。=IF( ...

建议从源头上铲除产生问题的根源——D列不要输入,而是用公式取得存在的数据、排除不存在的“无中生有”,这样其他列(包括E列)以D列为依据提取返回!(若不从根子上解决,得到的表格产生空行(或全部为0行),不好看!)

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-22 21:17 | 显示全部楼层
七夕、 发表于 2017-5-22 20:30
因为VLOOKUP(102,INDIRECT("'"&$P$1&"'!$A:$S"),MATCH(统计表!E$3,INDIRECT("'"&$P$1&"'!$A$2:$S$2"),0))
...

怎么消错?有错的话,总分就不能相加了,结果怎么用0代替#N/A?谢谢!

TA的精华主题

TA的得分主题

发表于 2017-5-22 21:28 | 显示全部楼层
e8828369 发表于 2017-5-22 21:02
我原先用IF和ISERROR来消错(我用2003版),但公式一直出错,后来改成用IF(OR($D7=0,$D7="")来表示。=IF( ...

源头上消除:D5
  1. =INDEX(INDIRECT($P$1&"!A:A"),SMALL(IF(INDIRECT($P$1&"!A3:A100")<>"",ROW($3:$100),4^8),ROW(A1)))
复制代码


EH(Wjg)c.rar (36.29 KB, 下载次数: 6)

TA的精华主题

TA的得分主题

发表于 2017-5-22 21:34 | 显示全部楼层
如果统计表与各分表的表头科目顺序一致,还可以把MATCH函数去掉,用column(b:b)表示引用列标号

TA的精华主题

TA的得分主题

发表于 2017-5-22 21:41 | 显示全部楼层
学着做了一下,公式改了一下,也对源表进行了小改造,希望能帮到你。

帮忙检查下怎么改公式.zip

308.6 KB, 下载次数: 10

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

本版积分规则

关注官方微信,每天学会一个新技能

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

GMT+8, 2019-8-25 04:43 , Processed in 0.110024 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

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

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

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