首页 > 解决方案 > 子集的 Excel 命名范围

问题描述

我在下面有一个示例表:

Field1 Field2
A       1
A       2
B       3
B       4
C       5
C       6

(注:全套更多字段)。

需要定义名称范围 A、B、C,所以当我进行验证时,它会显示它的子集。

即 A 命名范围将导致选择 1 和 2。B 命名范围将导致选择 3 和 4。等等...</p>

现在,我将表格分成单独的列表来定义名称范围(即 A 列下面有两个值,如果为 1 和 2)。然而,当原始表有 60 多个要映射的名称并且每周由多人更新时,这是一个更新的噩梦。

有没有办法从主表自动创建所有这些命名范围并且下拉菜单不显示所有生成的空白?

标签: excel

解决方案


我建议执行以下操作(使用 3 个辅助列):

  1. 使用帮助器 a 列提取字段 1 中的唯一值,并将此新信息保存为动态命名范围。要提取唯一值,您可以使用 UNIQUE 函数(如果您的 excel 版本有)或以下数组公式(不要忘记按 Ctrl+Shift+Enter 才能正常工作):

    =IFERROR(INDEX($A$2:$A$100,MATCH(0,COUNTIF($D$1:D1,$A$2:$A$100),0)),"")
    

现在您可以创建一个数据验证下拉列表,只需将命名范围作为列表调用。

  1. 使用另一个辅助列提取字段 2 中的值,将下拉列表中选择的字段 1 值作为输入。

  2. 使用额外的辅助列来组织步骤 2 中值的数据并删除空白。之后,您可以创建一个新的动态命名范围及其相应的下拉列表。

注意:如果您的 excel 版本有 FILTER 功能,您可以避免第 2 步和第 3 步。

你可以在这里找到一个例子。(下载为excel文件进​​行测试)


推荐阅读