我想在Excel中的以下内容:
在相邻小区两个下拉列表:
下拉列表#1 | 下拉列表#1
Dropdown list 1:
One
Two
Three
如果我在第一个单元格中选择一个,在第二格的列表应包含以下选择:
One:<br/>
1.1<br/>
1.2<br/>
1.3
如果我在第一个单元格中选择两个,在第二格的列表应包含以下选择:
Two:<br/>
2.1<br/>
2.2
等等。 有很多教程的身边,但我有一些麻烦搞清楚这其中的解决了这一问题询问。
更新:一个例子。 当选择f.ex. 组标题(COL A),组1中列出向右(COL d)中的条目下组1应该出现在项目标题(列B)下。 与同为其他组。
更新的承诺:
当您使用的验证列表,你必须输入一个范围,如下图所示。
的OFFSET
功能允许动态设置基于其输入标准的范围内。
如果你考虑这个问题:
=OFFSET(C1,0,0,1,1)
- 参数1 =锚定小区
- 参数2 =行数移动,你可以使用负数这里拉升行和正数向下移动
- 参数3 =移动列数。 负值表示向左偏移,正面右侧。
- 参数4 =的范围内的高度(不能为负值并且是可选的,默认值为1)
- 参数5 =的范围内的宽度(不能为负值并且是可选的,默认值为1)
在这种情况下,返回的范围将是C1
因为我们没有行或列偏移和高度和宽度被设置为1
该MATCH
函数将返回的其中值出现在一单元格范围的索引(范围必须是1个细胞宽或1个细胞高)
基于上述丝网印刷=MATCH("Group2",D1:F1,0)
将返回2中,作为“组2”出现在第二小区D1:F1
范围。 (“组1”将返回1,“组3”将返回3,和“组4”将返回#N / A,因为它不存在)。
因此,基于我们可以把MATCH
函数作为我们的第二个参数OFFSET
函数,并挑选在第一个参数匹配列MATCH
函数。
=OFFSET(C1,0,MATCH("Group2",D1:F1,0),1,1)
将返回范围E1
因为我们已经通过从2移位的列C1
,因为的MATCH
=OFFSET(C1,1,MATCH("Group2",D1:F1,0),3,1)
将返回现在回E2:E4
为我们增加的范围内的高度为3,行偏移为1。
最后,我们可以在该“组2”的值更改MATCH
函数将一个单元格的值,这将意味着该范围将动态地改变。
在这里,我使用的细胞A2
=OFFSET(C1,1,MATCH(A2,D1:F1,0),3,1)
以便任何值是细胞A2
将用于抵消的范围内。
而做的最后一件事是将动态范围进入验证(我用B2
)
这将动态设置验证范围。
当我使用OFFSET
带有多个参数的功能,我不知道它的返回回到正确的范围内,我写的,我只是把VBA模块中的小帮手用户定义的函数。
Public Function GetAddress(rng As Range) As String
GetAddress = rng.Address
End Function
这使我把偏移公式中和后会返回范围内的地址。 所以,我可以确保它是正确的。
有可能是一个内置该功能,但我从来没有发现它。