Excel中的dynamic数据validation(非VBA!)

我拿到了m产品的类别。 这个列表是未sorting的,例如像这样:

下面是我基本上想要做的这个列表:

  1. Dropdown:数据validation,dynamic存储第一列的每个唯一值的列表(=我将无法selectCategory_5,因为它还不存在)。

  2. 下拉菜单:在第一个下拉菜单中提供基于所选类别的所有产品的列表。

有没有非VBA解决scheme?

电子表格布局示例:

  • A2:A13 – 类别列表,项目不是唯一的
  • B2:B13 – 产品列表
  • Cell D2下拉 – 下拉列表1来源,独特的项目,dynamic
  • Cell F2向下 – 下拉列表2项目增量编号1 ..(在公式中less计算)
  • Cell G2下降 – 下拉列表2源,dynamic
  • Cell I2 – 下拉单元格1
  • Cell J2 – 下拉单元格2

单元格D2 :数组公式( CtrlShift – 从公式窗口input,曲线括号由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中select的类别下的产品列表。

列表不sorting:更好地按类别和产品对初始列表进行sorting。
没有error handling:应使用IF ISERROR子句更新公式。

Dynamic_dropdown_lists.xls

为了在Excel中不使用VBA,你需要一些重置第2列数据validation的有效条目范围的方法,因为源代码只能是一个列表或范围,所以你必须编写一些代码来改变关联的列1值更改时的信息。

如果你不想走VBA路线,那么这些活动就像Access(或者InfoPath)这样的数据库,可以更好地满足你的需求。