Excel中的动态数据验证(非VBA!)

Excel中的动态数据验证(非VBA!),excel,dynamic,validation,Excel,Dynamic,Validation,我得到了包含m产品的n类别。此列表未排序,例如: 下面是我对这个列表的基本要求: 下拉列表:数据验证,动态存储第一列中每个唯一值的列表(=我无法选择类别_5,因为它还不存在) 下拉列表:根据第一个下拉列表中选定的类别提供所有产品的列表 是否有任何非VBA解决方案?要使其在Excel中不使用VBA的情况下工作,您需要某种方法来重置第2列中数据验证的有效条目范围,并且由于源只能是列表或范围,因此当相关第1列值更改时,您必须编写一些代码来更改该信息 如果您不想走VBA路线,那么对于Access(或

我得到了包含
m
产品的
n
类别。此列表未排序,例如:

下面是我对这个列表的基本要求:

  • 下拉列表:数据验证,动态存储第一列中每个唯一值的列表(=我无法选择类别_5,因为它还不存在)

  • 下拉列表:根据第一个下拉列表中选定的类别提供所有产品的列表


  • 是否有任何非VBA解决方案?

    要使其在Excel中不使用VBA的情况下工作,您需要某种方法来重置第2列中数据验证的有效条目范围,并且由于源只能是列表或范围,因此当相关第1列值更改时,您必须编写一些代码来更改该信息


    如果您不想走VBA路线,那么对于Access(或者InfoPath)这样的数据库来说,这些类型的活动是必不可少的,它们更适合您的需要。

    电子表格布局示例:

    • A2:A13
      -类别列表,项目不是唯一的
    • B2:B13
      -产品列表
    • 单元格D2
      下拉列表-下拉列表1源、唯一项、动态
    • 单元格F2
      下拉列表-下拉列表2项目增量编号1。。(减去公式中的计算)
    • 单元格G2
      下拉列表-下拉列表2源,动态
    • 单元格I2
      -下拉式单元格1
    • 单元格J2
      -下拉单元格2
    单元格
    D2
    :数组公式(Ctrl-Shift-Enter从公式窗口切换到Enter,卷曲的括号由Excel插入,而不是由用户插入),向下复制:

    {=INDEX($A$2:$A$13;MATCH(0;COUNTIF($D$1:D1;$A$2:$A$13);0))}
    
    提供唯一的类别列表

    单元格
    G2
    :数组公式,请按照上一节中的说明操作:

    {=INDEX($B:$B;SMALL(IF($A$2:$A$13=$I$2;ROW($A$2:$A$13);"");$F2))} 
    
    给出单元格
    I2
    中所选类别下的产品列表

    列表未排序:最好按类别和产品对初始列表进行排序。
    无错误处理:应使用
    IF-ISERROR
    子句更新公式


    太棒了!我几乎认为,我需要在VB中实现它。谢谢:)