在
WPS表格中为了方便规范数据的录入,我们经常会在相应的单元格中提供下拉列表以便选择录入。但如果需要建立多级下拉列表,那又该如何处理呢?
在某学校设有高一、高二、高三共三个级部,每个级部的分别有十个左右的班级。以前在统计学生相关信息的时候,经常发现各班级、级部上交的表格很不规范,因此为了规范起见,有必要建立多级的下拉列表,如图1所示。
图1
为此,我们应该借助“名称”以达到目的。
一、定义名称
如图2所示。
图2
在Sheet1工作表中建立如图表格。各列标题就以相应的级部名称来表示,其下则分别录入各相应的班级,四个级部分别在A-C列。在E1单元格录入“级部”,其下录入四个级部名称。注意此处级部名称应与各列标题一致。
选中A列单元格,点击菜单命令“插入→名称→定义”,打开“定义名称”对话框。在上方的输入框中输入“高一”,并确认下方的“引用位置”输入框中数据为“=Sheet1!$A:$A”,如图3所示。
图3
点击确定后,就可以将A列单元格区域定义为“高一”了。不信,你可以在表格的名称框中输入“高一”,回车,是不是整个A列就被选中了?
可以用同样的方法,分别选中B列、C列、E列单元格区域后,在“定义名称”对话框中将它们分别定义为“高二”、“高三”、“级部”名称。也可以直接在上方的输入框中输入名称,然后将下方的“引用位置”修改成相应的单元格区域,然后点击“添加”按钮,将名称添加到当前工作簿的名称列表中。比如定义“高三”名称时,其引用位置应改为“=Sheet1!$C:$C”,定义“级部”名称时,其引用位置应改为“=Sheet1!$E:$E”。
二、设置数据有效性
如图4所示表格。
图4
选中C2及以下单元格区域,点击菜单命令“数据→有效性”,打开“数据有效性”对话框。在“允许”下拉列表中选择“序列”,然后在下方的“来源”输入框中输入“=级部”,其它设置如图5所示。
图5
确定后,将鼠标定位于C2或其下单元格,可以发现右侧出现下拉按钮,点击即可出现在Sheet1工作表E列中所列的级部名称列表。
关键是表格中的D列,如何根据C列所选级部名称在D列单元格出现相应级部的班级列表呢?其实,这一步也是属于窗户纸性质的,一捅就破。选中D2及以下单元格区域,在“数据有效性”对话框中,“允许”列表仍选“序列”,但在“来源”输入框中输入公式“=INDIRECT($C2)”,如图6所示。
图6
确定后再单击相应单元格,就可以看到图1所示的效果了。
函数INDIRECT($C2)的作用是返回在C2单元格中的数据的值。比如本例图1中“=INDIRECT($C2)”的结果就是“=高一”,而“=INDIRECT($D2)”的结果就是“=高三”。
如有更多级别的下拉列表也不用愁,就是这么两步,先定义名称,然后在数据有效性对话框中进行引用名称就可以了。