繁体   English   中英

Excel中的分层动态下拉列表

[英]Hierarchial dynamic dropdown list in Excel

在我的公司,我有一个像这样的数据库,我想创建一个分层动态更新下拉列表。

+-----------+----------+--------+
| Institute | Industry | Course |
+-----------+----------+--------+
| a         | aa       | aaa    |
| a         | aa       | bbb    |
| b         | bb       | mmm    |
| b         | cc       | ddd    |
| b         | bb       | ttt    |
| c         | ee       | fff    |
| d         | ee       | ggg    |
+-----------+----------+--------+


我希望最终结果是这样的。 用户将从顶部开始。 根据顶部条目,底部列表将相应更改。 以下是快照。

我的用户条目列表演示结构


我的方法

我的计划是创建一个数组公式,根据前两个条目索引课程列表。 然后使用offset来获取课程条目。 但我的问题是,虽然我能够索引课程列表,但我无法对它们进行排序以用于数据验证。 数据验证不会忽略我不想要的非填充或错误值。 假设我解决了第一个层次结构问题,我就是研究所和行业的输出。 我试过这个

G8 - 来自下拉列表的研究所输入
G9 - 来自下拉列表的行业输入
H11:H15 - 各自的课程

H11:H15中的公式为{=INDEX(C2:C8,1/(1/((A2:A8=G8)*(B2:B8=H8)*(ROW(C2:C8)-1))))}
这是我得到的输出

我很想发布问题。 如果我能说得更清楚,请告诉我。 此外,我在上网时发现了这些非常有用的链接。 请原谅我添加代码,因为SO不允许新成员使用2个以上的链接

1: http://www.contextures.com/xlDataVal02.html
2: https://www.ablebits.com/office-addins-blog/2014/09/30/dependent-cascading-dropdown-lists-excel/

我想你想要的是把这个公式作为一个数组放入H11:H18:

=IFERROR(INDEX(C2:C8,AGGREGATE(15,6,(ROW(C2:C8)-1)/((A2:A8=G8)*(B2:B8=G9)),ROW()-ROW(H10)),1),"")

然后,您可以将课程选项的数据验证设置为H11:H18。

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM