你真的理解了相对引用?这三点95%的人都不会,你呢?
最近推送的五篇文章:
注:本小节是给新手看的,熟手可以跳过本小节直接看后面三节。
我们知道单元格地址是用行号与列标组合在一起表示 ,比如A1就表示A列与第一行的交叉点那个单元格。单元格的引用类型有三种:
1、相对引用:形式为A1
2、绝对引用:形式为$A$1
3、混合引用:形式为$A1、A$1
上面四种写法都表示A1单元格,只是在将单元格的公式复制或填充到其他单元格时其作用不同而已。
相对引用表示将甲单元格的公式应用到乙单元格时,公式中的单元格会根据单元格的相对位置而相应变化。就象人和影子的关系一样,人往左移动二步,影子也往左移动二步,人往前走二步,影子也会往前走二步。如下图:


也就是说,在单元格地址的行号和列标前都加美元符号,就是绝对引用。
上图公式中的B$2就是混合引用,它的公式往下填充时不会变化,往左右拖动填充时,引用的列会随之变化。
一句话总结就是:想让引用的单元格不随行的位置变化那就在行号前加$,不随列的位置变化而变化就在列号前加$。
正确地使用单元格的引用类型,可以极大的提高公式的应用范围,这是函数进阶的必备技能。
案例一:下图在B列统计每个人是第几次,那么就使用公式:
=COUNTIF($C$3:C3,C3)

案例2:前二天推送的用SUBTOTAL批量向下求和的公式:
=SUBTOTAL(9,E3:E$16)*2-SUM(E3:E$16)

如果你认为单元格引用类型只是在单元格公式中使用,那么你太小瞧它了,实际上它还有下面几种应用:

那么,要在E列相应单元格计算金额,就可直接输入公式“=金额”即可:


如果使用绝对引用,则不会随单元格变化而变化,如下图定义名称中的$G$1:


需要强调的是:
定义名称时,如果是使用相对引用、混合引用,那么定义名称时活动单元格与公式所引用的单元格的相对位置,决定了后期应用自定义名称所引用的单元格。
比如,如果我们选定单元格F4(活动单元格是F4),再定义名称“金额”:
=C3*D3

C3在F4的上面第一行左边第三列的单元格,
D3在F4的上面第一行左边第二列的单元格,
那么,在E3单元格输入公式“=金额”,公式所应用的单元格就是
在E3的上面第一行左边第三列的单元格,即B2单元格,
在E3的上面第一行左边第二列的单元格,即C2单元格,

也就是说,根据相对引用的规则,E3的公式相当于是“=B2*C2”,
E4的公式相当于是“=B3*C3”,其余类推。
这一点我们通过点击名称管理器,也能看出定义名称应用到当前单元格时,所实际引用的单元格。

但是,在条件格式和高级筛选中应用相对引用,就没这么好理解了。


只是C列正确地设置了相应的底色,D列、E列并没有正确设置为橙黄色。这是选定的活动单元格是C5,使用的公式是=E5>10。
此公式应用到D5单元格时,就是:=F5>10,其结果为FALSE;
应用到E5单元格时,就是=G5>10,其结果为FALSE。
所以D5、E5都不会显示橙黄色底色。D列E列其他单元格以此类推。
为了验证上面的描述,我们可以在F5、G5单元格输入大于10的数字,条件判断公式的结果就是TRUE,那么F5、G5就会自动设置为橙黄的底色,如下图:

特别说明:
我们在C5:E12单元格区域设置了条件格式后,不管选定此区域内的哪个单元格,点击条件格式-管理规则-编辑格式规则,看到的公式都是
=E5>10
并不会象自定义名称中,会根据选定单元格的不同,定义名称中的公式会自动变化。
如下图:

应该说,在条件格式中使用的相对引用单元格(上图中的E5),更象是一个指代符号,尽管它实际引用的单元格会随所应用单元格的位置变化而变化,但在条件格式中显示的公式都是一成不变的。这一点让新手很难理解。
为了让C5:E12根据E列的数字大小来确定是否显示为橙黄色,上面的条件格式的公式应该使用混合引用,将列号锁定不变:
=$E5>10

从上面的应用可以看出,不管是在自定义名称,还是在条件格式中,公式中的单元格与活动单元格的相对位置决定了后期应用自定义名称所引用的单元格。关于活动单元格的更多应用,请参见之前的文章:


筛选后结果如下图:

用作条件的公式必须使用相对引用来引用第一行数据中相应的单元格。
公式中的所有其他引用必须是绝对引用。