下面是一位网友的问题:

“……最前面的单元格是大类,后面一个是大类里面的小类,再后面是小类里面的分类。我选个大类,依次往后选,最后是分类……”

也就是说,要在Excel中创建级联列表。

这里,介绍一种简单的方法,需要定义名称、使用数据有效性、以及使用INDIRECT函数。

假设需要创建级联列表的数据如下所示:

如何在Excel中创建级联列表

当选择第一级中的“图书”时,第二级中会出现“计算机、文学、教材”三个项目,当选择第二级中的“计算机”项时,第三级中会出现“汇编语言、C程序设计、VBA手册”三个项目。

我们先把这些数据输入到Excel工作表中,并定义相应的名称,如下所示。

如何在Excel中创建级联列表

将单元格区域A1:A2定义为“分类”;将单元格区域B1:B3定义为“图书”,C1:C3定义为“文具”;将单元格区域D1:D3定义为“计算机”,E1:E3定义为“文学”,F1:F3定义为“教材”;将单元格区域G1:G2定义为“办公用纸”,H1:H3定义为“桌面用品”,I1:I3定义为“书写工具”。

至此,示例中的数据定义完毕。可以发现一个规律,即第二级的名称就是第一级的文字内容,第三级的名称就是第二级的文字内容。

接下来,设置数据有效性(在Excel 2010中改为“数据验证”)。

选中要设置数据有效性的单元格,本例中为单元格L1,选择设置条件为“序列”,在“来源”中输入“=分类”。(还记得吗?“分类”就是我们定义的单元格区域A1:A2的名称)。这是第一级项目的单元格。

选中要显示第二级项目的单元格,本例中是单元格O1,设置“来源”为公式“=INDIRECT(L1)”。

选中要显示第三级项目的单元格,本例中是单元格R1,设置“来源”为公式“=INDIRECT(O1)”。

“数据验证”对话框中设置的结果如下所示。

如何在Excel中创建级联列表

大功告成!如下所示:

如何在Excel中创建级联列表

选择单元格L1中的项目,单元格O1中出现相应的子项目;选择单元格O1中的项目后,单元格R1中出现相应的第三级项目。

注意,当改变单元格L1或单元格O1中的选择后,需要再次重选单元格O1和单元格R1中的项目。Excel不会因为上一级单元格内容的改变而相应自动更改下一级单元格中的内容,只有靠用户自已来改变。

发表回复