0

我正在尝试在 Excel 中创建依赖下拉列表。

我有 4 列。公司、年龄组、成员和区域。

当我选择公司名称 1 时,我应该得到与该公司相关的一组详细信息。我使用了 INDIRECR 和 SUBSTITUTE,它适用于第一两列。

没有宏我可以这样做吗?

我有一个 Table1 - 公司

Company 1
Company 2
Company 3

对于每家公司,我都有一组数据表,例如

Age      Members          Area

我拿了两张工作表。

在 Sheet1 中,我拥有来自所有公司的所有数据,并且我已经为公司和其他列创建了定义名称。

在 Sheet2 中,我正在创建下拉列表。

在单元格 A2 中,我在源区域中将公司列表创建为 = 公司(因为我在定义名称范围时给出了相同的名称)

对于 2nd 和 Dependent Dropdown(Age),我使用了 =INDIRECT(SUBSTITUTE(A2," ", "")) 并且它有效。

但是对于在公司名称更改时也应该更改的第三个下拉菜单,并没有发生。

4

1 回答 1

1

让我们假设有一家公司:Microsoft. 您当前有一个命名范围 ( Microsoft),其中包含年龄组列表;让我们假设它们Under 1818 to 40Over 40。对于每个年龄组,都有一个成员列表。

您需要为每个成员列表提供一个源自公司名称和年龄组的名称;例如MicrosoftUnder18会有Alice,BobCharlie; Microsoft18to40将有Dave, Edgar,Fran并且MicrosoftOver40将有GertrudeHilary.

假设下拉菜单 1 在A1,下拉菜单 2 在A2,下拉菜单 3 在A3,你会希望你的下拉菜单的来源A3是:

=INDIRECT(SUBSTITUTE(A1&A2," ",""))

您需要根据需要对尽可能多的下拉菜单重复此操作。

如果您的数据可能经常更改,则将数据转换为常规格式可能会更容易。如果您只是想查看列表,则可以使用没有任何数据的数据透视表(只需将过滤字段放在Page部分中,将人员放在Row部分中);如果您正在做更复杂的事情,VBA 例程可以帮助您。维护大量命名范围是灾难的根源。

于 2012-04-18T11:37:22.577 回答