在excel 2013中创建动态下拉列表

时间:2017-06-13 06:15:14

标签: excel dynamic excel-2013 cascadingdropdown

我有一张包含表名customer_id和Project_id的工作表。对于每个客户ID,显示各种项目。当我尝试通过选择所有那些未来的时候创建数据验证。 Customer_id Project_id 1 1.1 1 1.2 2 2.2 2 2.3 并且喜欢那样。请告诉我一些解决方案。

2 个答案:

答案 0 :(得分:0)

这实际上取决于你想要什么,但由于你的问题不是那么详细,我想你的意思是这个?

您可以通过以下方式从工作表中的数据创建数据验证程序:

  • 选择您希望验证程序在其中的工作表
  • 在功能区中,单击数据选项卡,然后单击数据验证
  • 选择'允许列表'
  • 在源栏中
  • ,选择具有允许值的单元格

另一种方法是使用vba或vb.net宏创建数据验证器。在你的宏中说:

Dim range as Excel.Range = listSheet.Range("A1")
range.Validation.Add(Excel.xlDVType.xlValidateList, Excel.xlDVAlertStyle.xlValidAlertInformation, Excel.xlFormatConditionOperator.xlEqual, "Option1; Option2")

答案 1 :(得分:0)

我猜你想要的是两个下拉列表,第二个取决于第一个中选择的值? (请详细说明你的问题)。要做到这一点,我想还有其他方法,但这就是我通常做的事情:

  

考虑到我总是使用名称来引用范围而不是引用,以提高读数。如果您有疑问,请阅读Use names in Excel formuas

  1. 在图书的某处创建一个表格或范围,其中一列包含主值。
    • 我已使用值master_list
    • 命名范围
  2. 使用两列在图书中的某个位置创建一个表格或范围。第一列包含主/查找值,第二列包含从属值。
    • 我已将查找值列表(即第一列中的值)命名为dependent_list
    • 我已将heading命名为dependent_list上方的单元格(例如,如果依赖关系表在A2中开始,则heading为A1
  3. 订购清单
    • master_list按照您希望的值显示在下拉列表中。
    • dependent_list必须按第一列中的值(主值)排序。如果master_listdependent_list中的订单相同,则无关紧要,但dependent_list的主列中的相同值必须在一起。
    • dependent_list第二列中的顺序将决定从属下拉列表中的顺序。
  4. 您可以选择在未选择主值时定义要在dependent_list中显示的消息。我将其命名为msg_error
  5. 单击您想要主下拉列表的单元格,然后转到数据验证菜单,在此处选择:
    • 允许:列表
    • 来源:添加公式=INDIRECT("master_list")
  6. 我已将主要下拉列表中的单元格命名为key_value
  7. 单击您想要依赖下拉列表的单元格,然后转到数据验证菜单,您可以在其中选择:
    • 允许:列表
    • 来源:添加公式=IF(key_value="";msg_error;OFFSET(heading;MATCH(key_value;dependent_list;0);1;COUNTIF(dependent_list;key_value);1))
  8.   

    请注意,Excel函数是语言依赖于语言,我已将它们翻译成英语,因此可能存在错误。