分享

Excel小课堂:引用的种种 & INDIRECT函数

 Sacbjc 2017-08-02

课前练习

1.平常我们打开EXCEL一般是这个样子滴:

Excel小课堂:引用的种种 & INDIRECT函数

突然有一天,你发现它怎么突然产生了异变!变成了下面这样:

Excel小课堂:引用的种种 & INDIRECT函数

知道这是什么情况么?R1C1引用在哪里设置呢?

2. 公式里大部分时候引用单元格,单元格名字都长这样:A1,B2,C3,那么$A1,A&1,$A$1又都是啥?这是想钱想疯了了?有时候还会看到R[5]C[2]这样的单元格名字又是个什么鬼?

3. INDIRECT函数是啥?INDIRECT('A1')和INDIRECT(A1)的区别在哪里?

今天的内容简单,所以课前问题就这么点点啦~

A1引用 v.s. R1C1引用

在开始讲之前先科普一点小概念:

EXCEL是有行标(默认A1模式下的ABCDE……)和列标(123456……)的,行标喝列标是可以关掉的(我觉得没人会这么干的),小开关在视图-显示-标题处。每个单元格是有名字的,专业点的说法叫地址,比如下图被激活的单元格,它的地址(名字)就是左上角我框出来的C6。

Excel小课堂:引用的种种 & INDIRECT函数

上面的这个图,以ABCDEFG等等等等表示列号的情况就是我们最最常见的,也是EXCEL默认的引用方式:A1引用。

Excel小课堂:引用的种种 & INDIRECT函数

而思考题中发生的列标也从字幕变身为数字的情况,就是很少出现在台前的R1C1引用,我们可以在文件-选项-公式里找到R1C1引用样式的小开关。

Excel小课堂:引用的种种 & INDIRECT函数

Excel小课堂:引用的种种 & INDIRECT函数

Excel小课堂:引用的种种 & INDIRECT函数

当你选中R1C1引用样式的时候,列标就也变身数字,自然也就没有A1,A2这样的单元格啦。而是变成了R1C1,R1C2这样的表示方法了,R是行,C是列。做个对比咯:

Excel小课堂:引用的种种 & INDIRECT函数

默认的A1引用样式

Excel小课堂:引用的种种 & INDIRECT函数

R1C1引用样式

相对引用 v.s. 绝对引用

相对引用

通常情况下,如果你在键入公式的时候,通过点击单元格来引用单元格的时候,单元格都长这样A1, B2, C3。这个就是默认的相对引用。当你在对公式进行复制,或者快捷下拉填充公式的时候,引用的单元格会随之改变。

Excel小课堂:引用的种种 & INDIRECT函数

比如这里,我们在M3引用了A1单元格,当你将这个单元格复制到下面的N4,O5,O6的时候,公式会随之改变。不管是行还是列都会根据被粘贴的单元格对复制单元格的相对位置进行位移。O4(被粘贴的单元格)在M3(复制的单元格)的下三行右两列,因此相对引用的单元格从A1变化为了C4。

公式这么随意任性的飘移不一定是个好事,还是拿讲过的VLOOKUP来举个小例子:

Excel小课堂:引用的种种 & INDIRECT函数

在H6我们用VLOOKUP函数对李明的原始分进行了查找,得了到非常正确的答案。于是我将这个公式从H6复制粘贴到了H7,却得到了#N/A的报错信息,说明函数没有能查找到汪梅的成绩。可是一眼我们就能看到汪梅有在B6:E10的原始数据内出现。如果仔细看看粘贴得到的公式:

Excel小课堂:引用的种种 & INDIRECT函数

原始数据的区域发生了相对位移,因为H7的位置在H6的下方一行,因此查找源数据的区域也向下位移了一行,从B6:E10变成了B7:E11,而汪梅不幸的不在位移过后的原始数据内了,因此出现了报错。

绝对引用

相对引用是一个爱好自由,热爱飘移的小伙伴;而绝对引用,就是一个雷打不动的老顽固。怎么让一个单元格从自由状态变为坚定不移呢,唔,给钱就好了呗。给行和列都加上$,它就坚定不移的保持立场咯。

Excel小课堂:引用的种种 & INDIRECT函数

我们对M3的公式从=A1变为=$A$1之后,把它再复制到N4,O5,O6,就永远是引用了A1的单元格啦。

对行or列绝对引用

上面的绝对引用是对行和对列都进行了固定,那有时候我们只需要固定行或者固定列呢?如果想固定行,就在数字前加$;如果想固定列,就在字母前加$。还是上面这个小例子:

=A$1我们固定住了行,没有固定列,因此复制粘贴单元格的公式后,公式只有列号发生了相对位移,而行永远是第一行。因此O5和O6的由于在同一列,粘贴后的公式完全一样。

再看看固定列的:

Excel小课堂:引用的种种 & INDIRECT函数

只有行数移动了,列不变,因此处在同一行的M3和O3的公式会是完全一致的。

R1C1下的相对引用和绝对引用

R1C1下也有相对引用和绝对引用哦。如果是R1C1,R2C2这种是绝对引用,而R[1]C1[1],R[-3]C[-5]这种带[]的就是相对引用。最有意思的是,在R1C1模式下,不管是绝对引用还是相对引用,你复制来复制去,粘贴来粘贴去,公式都长得一样,自己想想是为啥吧~

相对引用和绝对引用之间的切换

相对引用和绝对引用之间用F4可以实现快速的切换。原先=A1;第一次F4,变身=$A$1;第二次F4,变身=A$1;第三次F4,变身=$A1;第四次F4,回到最初状态=A1。

R1C1状态下也是一样,如果你的活动单元格是B2,公式为=R1C1,那么四次F4依次公式变为:=R1C[-1];=R[-1]C1;=R[-1]C[-1];=R1C1。R1C1状态下的绝对引用和相对引用混合其实还挺晕人的。

INDIRECT函数

Indirect是个引用函数,语法是:INDIRECT(ref_text, [a1])。先说说后面可选的[a1]。[a1]是个逻辑值,TRUE说明是A1样式的引用,FALSE就是R1C1样式的引用,默认情况下都是TRUE,A1样式的引用。

之后的参数ref_text就是你要引用的单元格了。

看看下面的小例子(C列的公式在D列)

Excel小课堂:引用的种种 & INDIRECT函数

C2的公式是=INDIRECT(A2), A2单元格中的内容为B2,因此公式的结果是B2单元格中的内容,结果为KeepLearn。

如果这时候A2单元格的内容是非单元格地址的东东,INDIRECT函数是会报#REF!的错误的:

Excel小课堂:引用的种种 & INDIRECT函数

再看看C3的公式:=INDIRECT('A2'),和上面的C2的公式就差一对双引号,得到的结果就不是A2的单元格中B2这个地址对应的值,而是A2单元格的内容B2。这个和你使用=A2或者=$A$2其实得到的结果一致,如下图,C列的公式依然在D列。

Excel小课堂:引用的种种 & INDIRECT函数

但是不论是=A2或者=$A$2都会因为单元格删除或新增而发生指向的变化,但是=INDIRECT('A2')就永远指向A2单元格。

例如上面这个例子,我先删除掉第一行:

Excel小课堂:引用的种种 & INDIRECT函数

删除之后,看下D列所有的公式除了=INDIRECT('A2')以外,其他所有的公式都相对往上移动了一行。A2全部变成了A1。

同样的,在原来的例子上增加一行的效果如下:

Excel小课堂:引用的种种 & INDIRECT函数

所有的A2变成了A3,除了=INDIRECT(“A2“)的公式。

因此,当你迫切希望引用的单元格非常非常恒定的时候,可以使用=INDIRECT('A2')的公式来确保单元格不因为你的增减单元格操作发生移动。

本文来源KeepLearn,作者:Vicky_Mel。版权归原作者所有。财会学堂整理发布。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多