Excel实战技巧111:自动更新的级联组合框

excelperfect

引言:本文学习整理自www.xelplus.com,很好的一个示例,演示了在不使用VBA的情形下,如何创建自动更新的级联组合框。

本文将向你展示:

  • 如何创建组合框下拉列表。

  • 如何创建级联组合框下拉列表。

  • 如何限制组合框下拉列表以排除空白单元格。

  • 如何克服级联数据验证列表的问题,即一旦第一个列表的值发生更改,其关联的列表就不会自动重置——你将学习一种替代方法来克服自动重置失败的问题(一旦第一个列表的值发生变化,将自动刷新关联的列表)

通过使用组合框表单控件,我们将能够实现级联列表。与传统的数据验证(即“数据有效性”)下拉列表相比,组合框表单控件具有许多优点。

  • 下拉指示器在组合框中始终可见;而在数据验证中,用户必须单击单元格来显示下拉指示器。

  • 从属组合框将自动响应在第一个组合框中所做的后续更改。

本示例中所使用的数据如下图1所示。

图1

创建的级联组合框如下图2所示。

图2

单击功能区“开发工具”选项卡“控件”组中的“插入——表单控件——组合框”,如下图3所示。

图3

在工作表合适位置拖动鼠标,放置一个组合框并调整好大小。

选择组合框,单击右键,选择“设置控件格式”命令。在“设置控件格式”的“控制”选项卡(如下图4所示)中,有两个重要的属性:

  • 数据源区域:包含要在下拉列表中显示的项目的单元格。

  • 单元格链接:用于保存用户从列表中选择的单元格。因为组合框位于单元格上方,所以我们需要将用户的选择存储在传统的工作表单元格中。

图4

对于本示例,设置组合框的数据源和单元格链接如下图5所示。

图5

从图5中可以看到,组合框的选择与单元格K4链接,当我们选择组合框中的下拉列表项时,将会在该单元格中放置所选项在列表中的位置值。

下面,我们来创建级联的组合框。

在刚才的组合框下面,插入第二个组合框,如下图6所示。

图6

要使用“App内容”填充第二个组合框,可以使用多种方法:

  • 直接引用包含项目的单元格。

  • 使用公式创建动态列表。由于组合框不接受公式作为引用,因此必须将公式存储在名称管理器中,然后在组合框中引用名称。

我们使用了中间数据,因此使用第一种方法,直接引用单元格来填充第二个组合框。

我们想根据用户从第一个组合框中所做的选择创建一个动态的“App内容”列表,在此,将使用存储第一个组合框的单元格链接(K4)中的值。

图7

使用INDEX函数创建相关App的列表。在单元格N4中,输入公式:

=INDEX(A4:C4,,$K$4)

然后,向下拖动填充数据,结果如下图8所示。

图8

设置第二个组合框的格式如下图9所示。

图9

设置第二个组合框的源数据区域为N4:N18,单元格链接到M4以存储代表所选项位置的数字。

此时,你可以试试,当你在第一个组合框中选择时,第二个组合框中的列表项也随之发生更改。

我们再增加一项数据显示,当在第二个组合框中选择列表项后,其对应的营收会显示,如下图10所示。

图10

下图11为App对应的营收表。

图11

在单元格G7中,输入公式:

=IFERROR(VLOOKUP(INDEX(N4:N18,M4),A32:B71,2,FALSE),'')

下面,我们进一步完善这个示例。

注意到,当我们选择不同部门时,由于其对应的App列表长度不同,列表底部会存在空,如下图12所示。

图12

在此,我们通过定义名称来解决。定义一个名为“combo”的名称,其引用为:

=$N$4:INDEX($N$4:$N$18,MATCH('zzzzzzzz',$N$4:$N$18,1))

然后,更改第二个组合框的格式如下图13所示。

图13

完成后的结果如下图14所示。

图14

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。

(0)

相关推荐