打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
高手必备技能之自定义名称

自定义名称可以简化公式,使公式便于理解和更改。我们在前面推送的文章中也提到过使用自定义名称,今天我们来详细地看看自定义名称相关的知识。

自定义名称有什么作用?

  • 作为区域的代称,使公式便于理解和维护;

  • 替代多次出现的公式,简化输入;

  • 作为常量参数,便于统一更改、维护;

  • 生成动态的区域引用,用于动态数据透视表、动态图表、数据有效性列表等

  • 使用宏表函数,如Get.cell和Get.workbook等最好在定义名称中使用

怎样定义名称?

以下是常见的定义名称的方法。

a. 在【公式】选项卡下面,点击【定义名称】,或者在“名称管理器”中点击“新建”按钮,即可打开定义名称对话框。

在这里,我们可以输入名称的名称,选择是适用于工作簿还是适用于工作表,可以设置名称的备注,在引用位置这里可以输入单元格或区域的地址,可以输入公式。


b. 选定一个区域,在名称框中直接输入名称,就会自动创建该名称。


c. 选定区域后,点击【公式】选项卡下面的“根据所选内容创建”按钮,可以批量创建名称。

如下图数据,我们选定A2:G4单元格区域,点击“根据所选内容创建”。

在以下对话框中选择“最左列”。

这里我们勾选“最左列”,因为我们是要以最左列的单元格内容作为字段名称。假如说我们勾选了“首行”,则只能创建一个名称,命名为“山东”,因为其他单元格的内容(B2:G2区域)不是合法的名称格式。

假如我们要为每个月份创建名称,就需要选中B1:G4的区域,“根据所选内容创建”,并在上面的对话框中选择“首行”。


d. 选中整个数据区域,按Ctrl T,或者在【插入】选项卡中点“表格”按钮,就可以弹出创建表的对话框,点确定后,就会自动创建一个表的名称。


e. 设置打印区域、打印标题时会自动创建名称,如下Print_Area,Print_Titles。


f. 复制工作表时,会将该文件中的名称一起复制到目标工作表。


g. 使用VBA创建名称。VBA中使用Application.Names.Add方法来创建名称,并且可以设置名称是否可见(Visible属性)。

这里的Visible属性也提供了一种方法,假如你不想让别人看到你设置的名称的内容,比如常量的值,公式等,你就可以把名称设置为不可见。比如,你有一个名字为Discount的自定义名称,在VBA中,使用以下语句将其设置为不可见。

Application.Names('Discount').Visible=False

并且我们可以在VBA编辑器的VBAProject属性中设置打开VBE的密码。这样别人就看不见你设置的隐藏的名称了,即使知道,如果没有VBAProject查看密码的话也不行。

名称命名需要注意哪些问题?

  • 必须以字母、下划线或反斜线作为开头,其余字符可以是字母、数字、英文输入状态下的点、下划线、反斜线;

  • 不可以跟单元格地址相同,比如A1、A2等;

  • 不可以单独用C或R;

  • 不可以用空格;

  • 最多255个字符;

  • 不区分大小写。

如何管理自定义名称?

点击【公式】选项卡下面的“名称管理器”就可以查看、更改或删除自定义名称。

我们可以选择多个名称批量删除。


小提示:有很多同学的表格变得越来越慢,但是也找不出什么原因,因为公式跟之前也是一样的。我们不妨看看这里是否有很多无用的自定义名称。就像我们前面提到的,在复制工作表时会将自定义名称一起复制到目标工作表。随着复制次数的增多,文件中的自定义名称也越来越多,这些名称可能包含了一些公式计算,甚至引用到其他工作表的数据,这也会导致表格计算变慢。

如果我们要在工作表中查看所有已定义的名称,可以在“用于公式”下拉列表中点击“粘贴名称”,在弹出的对话框中点击'粘贴列表',在工作表中就会列出来所有已定义的名称及其公式。


应用实例

a. 创建动态的数据透视表

新建名称Data_PivotTable,在“引用位置”中输入以下公式:

=OFFSET(动态的数据透视表!$A$1,,,COUNTA(动态的数据透视表!$A:$A),COUNTA(动态的数据透视表!$1:$1))

这个公式可以根据数据源行数和列数的变化自动扩展数据区域。

在插入数据透视表的时候,在“表/区域”框中直接输入Data_PivotTable这个名称就可以继续创建动态的数据透视表了。


b. 创建动态的图表

根据以下区域的数据。

我们创建三个自定义名称,在图表中添加控制选项按钮,可以选择是否需要在图表上显示该系列的数据。这种方法在数据源有多个系列的数据时,可以选择查看部分系列,便于区域和比较。

Data_Chart_山东=IF(动态图表!$A$3,动态图表!$C$3:$H$3,动态图表!$C$1:$H$1)

Data_Chart_江苏=IF(动态图表!$A$4,动态图表!$C$4:$H$4,动态图表!$C$1:$H$1)

Data_Chart_浙江=IF(动态图表!$A$5,动态图表!$C$5:$H$5,动态图表!$C$1:$H$1)

我们先以原数据区域作图,然后把每个系列值改成自定义名称。

这里注意,系列值输入框中需要输入工作簿名称 叹号! 自定义名称。

做完图表之后,在【开发工具】选项卡里面,点“插入”“表单控件”中的“复选框”按钮。右键单击复选框按钮,点击“设置控件格式”,设置该控件的单元格链接为A3,这个是控制是否显示“山东”这个系列的开关。依次添加控制显示江苏,浙江的复选框。

最终效果图如下。我们可以勾选或取消勾选复选框来控制是否显示该系列。

我们还可以添加月份控制的按钮,这里需要用Offset来动态地改变数据区域的大小,在公式中可以直接使用定义的名称,比如=Offset(Data_Chart_山东,,,,3)就更改了名称Data_Chart_山东的大小为3列,也就代表3个月的数据,这个数字3我们可以通过控件来调节。关于这点,我们就不深入展开了,感兴趣的同学可以试试或到QQ群讨论。


c. 使用宏表函数。

  • 比如我们前几天介绍的判断单元格是否有公式的方法。

    定义名称hasformula=GET.CELL(48,INDIRECT('RC',FALSE))

  • 创建工作表目录时,我们用到Get.Workbook来取得工作表名称。

    定义名称WS=GET.WORKBOOK(1)&T(NOW())

    在A2单元格输入以下公式,然后下拉就可以得到目录了=IFERROR(HYPERLINK('#''&MID(INDEX(ws,ROW(A1)),FIND(']',INDEX(ws,ROW(A1))) 1,100)&''!A1',MID(INDEX(ws,ROW(A1)),FIND(']',INDEX(ws,ROW(A1))) 1,100)),'')

  • 按字体颜色或单元格背景色统计

    取得单元格背景色=GET.CELL(63,按单元格背景颜色求和!A2)&T(NOW())

    取得字体颜色=GET.CELL(24,按字体颜色求和!A2)&T(NOW())

    这两个名称都返回一个数字,代表相应的颜色。我们可以添加辅助列来显示这个数字,然后再按照数字用Sumif来求和就可以了,也可以在Sumif函数中直接使用自定义的名称来获取颜色作为参数。


关于定义名称,暂时就介绍这么多,以后遇到好的用法再跟大家分享吧!

转发出去,让更多的人来学习吧!

Excel轻松学

QQ群:9735376

 
 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
《Excel 2010应用大全》目录
覆盖 80% Excel 问题的 20+个基础概念
Excel操作技巧(3)
excel表完整教程,从零基础开始
来自日常工作中的Excel小技巧,值得你收藏
学会这5个Excel表格技巧,只需一键快速创建图表!老板都看呆了
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服