一、认识名称
1. 名称的概念
在Excel中,名称(Names)是一种较为特殊的公式,多数由用户自行定义,也有部分名称可以随创建列表、设置打印区域等操作自动产生。
作为一种特殊的公式,名称也是以“=”号开始,可以由常量数据、常量数组、单元格引用、函数与公式等元素组成,并且每个名称都具有一个唯一的标识,可以方便在其他名称或公式中调用。
与一般公式所不同的是,普通公式存在于单元格中,名称保存在工作簿中,并在程序运行时存在于Excel的内存中,并通过其唯一标识(即名称的命名)进行调用。
2. 为什么要使用名称
合理地使用名称,可以方便编写公式,主要有以下7大优点
(1)可增强公式的可读性
例如将 存放在B3:B12单元格区域的语文成绩数据定义为“语文”,使用以下两个公式都可以求语文的平均成绩,显然,公式1比公式2更易于理解其意图;
公式1 =AVERAGE(语文)
公式1 =AVERAGE(B3:B12)
(2)可方便于公式的统一修改
例如在工资表中有多个公式都使用1200作为基本工资以乘以不同奖金系数进行计算,当基本工资额发生改变时,要逐个修改相关公式将较为繁琐。如果定义一个“基本工资”的名称并带入到公式中,则只需修改名称即可。
(3)可代替需重复使用公式,有利于简化公式
有一些较为复杂的公式中,可能需要重复使用相同的公式段进行计算,导致整个公式冗长,不利于阅读和修改。例如:
=IF(SUM($B2:$F2)=0,0,G2/SUM($B2:$F2))
将其中SUM($B2:$F2)部分定义为“总库存”,则公式可简化为:
=IF(总库存=0,0,G2/总库存)
如果重复的公式段越长,简化效果就越明显。
(4)可代替单元格区域存储常量数据
在一些查询计算中,常使用关系对应表作为查询依据。可使用常量数组定义名称,省去了单元格存储空间,避免删除或修改等误操作导致关系对应表的缺失或变动。
(5)可解决数据有效性和条件格式中无法使用常量数组、交叉引用问题
在数据有效性和条件格式中使用公式,程序不允许直接使用常量数组或 交叉引用(即使用交叉运算符空格获取单元格区域交集),但可以将常量数组或交叉引用部分定义为名称,然后在数据有效性和条件格式中进行调用。
此外,在Excel 97-2003中,无法在数据有效性和条件格式中直接使用其他工作表的单元格区域,需要使用INDIRECT函数进行引用或将跨表区域定义为名称,然后在数据有效性和条件格式中使用名称进行调用。在Excel 2010中无此问题。
(6)可解决在工作表中无法使用宏表函数问题
宏表函数不能直接在工作表的单元格中使用,必须通过定义名称来调用。
(7)可与图形对象配合调用单元格中的图片
二、名称的级别
有些名称在一个工作簿的所有工作表中都可以直接调用,但有的名称只能在某一工作表中直接调用。这是由于名称的级别不同,其作用的范围也不同。类似于在VBA代码中定义全局变量和局部变量,Excel的名称可分为工作簿级名称和工作表级名称。
(1)工作簿级名称
一般情况下,用户定义的名称都能够在同一工作簿的各个工作表中直接调用,称为“工作簿级名称”或“全局名称”。
例1 创建工作簿级名称“基本工资”
如图1所示,某公司采取固定基本工资和浮动岗位、奖金体系的薪酬制度。基本工资仅在有关政策变化时才进行调整,而岗位系数和 奖金系数则变动较为频繁。因此将基本工资定义为名称来进行维护。
步骤1 单击【公式】选项卡【定义名称】按钮,如图2所示,在弹出的【新建名称】对话框的【名称】编辑框中输入“基本工资”,【范围】下拉菜单中选择【工作簿】,在【引用位置】编辑框中输入“=1200”,单击【确定】按钮退出对话框。
步骤2 选择E3:E10单元格,在编辑栏输入以下公式并按下Ctrl+Enter组合键结束编辑:=基本工资*D3
步骤3 选择E3:E10单元格,单击【开始】选项卡的【复制】按钮,选择G3单元格,单击【粘贴】按钮,并使用同样方法设置其他工作表中公式。
在【新建名称】对话框中,【名称】编辑框内的字符表示名称的命名,【范围】下拉按钮中可以选择“工作簿”和具体工作表两种级别,【引用位置】编辑框用于输入名称的值或定义公式。
在公式中调用其他工作簿中的全局名称,表示方式为:工作簿全名+半角感叹号+名称。
例如调用“工资.xlsx”中的全局名称“基本工资”,应使用:
=工资.xlsx!基本工资
(2)工资表级名称
当名称仅能在某一工作表直接调用时,所定义的名称为工作表级名称,有称为“局部名称”。
如图3所示,在【新建名称】对话框的【名称】编辑框中输入“岗位系数”,在【范围】下拉菜单中选择“1月”,单击【引用位置】编辑框右侧 折叠按钮 并选择“1月”工作表的D3:D10单元格区域,单击【确定】按钮退出 对话框,则该名称为工作表级名称。
在“1月”工作表中,可以在公式中直接使用“岗位系数”调用该名称,但在其他工作表需要使用此名称时,则需要使用:
=’1月’!岗位系数
即:工作表名+半角感叹号+名称。
其中工作表名如包含空格等特殊字符,需使用一对半角单引号包含。
Excel允许工作表级、工作簿级名称使用相同的命名。当存在同名的工作表级和工作簿级名称时,在工作表级名称所在的工作表中,调用的名称为工作表级名称,在其他工作表中调用的为工作簿名称。
注意:建议尽量不要对工作表级和工作簿级名称使用相同的命名,避免造成管理混乱。