Excel技术 | 数据有效性7:创建级联列表

利用数据有效性,可以创建级联列表。参见下图,在列A的单元格中选取条目后,列B的单元格下拉列表中将出现与列A单元格内容相关的条目。

如何创建级联列表

第1步:命名列表中的条目

如下图所示,命名含有列表中条目的单元格区域。注意,第二级列表区域的名称应是第一级列表条目名称。具体来说,单元格区域A2:A3为一级列表的条目内容,命名为“省份”,包含“湖北省”和“江苏省”;单元格区域C2:C5和 E2:E5为二级列表的条目内容,分别命名为“湖北省”和“江苏省”,即一级列表的条目名称。

第2步:创建第一级下拉列表

选择需要创建第一级列表的单元格区域A1:A5,在“数据有效性”的“允许”下拉框中选择“序列”,在“来源”框中输入:=省份

第3步:创建第二级下拉列表

选择需要创建第二级列表的单元格区域B1:B5,在“数据有效性”的“允许”下拉框中选择“序列”,在“来源”框中输入:=INDIRECT(A1)

注:INDIRECT函数返回由文本字符串指定的引用,本例中为列A中单元格内容指定的名称引用。关于INDIRECT函数的详细讲解参见《Excel函数学习14:INDIRECT函数》。

如果列A中的单元格为空,那么在单击“确定”后,会弹出如下图所示的信息提示消息,单击“是”即可。

至此,本文开头的级联列表创建完成。在列A单元格的下拉列表中选取某条目后,在列B单元格下拉列表中会出现相关联的条目,选取后即可完成输入。

你可以按照前面的思路,以第二级列表中的条目作为第三级条目的名称,创建第三级列表。如下图所示:

保证级联列表的有效性

创建级联列表后,如果用户要修改已经通过级联列表输入的单元格数据,相关联的单元格内容不会发生变化。如下图所示,将单元格A3中的内容改为“江苏省”后,B3中的内容并不会自动变化。

可以通过修改数据有效性设置,来保证用户在完成级联列表输入的情况下,不能修改列A中的单元格,除非先将相关联的列B单元格修改为空。

选择列A中要设置数据有效性的单元格区域,在“数据有效性”框中“允许”下拉框中选择“序列”,在“来源”框中输入公式:

=IF(B1="",省份,INDIRECT("NotChange"))

单击“确定”后,会弹出一个信息提示框,单击“是”即可。

公式中INDIRECT("NotChange")的参数值NotChange是一个假的单元格区域名称,没有表示任何单元格区域。因此,如果列B中的单元格不为空,那么公式的结果为错误,列A中的数据有效性下拉列表不会响应。这样,就阻了用户在修改列A后,导致列B的值不一致的问题。(当然,也可以使用VBA代码来实现,我们会在后续讲解数据有效性的VBA代码时详细介绍)

根据前两个单元格的内容创建第三级列表

如下图所示,要根据列A和列B中的内容组合创建列C中的下拉列表。

如上文所述,命名列表单元格区域如下图所示:

按上文创建级联列表的方法创建列A和列B中的下拉列表。列C下拉列表项要根据列A和列B组合后的值而定,设置列C中相应单元格区域的数据有效性如下:选取单元格区域,在“数据有效性”框中“允许”下拉框中选择“序列”,在“来源”框中输入公式:

=INDIRECT(SUBSTITUTE(A2&B2,"",""))

注:Excel规定名称中不能有空格,因此使用SUBSTITUTE函数去除代表名称的字符串中可能会有的空格。

避开名称规则

在创建级联列表过程中,我们使用了Excel的定义名称功能。然而,名称的命名有许多限制,譬如名称必须以字母或下划线开头,不能包含空格或其他无效字符,不能与Excel内部名称或工作簿中其他名称冲突,不允许使用字母r和c作为区域名称,不能以数字开头,等等。

在上文中,我们举例说明了使用SUBSTITUTE函数来避开代表名称字符串中的空格。这里,介绍通过查找来避开名称规则的技巧。

如下图所示的工作表,列A中包含以数字开头的单元格内容,若以此作为代表名称的字符串来为第二级列表的条目创建名称,Excel会提示错误。

此时,我们可以建立一个查找表(如下图所示),使用VLOOKUP函数在查找表中查找列A中的内容并转换为符合Excel名称命名规则的字符串,并以这些字符串为相应的列表命名,从而创建级联列表中的条目。

如下图所示,将列G中单元格内容作为各条目区域的名称。

然后,选择要创建级联列表的单元格区域,设置“数据有效性”如下:在“允许”下拉框中选择“序列”,在“来源”框中输入公式:

=INDIRECT(VLOOKUP(A2,F1:G4,2,0))

(0)

相关推荐

  • 如何批量提取工作表名称

    如何将工作簿中的所有工作表名称批量提取出来呢? 这里有两种方法: 一.专业法 第一步:点击公式--定义名称,在开的界面中定义好名称,比如"名称",在引用位置中输入公式=MID(GE ...

  • Excel技术 | 数据有效性8:使用Excel表创建动态级联列表

    Excel表能够创建结构化引用,并且在表中增加或删除行时,数据会自动调整.在Excel工作表中,选取数据单元格,单击"插入"选项卡中的"表"即可创建Excel表 ...

  • Excel技术 | 数据有效性4:创建动态更新的列表

    所谓动态更新的列表,就是当单元格区域增加内容时,下拉列表条目自动更新.要实现动态更新的列表,就需要定义动态名称. 下面讲解如何创建动态更新的列表. 1.定义动态名称 假设数据存放在工作表Sheet2中 ...

  • Excel技术 | 数据有效性6:阻止用户输入特定数据

    下面的示例演示了在单元格中设置数据有效性,阻止用户在单元格输入特定的数据. 阻止用户输入重复值 有时候,我们要避免单元格中有相同的数据,譬如学生学号.序号等.下图所示的工作表中,在单元格区域A2:A1 ...

  • Excel技术 | 数据有效性5:限制只能输入特定的数据

    下面的示例演示了在单元格中设置数据有效性,使单元格只能输入特定的数据. 限制单元格中只能输入某范围内的值 在"数据有效性"对话框的"允许"下拉框中选择" ...

  • 创建级联列表选择

    级联下拉列表是一个较为高级的方法.选择"北京"后,区县中列出北京所有的区县名称,而不会出现其他城市的区县.怎么实现呢?

  • Excel工作表中创建可滚动列表,每点击一次只显示10行数据

    ①回顾关键内容②善用图片表达 ③学会建立联系④拓展深度广度 ⑤浓缩关键概念⑥提示重要信息 ⑦应用到行动中⑧善于归纳总结 ⑨尝试进行分享

  • 数据有效性9:使用INDEX函数创建动态级联列表

    在前面的文章中,我们介绍了使用OFFSET函数来创建动态更新的级联列表,本文介绍使用INDEX函数创建动态级联列表的方法和技巧. 准备工作表 首先准备两个工作表,"Data"工作表 ...

  • Excel:创建级联下拉菜单

    本文介绍如何在 Excel 中创建两级关联下拉菜单的方法. 最终效果动图展示 ◆  ◆  ◆ 一般步骤及说明 1.首先输入数据. 2.选中 B4 单元格,点击"数据选项卡/数据工具/数据验证 ...

  • Excel技术 | 名称7:在图表中应用名称

    在创建图表时结合名称的使用,可以创建动态更新的图表或者交互式的图表. 创建动态更新的图表 如图1所示,使用Excel的图表功能很容易创建一个柱状图. 图1 如果想要在添加数据时,图表能够自动更新,那么 ...