我需要两个用于数据验证的动态下拉列表。一个包含可供选择的唯一大陆列表,第二个列表是根据所选大陆动态生成的国家子集。数据没有任何特定的顺序:
甲乙
---+--------
1 | 大陆国家
2 |非洲 Algolia
3 |亚洲 中国
4 |非洲 埃塞俄比亚
5 |欧洲 法国
6 |欧洲 德国
7 |亚洲 印度
8 |欧洲 意大利
9 |亚洲 日本
10 |欧洲 波兰
11 |非洲 南非
12 |欧洲 西类牙
我已经成功创建了第一个下拉列表,方法是使用隐藏列生成唯一的大陆列表,然后将它们关联为命名范围。但是,这部分已经完成
如何根据第一个列表中选择的 Continent 关联创建第二个动态生成的过滤列表(最好在列表中没有任何间隙)?
我正在消化的实际数据有数千个数据点,因此性能是一个问题,如果可能的话,我宁愿不使用 VBA。
编辑:通过更多搜索,我找到了一个链接 helpful ,这为我提供了这个公式:
IFERROR(INDEX($A$2:$A$100,SMALL(IF($B$2:$B$100="是",ROW($A$2:$A$100)-ROW($A$2)+1),ROWS ($A$2:$A2))),"")
它更接近了,但是它不起作用,因为我需要将它们放在我的工作表中的单独列中,用于我需要动态下拉列表的每一行,而且我不确定过滤后的列表会有多大。
有没有办法直接在命名范围内执行此操作?
最佳答案
如果你 按大洲升序对列表进行排序,然后您可以使用公式构建一个没有任何辅助单元格的动态范围名称
=INDEX(Sheet1!$B:$B,MATCH(Sheet1!$E$2,Sheet1!$A:$A,0)):INDEX(Sheet1!$B:$B,MATCH(Sheet1!$E$2,Sheet1!$A:$A,1))
其中单元格 E2 具有选定的大陆。这是具有相同场景的屏幕截图。将 Category 替换为 Continent,将 SubCategory 替换为 Country。
关于excel - 生成过滤的动态下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20850122/