在Excel中创建动态列表

在Excel中,我们可以使用“数据有效性”功能来创建下拉列表,供用户从中选择。例如,如下图所示:
DynamicListSample1
①选择主数据工作表中的B列。
②调出“数据有效性”对话框,选择“允许”下拉列表框中的“序列”。
③在“来源”中输入要提供用户选择的文本,例如:请假,出差,年休。
④单击“确定”后,在主数据工作表的B列中任一单元格单击,出现带有数据的可供选择的列表,如下图。
DynamicListSample2
当然,也可以将需要提供的数据放置在工作表中的某单元格区域内,然后在“来源”中输入该单元格区域地址。
上述方法对于固定的或者说事先知道在列表中提供的数据时,非常合适。然而,如果下拉列表中的数据需要不断增加,或者需要调整,仍然按照上述方法的话,则需要重复上述步骤。
下面提供一种方法,能够动态改变列表中的数据,而无需每次调出“数据有效性”对话框。先看看下图:
DynamicListSample3
①在基础数据工作表中,在列A单元格中依次输入想要显示在下拉列表中的数据,如“请假”、“出差”、“换休”。
注:将这些数据输入在单独的工作表中,能够避免在主工作表中操作时无意中修改这些数据。
②调出“新建名称”对话框,在“名称”中输入“List”。
③在“范围”列表中选择“工作簿”。
④在“备注”中输入一些说明文字。
⑤在“引用位置”输入公式“=OFFSET(基础数据!$A$1,0,0,COUNTA(基础数据!$A:$A),1)”。
现在,回到主数据工作表,如下图所示。
DynamicListSample4
①选择列C。
②调出“数据有效性”对话框,选择“允许”下拉框中的“序列”。
③在“来源”中输入公式“=List”,即与前面定义的名称连接。
此时,单击列C中的任一单元格,将出现下拉列表框,包括在基础数据工作表中列A的数据,如下图所示。
DynamicListSample5
现在,您在基础数据表中添加数据,如加班,此时在主数据工作表的列C中单元格的下拉列表中会自动出现添加的“加班”项,如下图所示。
DynamicListSample8


提示:您可以在评论中使用HTML标签,且任何与HTML标签相同的符号都会被理解为HTML标签并以相应的格式显示.如果您的评论中有代码,可以使用相应的标签,例如,如果有VB或VBA代码,则可以使用[vb]标签,即[vb]放置的代码[/vb],这样会很清晰地显示代码.

发表评论