间接(),list2名称独立于list1内容?

时间:2014-05-24 11:09:12

标签: excel list excel-indirect

如果我理解正确,使用indirect()函数,第二个列表必须使用第一个列表中的项目命名。 例如,在第一栏“国家”我写道:美国,加拿大,法国,西班牙...... 然后我需要为每个国家/地区列一个列,列出他们的城市列表,并且必须根据国家/地区列表命名列表。

我想在三个步骤上创建项目名称:Name1,Name2和Name3。 (使用Name2取决于Name1等)

我希望列表名称独立于list conent(因此每个用户可以根据其项目填充列表)。

我想将我的名单命名如下:

第一级列表: Ñ

第二级列表:

N1,N2,N3,N4 ......

第三级列表:

N1.1,N1.2,N1.3

N2.1,N2.2

... N3.1

...

如果需要保持可行,我们可以将每个列表限制为最多10或15个项目。

如果没有VBA,你可以帮助我,这将是很棒的

提前谢谢

2 个答案:

答案 0 :(得分:0)

根据以下方案:

enter image description here

使用这些公式:

F4 -> =IF(LEFT(B4;LEN($F$3))=$F$3;B4;"")
H4 -> =OR(IFERROR(FIND(".";F4;LEN($F$3)+2)>0;FALSE);F4=$F$3)
J4 -> =IF(L4="";J3;J3+1)
K4 -> =IF(M4="";"";J4)
L4 -> =IF(H4;"";F4)
M4 -> =IF(L4<>"";C4;"")
O4 -> =IFERROR(VLOOKUP(ROW(P1);$J$4:$M$17;3;);"")
P4 -> =IFERROR(VLOOKUP(ROW(P1);$K$4:$M$17;2;);"")
Q4 -> =IFERROR(VLOOKUP(ROW(P1);$K$4:$M$17;3;);"")

列J结果索引不清楚,比我创建干净的列K(=没有重复的索引 - 但没有必要,如列O&amp; P所示 - 相同的结果)。
结果 - 原始这是没有删除空白的搜索方法,结果重建这是没有空白的结果...
公式仅显示1°等级的字段,而不显示子数据。
您可以隐藏不需要的列...
对于结果使用空格,您只能使用列F / H / L / M.
显然,VBA更简单......

答案 1 :(得分:0)

最后,我可以使用函数进行数据验证:

=offset()

indirect()
index()
match()

和列表

我认为也可以使用Vlookup(),但我遇到了3个嵌套vlookup的问题。

通过上述4个功能,我可以做3个下拉动态列表。

我确信有一种更简单,更优雅的方式,但我最终得到了它。

我无法编写所有excel表格,但如果有时可以帮助某人,我可以粘贴功能:

Nivel 1

=OFFSET(Topic1;0;0;COUNTA(Topic1);1)

Nivel 2

=OFFSET(INDIRECT(INDEX(TopicsLevel2;MATCH(C15;Topic1;0)));0;0;COUNTA(INDIRECT(INDEX(TopicsLevel2;MATCH(C15;Topic1;0))));1)

Nivel 3

=OFFSET(INDIRECT($F15);0;0;COUNTA(INDIRECT($F15));1)
在F15中

=INDEX(TopicsLevel2;MATCH(C15;Topic1;0))&INDEX(Suffix;MATCH(D15;INDIRECT(INDEX(TopicsLevel2;MATCH(C15;Topic1;0)));0))

列表名称nivel 3是列表nivel 1和列表nivel 2的名称的串联。