ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E文精选 > 函数与公式 > 单元格引用的变形和简写

单元格引用的变形和简写

作者:绿色风 分类: 时间:2022-08-17 浏览:209
楼主
chrisfang
单元格引用有A1R1C1两种样式,两种形式中又包含了绝对引用和相对引用两种不同的变化。本帖不讨论绝对引用和相对引用的问题,而是着重讨论一下在单元格引用中结合三种引用运算符所进行的引用地址变形及简写方式。

单个区域的引用(同行、同列的简写):
先来讲一下R1C1方式的引用
对于G2:J2这样一个单元格区域,使用R1C1引用样式,可以写作:R2C7:R2C10,也可以写作:R2C10:R2C7。但R必须在C前面,“C10R2:C7R2”这样的写法是无效的。
对于这样同行的区域引用,可以使用简写的引用方式,即将R2C7:R2C10中的红色部分省去,简写为R2C7:C10
如果对于同列的区域引用,例如G2:G10,则可以将R2C7:R10C7中的红色部分省去,简写为R2:R10C7

为什么可以这样简写?为什么一个是将后面的R2省去而另一个是将前面的C7省去?这样的简写有何规律?在没有官方的解释之前,为了便于大家的理解和记忆,我给出一个我自己的解释思路,请看下面的关于引用运算符

关于引用运算符:

Excel
中包含了3种引用运算符,用于表示对单元格的引用,
一种是冒号,称为区域运算符,这是最常见的,如=SUM(A2:B10),表示引用冒号两边单元格所围成的矩形区域;
一种是逗号,称为联合运算符,如=RANK(A1,(A1:A10,C1:C10)),表示同时引用逗号两边的两个区域;
还有一种是空格,称为交叉运算符,表示引用空格两边的两个区域的交集,如=SUM(A1:B5 A4:D9)即等价于=SUM(A4:B5)。这个交叉运算符也是我这里要重点讨论的一个使用技巧。

对于G2:J2这个单元格区域,如果换一个角度来看,可以看作是G:J4列与第2行所构成的交叉区域。因此,如果用交叉运算符和R1C1样式来引用的话,可以写作:R2 C7:C10,中间用交叉运算符空格分隔,即表示R2C7:C10这两个区域的交叉区域。
因此R2C7:R2C10等价于(R2 C7:C10),而这个形式与上面的简写形式R2C7:C10十分相似;
同理,G2:G10可以表示为R2C7:R10C7,等价于(R2:R10 C7),这个形式与其简写形式R2:R10C7也十分相似。

因此,同行或同列的区域引用简写原则可以看作是一次类似合并同类项以后消项的过程:
R2C7:R2C10=R2 C7:C10=R2C7:C10
R2C7:R10C7=R2:R10 C7=R2:R10C7

交叉运算符同样也可以应用在A1引用方式中
例如(R2 C7:C10)如果使用A1引用方式则可以写作
(2:2 G:J)
(R2:R10 C7)
如果使用A1引用方式则可以写作
(G:G 2:10)

多个区域的引用(合并同类项):
以同时引用G13:J13G15:J15G17:J17这三行区域为例,
使用R1C1的通常写法是:

R13C7:R13C10,R15C7:R15C10,R17C7:R17C10   
其中的逗号表示联合运算
可以引入交叉运算符,简化为:

R13 C7:C10,R15 C7:C10,R17 C7:C10
此时,因为三个以逗号分隔的联合区域中,每个区域都与C7:C10有交叉部分,来做一个类似于合并同类项的变形,可以简化为:
(R13,R15,R17) C7:C10
将几个行号用逗号相连接表示联合运算,同时外面用括号包围以后,再与C7:C10区域使用空格进行连接,形成交叉运算关系,得到了我们所需要的三个行区域的同时引用。
类似的,使用A1引用样式也可以进行合并变形,上述区域的A1引用写法为:(13:13,15:15,17:17) G:J

上面三个区域是水平方向平行的三行,下面来看一下垂直方向平行的三列,实质用法完全一致:L13:L20O13:O20P13:P20
R1C1形式:
R13C12:R20C12,R13C14:R20C14,R13C16:R20C16
引入交叉运算符,简化为:
R13:R20 C12,R13:R20 C14,R13:R20 C16
合并同类项,简化为:
R13:R20 (C12,C14,C16)

A1引用样式为:(L:L,N:N,P:P) 13:20

地址引用的应用场合:
对于A1样式的地址引用,可以直接使用在公式中,例如:
  1. =SUM((13:13,15:15,17:17) G:J)
即表示同时对G13:J13G15:J15G17:J17三个区域进行求和。

对于R1C1引用样式,则通常用于INDIRECT函数的引用,对于INDIRECT参数中包含变量的情况,使用简写+变量参数的方式可以减少大量公式开销。具体案例待以后补充。
而对于使用INDIRECT+TEXT函数构造引用样式来进行地址引用的场合,也可以用的R1C1引用样式及其简写方式,但其中既包含联合又包含交叉的复杂情况不太多见。简单举个例子说明一下应用:
要对G:I三列中的某三个非相邻行进行引用,公式取得三个行号分别为aabbcc,加权组合后可以得到aa0bb0cc一个8位数值,此时使用
  1. =TEXT(aa0bb0cc,"(R0R000R00,0) C7!:C9")
就可以得到(Raa,Rbb,Rcc) C7:C9”的INDIRECT引用参数。其中的TEXT函数格式代码中利用了千分位符来产生表示联合引用的逗号。

除了INDIRECT函数,HYPERLINK函数中也可以用到A1样式和R1C1样式的引用地址,例如
  1. =HYPERLINK("#r13:r20 (c12,c14,c16)","链接")

即可产生同时链接到L13:L20O13:O20P13:P20三个区域的超级链接。本帖附件中也使用了HYPERLINK函数便于大家识别所引用的具体区域范围。


为了便于理解,可以结合下面这个附件,相信可以更容易明白一些:
单元格引用.rar
2楼
apolloh
谢谢方兄分享!篇篇皆精品。3日内(ET规定)如果没有会员提出异议,建议加精华。
3楼
BIN_YANG168
现在就加吧,呵呵.
4楼
syz105729913
第一次看到这个用法还是在过年时候的一道竞赛题,真是太精彩了
5楼
tongliaozyr
下载学习,感谢楼主分享
6楼
china_yilong
为什么
7楼
rabbitllu
很多不知道的知识,学习了。谢谢
8楼
lpzxhjp
呵呵,精彩!

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap