Excel数据验证作为另一个数据验证的输入

时间:2014-08-21 09:03:10

标签: excel list validation dynamic

假设我有一个包含以下信息的工作表:

Manager    Division
Gustavo        1
John           2
Jack           2
Paul           1
Simona         2

我有一个数据验证列表,允许用户选择一个部门。 如果用户选择1,那么在另一个数据验证列表中,我想列出Gustavo和Paul。如果用户选择2,那么在另一个数据验证列表中,我想列出John,Jack和Simona。 而且,数据可能会扩展。我的意思是:也许在Simona下面可以添加另一个用户,让我们说:Berry 1.然后,如果用户选择1,那么Gustavo,Paul和Berry将成为其他数据验证列表的选项。

我已经实现了第一个验证列表。我遇到的问题是问题的第二部分。大多数解决方案都使用名称管理器。这对我来说是一个问题,因为我的数据布局方式以及我需要不断更新名称管理器。我想让它更具动态性,当用户添加或删除数据时,它总是显示该分区的当前列表。之后我会有第三个验证列表,但是,如果我可以学习如何做这个,那么我应该能够解决剩下的问题了。

1 个答案:

答案 0 :(得分:1)

好的,所以你可以用一个工作范围的几个步骤来保存验证列表:

  1. 在工作簿中的某个位置,您可以在多个单元格中创建数组公式
    • 选择细胞,例如F2:F6(我在示例中使用了每个分区5个可能的经理,但你可以改变它)
    • 选中它们全部,输入ARRAY公式(即使用 Ctrl + Shift + 输入输入)=SMALL(IF($B$2:$B$6=$D$4,ROW($B$2:$B$6),""),ROW(INDIRECT("1:5"))) - 管理者的部门在B2:B6 - 选定的部门在D4 ...... 1:5实际上是一个柜台,向我们的5位可能的经理提出。
    • 这应该为您提供一个行号列表,其中除法与所选的相同,然后是一些#NUM!错误
  2. 在下一栏(G2:G6)中输入(普通)公式=IFERROR(INDIRECT("A"&F2),"")。这将为您提供所选部门中经理人姓名的列表。
  3. 在您想要选择的单元格中,使用源=OFFSET($G$2,0,0,COUNT($F$2:$F$6)) - 这会引用名称列表,但会删除底部的空白
  4. 希望这是有道理的!以下是布局图:enter image description here