楼主 chrisfang |
单元格引用有A1和R1C1两种样式,两种形式中又包含了绝对引用和相对引用两种不同的变化。本帖不讨论绝对引用和相对引用的问题,而是着重讨论一下在单元格引用中结合三种引用运算符所进行的引用地址变形及简写方式。 单个区域的引用(同行、同列的简写): 先来讲一下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:J这4列与第2行所构成的交叉区域。因此,如果用交叉运算符和R1C1样式来引用的话,可以写作:R2 C7:C10,中间用交叉运算符空格分隔,即表示R2与C7: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:J13、G15:J15、G17: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:L20、O13:O20、P13: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样式的地址引用,可以直接使用在公式中,例如:
对于R1C1引用样式,则通常用于INDIRECT函数的引用,对于INDIRECT参数中包含变量的情况,使用简写+变量参数的方式可以减少大量公式开销。具体案例待以后补充。 而对于使用INDIRECT+TEXT函数构造引用样式来进行地址引用的场合,也可以用的R1C1引用样式及其简写方式,但其中既包含联合又包含交叉的复杂情况不太多见。简单举个例子说明一下应用: 要对G:I三列中的某三个非相邻行进行引用,公式取得三个行号分别为aa、bb、cc,加权组合后可以得到aa0bb0cc一个8位数值,此时使用
除了INDIRECT函数,HYPERLINK函数中也可以用到A1样式和R1C1样式的引用地址,例如
即可产生同时链接到L13:L20、O13:O20、P13:P20三个区域的超级链接。本帖附件中也使用了HYPERLINK函数便于大家识别所引用的具体区域范围。 为了便于理解,可以结合下面这个附件,相信可以更容易明白一些: 单元格引用.rar |
2楼 apolloh |
谢谢方兄分享!篇篇皆精品。3日内(ET规定)如果没有会员提出异议,建议加精华。 |
3楼 BIN_YANG168 |
现在就加吧,呵呵. |
4楼 syz105729913 |
第一次看到这个用法还是在过年时候的一道竞赛题,真是太精彩了 |
5楼 tongliaozyr |
下载学习,感谢楼主分享 |
6楼 china_yilong |
为什么 |
7楼 rabbitllu |
很多不知道的知识,学习了。谢谢 |
8楼 lpzxhjp |
呵呵,精彩! |