INDIRECT 求解
excel吧
全部回复
仅看楼主
level 6
xmx417 楼主
返回由文本字符串指定的引用。此函数立即对引用进行计算,并显示其内容。当需要更改公式中单元格的引用,而不更改公式本身,请使用函数 INDIRECT。
语法
INDIRECT(ref_text,a1)
Ref_text 为对单元格的引用,此单元格可以包含 A1-样式的引用、R1C1-样式的引用、定义为引用的名称或对文本字符串单元格的引用。如果 ref_text 不是合法的单元格的引用,函数 INDIRECT 返回错误值 #REF!。
如果 ref_text 是对另一个工作簿的引用(外部引用),则那个工作簿必须被打开。如果源工作簿没有打开,函数 INDIRECT 返回错误值 #REF!。
如果 ref_text 引用的单元格区域超出行限制 1,048,576 或列限制 16,384 (XFD),则 INDIRECT 返回 #REF! 错误。
注释 此行为不同于 Microsoft Office Excel 2007 之前的 Excel 版本,早期的版本会忽略超出的限制并返回一个值。
A1 为一逻辑值,指明包含在单元格 ref_text 中的引用的类型。
如果 a1 为 TRUE 或省略,ref_text 被解释为 A1-样式的引用。
如果 a1 为 FALSE,ref_text 被解释为 R1C1-样式的引用。
请问什么是A1-样式的引用?
请问什么是R1C1-样式的引用、
请问什么是定义为引用的名称或对文本字符串单元格的引用?
请分别举例说明,谢谢~~~
2014年01月07日 08点01分 1
level 6
xmx417 楼主
这么大贴吧,来个高手解答下啊
2014年01月07日 08点01分 2
level 6
xmx417 楼主
@ wshcw @雪儿浪漫想 @zzmxy @wangxf92099 @1220小龙 @凝聚每分爱 @胡须客 @RuiWangChina @青水蛙鸣 @轻舟上逆 @ zipall
2014年01月07日 08点01分 4
level 6
xmx417 楼主
2014年01月07日 08点01分 5
level 6
xmx417 楼主
2014年01月07日 08点01分 8
吧务
level 12
我好像在那个工作日志里边提过,回头找下发给你
2014年01月07日 09点01分 9
求资料,谢谢~~
2014年01月08日 00点01分
吧务
level 15
类似于数学中的直角坐标和极坐标.
单元格坐标有两种表示方法,默认情况下是A1样式,可以在选项中选择R1C1样式.
以B1单元格为例
它可以表示为B1(B列第1行)或R1C2(第1行第2列)
indirect的参数2就是用来说明参数1是使用的哪种坐标系.
所以不管在哪种坐标系下,公式
=indirect("B1")

=indirect("R1C2",)
返回的是对同一个单元格的引用.
2014年01月07日 09点01分 10
谢谢!
2014年01月08日 00点01分
吧务
level 15
10楼中的"B1","R1C2"属于"文本字符串单元格"
选择A1:C5后在名称框(编辑栏最左侧的小框)里输入data后回车 就将A1:C5定义成了名为data的名称(当然你也可以ctrl+f3在名称管理器里新增或修改名称)
然后就可以用 =indirect("data") 返回对名称data代表的区域A1:C5的引用.
2014年01月07日 09点01分 11
谢谢!
2014年01月08日 00点01分
吧务
level 10
[狂汗] 至于嘛……
2014年01月07日 10点01分 12
不懂就要问,我可不想做个糊涂蛋。。
2014年01月08日 00点01分
回复 xmx417 :不懂是需要问,但这问题稍微百度一下就有详尽的答案,自学能力才至关重要,而且感叹的是至于@ 这么多人么……◐▂◐
2014年01月08日 01点01分
吧务
level 12
这几天工作太忙, 没有做什么新的东西, 今天在加班前留点东西吧。
单元格引用(单个单元格)
这应该是基础的基础,明白了这个以后对灵活运用Excel有很大的帮助。
单元格直接引用通常有两种形式。一种是大家常见的A1,还有一种是R1C1,一般用过宏的人都应该见过。两种格式其实没特殊区别,而且Excel都可以接受,不过系统默认的是第一种。
A1 表示 列A行1 的单元格
R1C1 表示 第1行第1列 的单元格
区别在于一个用字母表示列,一个用数字,各有所长。
说到这里介绍下绝对引用和相对引用。简单的来说,如果你复制了一个公式到另外的一个位置,那么公式引用的单元格会自动发生变化,规则如下。
如果B2的公式为 =A1, 那么如果你复制该单元格,粘贴到C3的话,C3公式会自动变成 =B2
即 =A1 所在单元格向下一行,向右一行 =B2
这就是普通的相对引用,绝对引用就是在行或列前添加一个$符号,那么复制粘贴的时候对应的行或者列就不会移动。如上边的例子
B2 = A1 复制到C3 = B2
B2 = $A1 复制到C3 = $A2
B2 = A$1 复制到C3 = B$1
B2 = $A$1复制到C3 = $A$1
有的时候因为相对引用,复制粘贴的时候会出现#REF的情况,如B2为=A1,复制B2到B1的时候因为不存在A0的情况,所以就会变为#REF.
这是对于A1的用法,R1C1的语法有些不同
R1C1为绝对引用,相对引用的方法是用[]把数字括起来,无数字表示当前行或者列
RC1表示本行的第一列
R1C1表示第一行第一列
R[1]C1表示下一行第一列
R[-1]C[1]表示上一行下一列
如果在Excel单元格中利用这种方式,通常需要用到Indiect(,0)函数。
简单举例RC和INDIRECT的一个用法,我们做一个公式来将所在单元格左边的内容变成大写。
=UPPER(INDIRECT("RC[-1]",0))
这个公式可以被复制到任何地方,都可以起作用,不需要知道所在单元格的位置。贴吧经常有人上图不上坐标的,有很多高手迫不得已只好这样给公式。
RC在vba中的用途广泛一点,个人的习惯是直接对一个区域的单元格给出公式,这样的话有两个好处,一不用复制公式,个人不喜欢在vba里边用复制功能因为调用系统资源有的时候会引起冲突导致出错,二,在手动计算的情况下,区域输入的公式都会被计算,而不需要做重新计算来获取结果,在数据或公式量大的情况下可以节约时间。因为是对于一个区域进行操作,输入单元格的坐标不是唯一的,那么用A1的这种方法来考虑相对位置就要麻烦些,RC方法更为直观。
2014年01月08日 00点01分 13
谢谢分享,很有用
2014年01月08日 04点01分
1