ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

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

[分享] INDIRECT浅析(胡剑开课了...)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2010-8-28 11:39 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:INDIRECT
本帖最后由 胡剑0227 于 2015-5-12 20:42 编辑

原发表于培训版块

INDIRECT浅析

        好,我们现在就来认识一下INDIRECT这个函数。INDIRECT 英文含义为 “间接的、迂回的”,那么我们就想其对应的 “直接的,直奔目标”的又是怎么个表现呢?作为引用,最直接的方式就是 书写 引用地址(如,"a1,b$1,sheet1!c1"),那么间接的呢?简单的讲就是将这些 引用地址 套上双引号,然后再传递给INDIRECT函数,比如 a1-->"a1"--->indirect("a1"),如下图所示。

                                     1初识函数.png
        到这里也许大家会觉得这是多此一举。是,在上面这个例子中确实有点多余,但很好地诠释了INDIRECT间接、迂回的特性。不过更重要的是,我们发现INDIRECTt具有剥离 引号 的作用。牢记这一点对理清该函数实际引用的地址非常有帮助。我们看下图

                                     2剥离引号.png

        我想对于第一个公式 =indirect("a1"),返回 "B1" 大家应该没有什么疑问,问题是=indirect(A1)返回"剥离引号",可能会有点混淆。虽然看着是这么回事,但有点不清晰。我们这么来做:=indirect(a1)=indirect("B1"),这样就明白了。(因为A1的值就是 "B1",这点要好好理解哟。如果会使用F9来计算值的话你会更加清楚的

        到这里,我想对函数的机制应该有点认识了。有同学可能会问,“有什么好处呀?”。好处就是智能、灵活。因为INDIRECT的参数是文本字符串,文本字符串可以灵活地进行组装。也就是说,一个目标地址可以通过多个单元格的内容来“生成”。我们还是来看一个图吧

                                     3灵活性展示.gif

         从上图我们可以看到,INDIRECT函数引用的地址具有非常好的可控性。这一切都得益于参数可以由文本字符串组装着来生成。很多参数类型为字符串的函数都有这种灵活性的优点(比如SUMIF的第二参数)。

        要组装这些目标地址必须先获知地址的表达格式,然后用上任何能想得到的方式来生成这个地址格式的文本形式。比如在上图中,地址格式为 "sheet1!b1" 这样的形式。如果我们对格式不确定时,最有效的方式就是用鼠标点选来提取正确的地址格式。这叫什么呢,投石问路。看图:

                              4投石问路.gif



        在上图中我们发现,当工作表表名称直接是数字的时,在工作表名称两边会添加上一对单引号。这一点平时不太容易注意,因此在实际使用时强烈建议使用这种投石问路的方式。

        好了,到这里为止,我想INDIRECT函数应该算是基本掌握了。现在再谈谈他的引用方式问题。该函数的函数语法为 =indirect(ref_text,a1),当第二参数省略,即 =indirect(ref_text)形式的时候使用的是 A1 引用格式,当 指定引用方式 的参数a1=0时,那么就是用 RC的引用格式。RC格式,比如R2C2,就是ROW 2,COLUMN2,就是 B2 单元格。实际使用时可以多一个选择。看图

                            5格式匹配.png

        扩展:如果某个名称引用了某个单元格区域,我们使用这个名称的时候相当于在操作其所引用的区域于是猜想,这种返回引用区域的名称也是一种地址...于是可以使用这个公式=indirect("名称")来引用特定的单元格区域。


如果 名称使用 OFFSET等引用函数生成的,那么可以 定义一个名称 数据源=EVALUATE("名称"),这样这里的名称可以使用OFFSET等函数生成的区域引用了。 引用定义名称0227.rar (8.12 KB, 下载次数: 4864)

随文附件.rar

7.84 KB, 下载次数: 5382

indirect.rar

7.52 KB, 下载次数: 6310

评分

参与人数 12鲜花 +19 收起 理由
AbleZeng + 2 太强大了
fifi0703 + 2 优秀作品
Rodevo + 2 优秀作品
hope9966 + 2 神解释,总算明白点这个函数了。
gwfzh + 2 优秀作品

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-8-28 11:41 | 显示全部楼层
居然抢了个沙发,要是占了版主的位置,请删除

为什么我看不到版主发的图片?

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-28 11:43 | 显示全部楼层
站位,培训版的没有链接过来。我会修改的

补充一句,INDIRECT在这里有 剥离 引号的作用,但剥离一次引号以后自己也就 “光荣”了。这样大家就不会陷入不断“追溯”根源的迷茫中。

[ 本帖最后由 胡剑0227 于 2010-8-29 08:18 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-8-28 11:43 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-8-28 11:54 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-8-28 11:55 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-8-28 11:58 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-8-28 12:03 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-8-28 12:04 | 显示全部楼层
多学一个函数,好多时候编写公式可以少走好多弯路。呵呵。

PS:打字快也是错?居然怀疑我灌水  - -!

TA的精华主题

TA的得分主题

发表于 2010-8-28 12:07 | 显示全部楼层
盛情期待!
感谢版主.
这回好好琢磨一下了

评分

参与人数 2鲜花 +3 收起 理由
难得一醉 + 2 优秀作品
xgy0214dxy + 1 感谢帮助

查看全部评分

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

本版积分规则

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

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

GMT+8, 2019-10-19 09:51 , Processed in 0.090053 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

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

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

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