我正在尝试在Excel中创建依赖下拉列表。
我有4列。公司,年龄组,会员和区域。
当我选择公司名称1时,我应该获得与该公司相关的一组详细信息。我使用了INDIRECR和SUBSTITUTE,它适用于前两列。
没有宏,我可以这样做吗?
我有一个表1 - 公司
Company 1
Company 2
Company 3
对于每个公司,我都有一组数据表,如
Age Members Area
我已经拍了两张工作表。
在Sheet1中,我拥有所有公司的所有数据,我自己创建了公司和其他列的定义名称。
在Sheet2中,我正在创建Dropdownlist。
在单元格A2中,我创建了我的公司列表为=源区域中的公司(因为我在定义名称范围时给出了相同的名称)
对于第二次和相关下拉(年龄),我使用了= INDIRECT(SUBSTITUTE(A2,“”,“”))并且它有效。
但是对于第三次下拉,当公司名称发生变化时也应该更改,但是没有发生。
答案 0 :(得分:1)
我们假设有一家公司:Microsoft
。您目前有一个命名范围(Microsoft
),其中包含年龄组列表;我们假设它们是Under 18
,18 to 40
和Over 40
。对于每个年龄组,都有一个成员列表。
您需要为每个成员列表指定一个源自公司名称和年龄组的名称;例如MicrosoftUnder18
将Alice
,Bob
和Charlie
; Microsoft18to40
将Dave
,Edgar
,Fran
和MicrosoftOver40
将Gertrude
和Hilary
。
假设下拉列表1位于A1
,下拉列表2位于A2
,而下拉列表3位于A3
,您需要放置源代码 - 在A3
下来:
=INDIRECT(SUBSTITUTE(A1&A2," ",""))
您需要根据需要重复此操作以获得尽可能多的下拉菜单。
如果您的数据可能经常更改,则可能更容易将数据转换为常规格式。如果您只是想查看列表,则可以使用数据透视表而不使用任何数据(只需将过滤器字段放在Page
部分中,将人员放在Row
部分中);如果您正在做更复杂的事情,VBA例程可以帮助您。保持许多命名范围是灾难的一种方法。