excel - 生成过滤的动态下拉列表

标签 excel dynamic excel-2007 validation named-ranges

我需要两个用于数据验证的动态下拉列表。一个包含可供选择的唯一大陆列表,第二个列表是根据所选大陆动态生成的国家子集。数据没有任何特定的顺序:

甲乙
---+--------
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。

enter image description here

关于excel - 生成过滤的动态下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20850122/

相关文章:

javascript - 在动态添加元素时刷新 html

c# - 为什么 Excel Interop 会在处理文件后删除图像?

PHPExcel - 如何使用 phpexcel 库更改图表的颜色、边框和背景?

excel - 我收到错误消息 "Object variable or With block variable not set"

excel - 在其中输入值后,如何将光标保持在同一单元格中?

asp.net-mvc - 动态设置必填字段

asp.net-mvc - MVC从动态字段获取数据

用于验证电子邮件地址的 Excel 公式

java - 如何将Excel单元格值插入到列表中?

excel - 使用 Excel 的 Delphi Ole Automation 获取文本而不是值