数据结构论坛

首页 » 分类 » 定义 » 自定义名称的这几种用法,你真的知道吗
TUhjnbcbe - 2025/2/21 17:32:00
北京白癜风研究中心 https://jbk.39.net/yiyuanfengcai/lx_bjzkbdfyy

大家好,我们又见面了,最近有很多学生和网友都问我一个问题:

为什么你讲的Excel跟别人不同?好多书都是花大篇幅的来介绍Excel的快速处理数据操作方法和技巧?而你讲的大部分都讲函数原理和功能制作过程呢?

的确,我也是经过对比才发现答案,原来我们思考的角度不同,大部分书或网络文章,他们的出发点,操作者都是自己,而我出发点,操作者是他人,其实也就是操作员和开发工程师的区别,至于你更喜欢什么,就是你的偏好了,

好了我们闲言少叙,言归正传,今天文接前篇《什么,自定义单元格名称规则你全知道?这有基础规则,了解一下!》,接着介绍名称的用法。

在创建定义名称的过程中,一直隐藏着使用名称的关键窍门,这个窍门并不难找,就是在名称定义中起到关键作用的设置,没错,你猜对了,就是引用位置(S)。

引用位置大致可以分为三类,它可以是引用地址,它可以是公式,也可以是名称,只要熟练掌握这三类用法,那么使用名称就成了手到擒来的事。

下面我就以三种类型为例,逐一剖析一下名称的用法技巧。

01引用地址

在Excel中的引用地址,共有3类,分为绝对引用,相对引用,混合引用;

在A1引用模式下,说到绝对引用,不得不说:$绝对引用符,而它的存在决定了属于哪一种引用?

同时出现列标行号前,则为绝对引用,如$A$1;只出现在列标或行号前,则为混合引用,$A1,A$1;不出现则为相对引用,A1;不过在创建名称时,默认选择的引用地址是绝对地址,多数用于常量,比如某些公式的系数,固定的引用范围,项目的配置项等;

绝对引用:

例如,根据员工的基本工资,计算出养老,医疗,失业保险的个人承担的部分?

数据表格结构示意图(图1)

要计算个人的部分,并不复杂,首先要知道个人承担的对应比例,养老,医疗,失业分别为基本工资的8%,2%,0.5%;(注:基本工资为企业上五险的基数,并非真实工资)

常见的做法,定义3个名称来存储3个数值,操作步骤如下:

1.任选一个单元格,ctrl+t,弹出创建表窗口,勾选表包含标题(M),点确定;2.ctrl+f3,调出名称管理器,点击新建:pens,引用位置输入0.08,点击确定;3.重复新建过程,新建医疗,失业,unem,medical,引用位置分别为0.02,0.;关闭任务名称管理器4.在D2,E2,F2,录入公式=pens*c2,=unem*c2,=medical*c2;5.选中D2:F2,鼠标移至F2右下角,变为实心+,双击填充公式;

操作步骤示意图(图2)

但若你是一个工程师的话,这么做是要扣工资的,其实工程师的做法并不复杂,只需做如下修改:

1.创建一个init工作表,A1:C1,分别录入:养老比例,医疗比例,失业比例;2.A2:C2,分别录入0.08,0.02,0.;3.ctrl+f3,调出名称管理器,修改pens,unem,medical应用位置为:=init!$A$2,=init!$B$2,=init!$C$2;

案例操作步骤示意图(图3)

这样做的好处就是,下次只需简单修改,就能实现使用新比例,数据会自动更新结果。即使你不在,修改时,而你需要做的就是,告诉他,修改对应表格数据就行了。

可能有人可能要说了,还工程师呢?这要是有十个配置项,岂不是要用10个名称吗?太麻烦了!

确实,因为绝对引用使得名称的值变唯一了,若改变这种情况,就需要解除部分锁定即:

混合引用

哪么问题来了,混合引用会以什么作为参考标准呢?名称的引用位置和使用名称单元格的又是怎么个对应关系呢?

第1问:不管名称的引用位置是混合引用,还是后面要说的相对引用,其实参考的点就是创建名称时,当前选中的单元格,说白了,这个单元格就是参考点;至于对应的关系:一旦名称创建完成,选择单元格与创建名称录入的引用地址就会生成固定相对位置映射关系。为了便于理解,还是看回本例,init的数据只在A2:C2,对应使用的数据列为表Sheet1的D:F,

即D列对应A2,E列对应B2,F列对应C2;

因为不管是D列,还是E列,还是F列使用的数据始终都在init表第2行,所以行号应锁定,列号则应该随着使用单元格列变化而变化。哪么问题来了,用混合引用解决这个问题,要用几个名称呢?

不多,一个就行,不过创建时,需要注意选中单元格位置,由于需锁定行号,所以只需在意列的位置,具体操作步骤如下:

1.在init工作表,选中D列任一单元格,点击下的按钮,弹出窗口,录入名称,ratio,引用位置是当前选中单元格绝对引用,只需修改为=A$2,确定;2.在Sheet1中,D2,录入公式=$C2*ratio,先横拖拽填充至F2,后鼠标移至F2右下角,变实心+,双击完成公式填充。

案例操作步骤示意图(图4)

注:录入引用位置时,工作表名称可省略,名称创建完成,系统会自动追加当前工作表名称。

其实在创建名称时,方法并不唯一,因为行号锁定,只需确保选中单元格与名称引用位置的列标相差为2即可。

说到这,有一点,你需要注意的是,固定映射关系跟在哪个工作表无关,只与两者的相对位置有关;

知道这些之后,我们如果对行和列都取消锁定,用一个名称代表一个表格的数据区域,就可以玩转相同结构多表格求和

相对引用:

试想一下,如果我们采用正确的映射关系,然后定义成名称,就能通过名称玩转相同结构表格中的任意单元格求和。

现有一个连锁店的6个月份销售情况,具体数据结构如下:

连锁店表格数据示意图(图5)

要求对1到6月的各项求和?

由于结构相同,之前文章,我曾讲过用sum解决过这类问题,这里做个小复习,简单回顾一下SUM的解决步骤:

1.点击新建工作表按钮,创建汇总表,A1:C1,录入:分店,销量汇总,销售额汇总;2.A2:A8,录入分店名称,河西1分店,河西2分店,河东1分店,河东2分店,红桥1分店,河北1分店,北辰1分店;3.在B2录入公式=SUM(1月:6月!B2)或录入=SUM(,后用鼠标选1月的B2,后按shift不放,点6月,后回车;4.先鼠标移至B2的右下角,鼠标变为实心+,按左键拖至C2,后鼠标移至C2右下教,变+时,双击填充公式;

操作步骤示意图(图6)

虽然看着文字介绍比较麻烦,其实操作起来,也就1分钟的事,看着还不错,哪接下看看用名称来做,该怎么操作呢?

1.切换到1月工作表,直接点击下按钮,调出新建名称窗口,名称:Jan,引用位置去掉绝对引用符,确定;2.重复1步骤,2-6月工作表对应的名称:Feb,Mar,Apr,May,Jun;3.选中B2:C8,直接录入公式=SUM(Jan,Feb,Mar,Apr,May,Jun),ctrl+enter(回车)

名称操作步骤示意图(图7)

什么?第2种方法一下子定义这么多名称,还不如第1种方法来的直接,简单呢?

不错,不过许多方法在普通模式下,效率都差不多,不过一旦上升到模块化模式下,效率高低就十分明显了。

如果用到模块化思想中的:配置优于逻辑,而存储配置常用的方法,都是用init工作表(约定俗称)来存储。

对应本例的操作步骤如下:

1.点击工具栏的+按钮,双击表签名或鼠标右键菜单选重命名,改为init;2.在A1:录入:汇总通用公式,A2,录入SUM(Jan,Feb,Mar,Apr,May,Jun)或Jan+Feb+Mar+Apr+May+Jun;3.新建名称为:Calcu,引用位置:=EVALUATE(,选择A2单元格,点确定;4.重复第2种方法,第3步骤,将公式改为=Calcu,后ctrl+enter

操作步骤示意图(图8(

如果遇到需要单独汇总某几个月时,你只需修改init!A2中的计算公式就好,数据会自动更新。

而第1种方法,就需要重新编写计算公式,即便开启智能表格,每次汇总要求变更,也至少需要修改2个单元格的公式,才能实现。

这么看来,谁更高效就一目了然了吧!不过,第2种方法并不是万能,而且只有在满足以下条件才可使用:

1.结果单元格和求和的数据单元格在数据区域的相对位置必须一致;2.结果单元格和源数据单元格项目顺序也必须一致那个第一种方法就不可以优化改进吗?当然可以,它的终极优化也是通过公式,不过应该叫函数版的通用公式,若把它定义成名称使用,就是名称另一类用法,欲知用法如何,请听下文详解。

由于篇幅的原因,今天的文章就到这了,如果你通过阅读,有所收获,就

1
查看完整版本: 自定义名称的这几种用法,你真的知道吗