我获得了n
类别,其中包含m
个产品。此列表未排序,例如:
现在这是我基本上想要对此列表做的事情:
下拉列表:数据验证,动态存储第一列的每个唯一值的列表(=我将无法选择Category_5,因为它尚不存在)。
下拉列表:根据第一个下拉列表中的所选类别提供所有产品的列表。
是否有任何非VBA解决方案?
答案 0 :(得分:2)
示例电子表格布局:
A2:A13
- 类别列表,项目不是唯一的B2:B13
- 产品清单Cell D2
向下 - 下拉列表1来源,唯一项目,动态Cell F2
down - 下拉列表2项增量编号1 ..(公式中的计算量减少)Cell G2
down - 下拉列表2来源,动态Cell I2
- 下拉单元格1 Cell J2
- 下拉单元格2 单元格D2
:数组公式( Ctrl - Shift - 输入从公式窗口输入,曲线括号插入向下复制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
子句更新公式。
答案 1 :(得分:0)
要使它在Excel中没有VBA的情况下工作,您需要某种方法来重置第2列中数据验证的有效条目范围,因为源只能是列表或范围,您必须编写某些内容在关联的第1列值更改时更改该信息。
如果你不想去VBA路线,那么这些活动就是面包&像Access(或可能是InfoPath)这样的数据库,可以更好地满足您的需求。