单元格绝对引用与相对引用

发布网友 发布时间:2024-08-20 12:45

我来回答

1个回答

热心网友 时间:2024-08-31 07:08

在编写公式时,引用单元格或者单元格区域是最平常不过的操作了。Excel将单元格引用分成绝对引用、相对引用和混合引用,如果行号列标前面有$号,则是绝对引用,否则是相对引用。

认识单元格引用

我们使用下图1至图4来演示单元格引用。

如图1所示,使用绝对引用,即引用单元格的行号列标前都带有$号。单元格C2中的公式为:

=$A$1+10

下拉至单元格C8,结果均为11。

如果我们查看这些单元格中的公式,会发现都与单元格C2中的公式相同。这表明,使用绝对引用的单元格,无论怎么变化,该单元格都保持不变。

在公式中,常使用绝对引用来作为单元格区域的起始点。

图1

图2所示为相对应用,在单元格F2中的公式为:

=A1+10

向下拉时,随着行的变化,单元格引用也会随之变化,所得到的结果也跟着变化。例如,单元格F8中的公式为:

=A7+10

可将图2中的列C与列F比较,体会绝对引用与相对引用的不同。

图2

图3所示为混合引用,行为绝对引用而列为相对引用。

可以看出,由于行不变,因此同一列中的结果相同,不同列中的结果发生变化。

图3

图4所示也为混合引用,行为相对引用而列为绝对引用。

此时,行随着单元格发生变化但列总是A列,因此两列的结果相同。

图4

从上面的介绍可以看出,绝对引用不会随单元格的变动而变化,很好理解。但相对引用会作出相应的调整,而这正是公式的精妙之处。

下面我们重点介绍Excel的相对引用原理。

相对引用原理

下图5所示的工作表中,我们要求水果的销售额,很显然,使用列B中的单价乘以列C中的销量即得到销售额。因此,要得到苹果的销售额,就在单元格D2中输入公式:

=B2*C2

图5

同理,要得到其他水果的销售额,就在列D中相应的单元格输入列B乘以列C单元格的公式。如果数据很多,这样一个一个输入将费时费力。实际上,在单元格D2中输入公式后,我们可以拖动复制该单元格公式至下方所有要计算的单元格,快速计算出结果,如下图6所示。

图6

Excel会自动调整,让公式使用正确的单元格,从而得到我们想要的结果。

上面的操作,是我们在Excel中经常会进行的操作,通过在一个单元格中输入公式,然后拖动公式到指定的单元格,自动获得想要的结果,非常方便快捷。

为什么能够这样呢?

其实,这些看似轻松平常的操作背后,蕴藏着Excel的相对引用原理。

回到上面的例子,再看看单元格D2中的公式,表面上看,表示单元格B2的值乘以单元格C3的值,但实际上应该是“本单元格左侧第2个单元格的值乘以左侧第1个单元格的值”。公式向下复制后,虽然单元格变了,但表示的意思仍然是本单元格左侧第2个单元格的值与左侧第1个单元格的值相乘。

也就是说,我们看到的只是表象。在使用相对引用时,Excel是以相对于输入单元格的位置来处理单元格地址的。

这就是Excel的相对引用原理。

理解相对引用原理非常重要,它是理解Excel公式运算以及在名称、数据有效性和条件格式等应用的基础。下面再举一个例子。

如下图7所示的工作表,在单元格C5中输入公式:

=A1+200

表面上看,是求单元格A1中的值加上200后的结果,而实际上Excel认为是将基于当前单元格向上4行向左2列的单元格的值加上200。

图7

拖动单元格C5复制公式至单元格C6,结果如下图8所示,基于当前单元格C6,相关单元格相应地调整为单元格A2。

图8

将单元格C5复制到单元格E7,此时公式变为:

=C3+200

即,公式中相关的单元格调整为基于当前单元格E7向上移4行向左移2列的单元格C3,如下图9所示。

图9

上述操作也表明,相对引用是Excel默认使用的引用方式。因此,要结合工作表实际要求来正确使用。如果不正确的使用相对引用,有时会得到错误的结果。

如下图10所示的工作表,交税金额为工资总额乘以税率。我们先在单元格B1中输入公式:=A2*D2,然后向下拖至单元格B5,显然除B2中的值正确外,其它单元格中的值都是错误的。

图10

这是因为按照Excel默认的相对引用方式,会自动调整相关单元格,特别是列D中的单元格,如下图11所示。列D中的单元格除D2外,都为空,因此除单元格B2外,其它单元格的值为0。

图11

然而,我们需要的是列A中的单元格随当前单元格的位置改变而自动调整,但列D中的单元格永远固定在单元格D2。此时,就需要运用单元格的绝对引用,如下图12所示。

在单元格B2中输入公式:

=A2*$D$2

向下拖动复制公式至单元格B5,得到正确的结果。

图12

在上面的公式中,$D$2是绝对引用,不会随着单元格自动调整。

当我们需要一直使用某单元格或者单元格区域时,就应该使用绝对引用。

当然,还可以使用混合引用,例如D$2表明行不变而列可以变化,$D2表明列不变而行可以变化。

例如下图13所示的工作表,我们要计算3种不同税率下的交税金额。在单元格B5中输入公式:

=$A5*A$2

向下拖动至单元格B8,向右拖动至列D。绝对引用的行或者列不变,而使用相对应用的行或者列将自动调整获取正确的单元格数据。

图13

相对引用应用示例

示例1:在条件格式中的相对引用

如下图14所示的工作表,要求对分数小于60的单元格背景色设置为红色。使用公式:

=$B2<60

列固定而行随着单元格调整。

图14

注:条件格式中使用的公式中的单元格引用,是基于公式中所选单元格区域左上角的引对引用。

示例2:在数据有效性中的相对引用

与条件格式一样,在设置数据有效性的公式中包含的单元格引用,也是其于所选区域左上角单元格的相对引用。

如下图15所示的工作表,我们在列A中设置了数据有效性,使得用户在列A中不能输入重复数据。

图15

其中,使用了公式:

=COUNTIF(A:A,A1)=1

当我们选择列A中任一单元格时,公式会自动调整到当前单元格,如下图16所示。

图16

注意到,公式中使用的A:A也是相对引用,因此可以很容易地将列A中的不允许输入重复值的功能复制应用到其他列。

示例3:在名称中的相对引用

选择工作表单元格A1,在“新建名称”对话框中定义名称GetRightCellValue:

=Sheet7!B1

即获取当前单元格右侧单元格中的值,如图17所示。

图17

定义名称后,在工作表中输入该名称时,会获取所在单元格右侧单元格中的值,如下图18所示。

图18

如果想要该名称在工作簿其他工作表中也可使用,那么可以将该名称修改如下(如图19所示):

=!B1

图19

结语

要想编写出强大且优雅的公式,一定要理解并熟练掌握Excel的单元格引用原理,特别是相对引用原理。在后面的一些文章所介绍的公式中,我们会看到这些原理无所不在。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com