ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: willin2000

[Excel 函数与公式] [第44期]恭囍新春送红包

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-3-8 17:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
受willin2000版主委托,在这里详细介绍一下本题中关于单元格引用的一些思路。

单元格引用有A1和R1C1两种形式,两种形式中又包含了绝对引用和相对引用两种不同的变化。

单个区域的引用:
先来讲一下R1C1方式的引用
对于G2:J2这样一个单元格区域,使用R1C1来引用,可以写作:R2C7:R2C10,也可以写作:R2C10:R2C7。但R必须在C前面,“C10R2:C7R2”这样的写法是无效的。

对于这样单行的区域引用,可以使用简写的引用方式,即将R2C7:R2C10中的红色部分省去,简写为R2C7:C10。
如果对于单列的区域引用,例如G2:G10,则可以将R2C7:R10C7中的红色部分省去,简写为R2:R10C7。
为什么可以这样简写,这样的简写有何规律?在没有官方的解释之前,为了便于大家的理解和记忆,我给出一个我自己的解释思路,请看下面的“关于引用运算符”:

关于引用运算符:
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也十分相似。

以上就是对于同行或同列的R1C1引用简写方式的一些理解,但这个题目中真正起到大作用的并非那个简写方式(虽然也可以缩短不少字符),而是引入交叉运算符以后的引用方式。请继续往下看。

交叉运算符同样也可以应用在A1引用方式中:
例如(R2 C7:C10)如果使用A1引用方式,则可以写作:(2:2 G:J)
(R2:R10 C7)如果使用A1引用方式,则可以写作:(G:G 2:10)
从现在的样子看上去,好像A1引用方式更简短,但联系题目的实际情况,经过代入后的比较最终可以发现还是R1C1引用方式更合适,关于这一点可以留到后面再看。

多个区域的引用:
题目最终结果要求同时超级链接到3行最多喜字的区域,这就意味着需要同时对多个区域进行引用,
以同时引用G13:J13、G15:J15、G17:J17这三行区域为例,
使用R1C1的通常写法是:
R13C7:R13C10,R15C7:R15C10,R17C7:R17C10   其中的逗号表示联合运算
可以引入交叉运算符,简化为:
R13 C7:C10,R15 C7:C10,R17 C7:C10
此时,来做一个类似于合并同类项的变形,可以简化为:
(R13,R15,R17) C7:C10
将几个行号用逗号相连接表示联合运算,同时外面用括号包围以后,再与C7:C10区域使用空格进行连接,形成交叉运算关系,得到了我们所需要的三个行区域的同时引用。

这个引用方式就是我的公式中最终所取用的最简短的引用方式。
可以跟A1引用方式做个比较,上述区域的A1引用写法为:(13:13,15:15,17:17) G:J,结合题目的实际情况,可以比较得出A1形式写法的字符代价要远高于R1C1的形式。

至于我两个公式中(R00!,R00!,R00) C7!:C33(R0R000R00,0) C7!:C33两种不同Text函数自定义格式的区别,主要在于后面这种格式利用了数字格式中的千分位符可以自动生成“逗号”的便利,从本质上来说两者的单元格引用方式是一致的。

写了这么多,也不知道大家能否看懂,如果结合下面这个附件,相信可以更容易理解一些:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

点评

有兴趣的网友可以看看早期进阶区的兴趣题: http://club.excelhome.net/thread-381926-1-3.html  发表于 2015-9-9 08:16

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-3-8 18:04 | 显示全部楼层
谢谢chrisfang 版主详细的解释,这下搞明白了。

TA的精华主题

TA的得分主题

发表于 2009-3-8 23:15 | 显示全部楼层
原来如此,不解释,哪里看得懂哟!谢谢分享。我们的成长离不开您们高手的赐教!
核心:简写(A1样式,R1C1样式)-联合引用-交叉引用

TA的精华主题

TA的得分主题

发表于 2009-3-8 23:31 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-3-9 00:34 | 显示全部楼层
好好品尝,这道题就差那么一点就出来了,可惜内力不够,继续向前辈学习!

TA的精华主题

TA的得分主题

发表于 2009-3-9 18:07 | 显示全部楼层
看了此帖,大获裨益,进一步了解了数组运算的原理,还学到了令我耳目一新的单元格引用方式。

感谢各位的赐教,祝好~~

TA的精华主题

TA的得分主题

发表于 2009-8-3 18:04 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-8-7 09:23 | 显示全部楼层
收藏学习,看来内力的修炼没有什么“武功秘籍”

TA的精华主题

TA的得分主题

发表于 2009-8-28 16:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
高山仰止,不佩服都不行啊.唉,不知道什么时候能学到其中的一点点

TA的精华主题

TA的得分主题

发表于 2009-8-30 18:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
佩服,拜服,仰天长吼我服了(:
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 00:56 , Processed in 0.037124 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表