为了更好地使用公式,让我们先认识Excel中的A1引用样式和R1C1引用样式。
为了更好地使用公式,让我们先认识Excel中的A1引用样式和R1C1引用样式。
A1样式和R1C1样式的历史
最初发明第一款电子表格软件VisiCalc的Dan Bricklin和Bob Frankston对单元格使用A1样式,而Microsoft早期的电子表格MultiPlan使用的是R1C1样式。上世纪80年代,Lotus是电子表格领域的翘楚,牢牢占据着电子表格市场,而它采用的正是VisiCalc用户熟悉的A1样式。为了在电子表格市场抢战更多的份额,Microsoft让Excel既可以使用A1样式又可以使用R1C1样式。
通常,我们都是使用A1样式,这也是Excel的默认样式。然而,R1C1样式有很多独到之处。
理解A1引用样式和R1C1引用样式
Excel默认设置为A1样式引用,也就是我们熟悉的行以数字表示,列以字母表示。例如,A1表示工作表或者单元格区域左上角的单元格。
Excel还可以设置为R1C1样式引用,行列都以数字表示。例如,使用R1C1表示工作表左上角的单元格。此时,需要调出“Excel选项”对话框,勾选“R1C1引用样式”,如图1所示。
图1
在下图2所示的工作表中,我们使用了计算公式。其中,
列E = 列C * 列D
列F = 列E * 单元格I2
列G = 列E –列F
单元格G8 = 单元格区域G2:G7之和
图2
我们就以这张工作表来分析理解A1样式和R1样式。
使用A1样式公式如下图3所示:
图3
通常,我们在单元格中输入公式后,往下拉即可复制公式。例如,在单元格E2中输入公式=C2*D2,下拉至单元格E7,Excel会自动调整单元格相对引用并快速得出列E中的结果,列F、列G中也类似。但列F中的单元格I2不变,因为我们使用了绝对引用,即在行或列前加了$符号。
使用R1C1样式公式如下图4所示:
图4
可以看出,第5列、第6列、第7列中每列的公式都是相同的。也就是说,整个区域都可以使用同样的公式。
R1C1样式中,字母R代表行,字母C代表列,字母后面的方括号代表相对引用。字母R后面的方括号中的数字代表相对于当前单元格移动的行数,负数表示向上移动,正数表示向下移动。字母C后面的方括号中的数字代表相对于当前单元格移动的列数,负数表示向左移动,正数表示向右移动。例如,如果当前单元格D5中输入=R C[-1],则引用的单元格为C6。
若字母R或C后面就是数字,没有方括号,则表示引用为绝对单元格。例如,=R3C2引用单元格B3,不管当前单元格处在哪里。
若字母R或C后面既没有方括号也没有数字,则表示引用与当前单元格相同的行或列。
为了更好地理解,下图5演示了一些A1样式和R1C1样式的相对引用和绝对引用的例子。
图5
独特的R1C1样式
从上面介绍的示例中,我们可以看到使用R1C1样式的公式相同。也就是说,在多个单元格中,只需一个公式就可得出结果。并且,公式引用的单元格的变化并不会影响公式。这是R1C1样式一个独特之处。
还有一点值得一提,在A1样式中,同样的公式,但输入的单元格不同,含义不一样,例如:
在单元格D8中输入公式:$A5+C3
在单元格K10中输入公式:$A5+C3
是不一样的,如果我们将这两个单元格中的公式复制到其它单元格就会看出不同,在上篇文中我们详细说明了这种情形。
但是,R1C1样式的公式不依赖公式所在的单元格。
这也是R1C1样式的一个独特之处。
R1C1样式的秘密
如果我们仔细观察录制的宏代码,就会发现宏录制器在录制公式时就是使用R1C1样式。
因此,可以说,Excel是以R1C1样式来完成引用和计算,以A1样式来显示地址和公式,因此R1C1样式的公式会更加有效。
这就是R1C1样式的秘密!
示例:创建乘法表
如下图6所示,在第2行第2列的单元格中输入公式:
=R1C*RC1
然后向左拖至第10列,向下拖至第10行,即可创建一个九九乘法表。
公式表示当前单元格所在行的第1列与当前单元格所在列的第1行的值相乘。
图6
结语
通常,我们在公式中都是使用A1样式,然而,了解R1C1样式,有助于我们更好地理解公式原理,也为我们编写简洁的公式提供了一个途径。