使用查找进行Excel数据验证下拉列表

时间:2016-01-21 23:50:25

标签: excel validation drop-down-menu excel-formula

出于某种原因,我似乎无法找到一个例子。

我有一个包含两列的表,[县]和[街道]。

我有另一张包含许多列的表,其中两列是[County]和[Street]。在第二个表格中,每一行都已填入[县],但我需要允许用户点击每行的[街道]单元格,然后选择(从下拉菜单中)街道。下拉列表中的Streets必须动态更改为仅显示第二个表中该特定行上County中包含的第一个表中的Streets。

表1:

County   |  Street
-------------------
County 1 | Street 1
County 1 | Street 2
County 1 | Street 3
County 2 | Street 4
County 2 | Street 5
County 2 | Street 6

表2:

County   |   Street   |  Column 3  |  Column 4 
------------------------------------------------
County 1 |{Drop-down} |  --------  |  --------
County 1 |            |  --------  |  --------
County 1 |            |  --------  |  --------
County 2 |            |  --------  |  --------
County 2 |            |  --------  |  --------
County 2 |            |  --------  |  --------

我能找到的最好的条件数据验证示例是使用INDIRECT并将验证指向每个郡的预先创建的Streets列表。这不是一个好的选择,因为这个数据集非常大并且经常更新。我想使用某种INDEX-MATCH数组查找从原始数据集动态创建列表(表1),但是当我尝试使用查找公式时,我一直收到错误。

如果可能,请保留非VBA的答案。可能需要在未启用VBA的应用程序中使用此工作簿。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

使用Sheet2上的查找表,按列A升序排序,以及Sheet1上的下拉列表,执行以下操作:

  • 选择Sheet1!B2(街道下拉菜单的第一个单元格)
  • 使用名称管理器创建一个新的命名范围,将其命名为“StreetList”并使用以下公式:

=INDEX(Sheet2!$B:$B,MATCH(Sheet1!$A2,Sheet2!$A:$A,0)):INDEX(Sheet2!$B:$B,MATCH(Sheet1!$A2,Sheet2!$A:$A,1))

  • 在编写公式之前选择正确的单元格非常重要,因为它包含左侧单元格的相对引用。
  • 使用List选项和命名范围=StreetList作为源
  • 将数据验证应用于单元Sheet1!B2
  • 复制数据验证单元格。

当活动单元格位于“县1”旁边时,下拉列表仅包含该县的街道。

enter image description here

选中该单元格B2,打开名称管理器,单击StreetList的公式,并查看公式结果周围的行进蚂蚁。

enter image description here