Excel中的动态数据验证(非VBA!)
我得到了包含Excel中的动态数据验证(非VBA!),excel,dynamic,validation,Excel,Dynamic,Validation,我得到了包含m产品的n类别。此列表未排序,例如: 下面是我对这个列表的基本要求: 下拉列表:数据验证,动态存储第一列中每个唯一值的列表(=我无法选择类别_5,因为它还不存在) 下拉列表:根据第一个下拉列表中选定的类别提供所有产品的列表 是否有任何非VBA解决方案?要使其在Excel中不使用VBA的情况下工作,您需要某种方法来重置第2列中数据验证的有效条目范围,并且由于源只能是列表或范围,因此当相关第1列值更改时,您必须编写一些代码来更改该信息 如果您不想走VBA路线,那么对于Access(或
m
产品的n
类别。此列表未排序,例如:
下面是我对这个列表的基本要求:
是否有任何非VBA解决方案?要使其在Excel中不使用VBA的情况下工作,您需要某种方法来重置第2列中数据验证的有效条目范围,并且由于源只能是列表或范围,因此当相关第1列值更改时,您必须编写一些代码来更改该信息
如果您不想走VBA路线,那么对于Access(或者InfoPath)这样的数据库来说,这些类型的活动是必不可少的,它们更适合您的需要。电子表格布局示例:
-类别列表,项目不是唯一的A2:A13
-产品列表B2:B13
下拉列表-下拉列表1源、唯一项、动态单元格D2
下拉列表-下拉列表2项目增量编号1。。(减去公式中的计算)单元格F2
下拉列表-下拉列表2源,动态单元格G2
-下拉式单元格1单元格I2
-下拉单元格2单元格J2
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中实现它。谢谢:)