【问题标题】:Referencing a named range by formula in data validation在数据验证中通过公式引用命名范围
【发布时间】:2018-09-22 14:59:54
【问题描述】:

大家好。

我有一系列命名范围,A_ColoursB_Colours 等。 这些代表颜色列表中已排序列的部分,按制造这些颜色的制造商的代码排序。这些是动态命名范围,由COUNTA 构造,用于表示有多少种颜色具有该 mfr 代码。根据我的计算,列表应该是连续的,因为该列是按代码排序的。

我知道我可以通过简单地将=A_Colours 设置为列表源(不带引号)来引用数据验证中的范围。在这种情况下,这确实有效

但是,我有一个下拉列表来控制我想在子下拉列表中显示哪个 A-M 范围。 所以,例如A1 中的下拉菜单显示 A、B、C、D 作为选项。 B1 中的下拉菜单显示与 A1 中所选选项相关的下拉选项。

示例: 我从 A1 的列表中选择 A。 在单元格 B1 中,我希望我的下拉列表显示命名范围 A_Colours 中的所有值。

我尝试了各种方法将文本字符串 A_Colours 传递到 DV 列表源字段,但都失败了。公式中的错误,或者范围评估为错误,或者它允许我从下拉列表中仅选择 A_Colours。

示例 1: A1选A B1 DV盒:

=INDIRECT("$A$1")&"_Colours"

这会产生错误“列表源必须是分隔列表,或者是对单行或单列的引用。”

这可能是因为表格列表已排序吗?我不这么认为,因为上面的第一个例子有效。

示例 2: 在 C1 中使用辅助单元格创建文本字符串“A_Colours”,通过公式: =$A$1&"_Colours"

然后在单元格 B1 的 DV 框中:

=INDIRECT("$C$1")

请帮助我实现这一目标! 谢谢。

[编辑] 解决方案:

按照以下指示创建新工作表。 为每个制造商创建标题(单元格 A1 中的“A”)。 将公式输入A2(作为数组公式,Ctrl+Shift+Enter):

=INDEX(颜色, SMALL(IF((INDEX(颜色, , 1)=INDEX(MFR,MATCH(A$1,MFR[MFRName],0),2)), MATCH(ROW(颜色), ROW (颜色))、"")、行($B$1:B1))、列($A$1:$B1))

我稍微调整了一下,但这要归功于https://www.get-digital-help.com/2009/09/28/extract-all-rows-from-a-range-that-meet-criteria-in-one-column-in-excel/

将公式向下应用到最后加上一些以允许扩展。 将公式应用到最后一个标题。

现在您的列表肯定是连续的、单列且不是动态的,因此符合数据验证的严格标准。

为每个列表创建一个命名范围,使用确切的名称使其简单,但我选择在末尾添加“名称”,例如Mfr1颜色。

在 DV 源列表字段中引用它们(对于我们原始工作表中的单元格 B2),例如: =INDIRECT($B$2&"颜色")

这是做什么的: 在颜色表中查找: MFR 代码颜色代码

在制造商表“MFR”的原始工作表(“A”)的单元格 A1 中查找 MFR 代码的第一个匹配实例,该表具有以下列: MFR名称代码

通过 MATCH(ROW(Colours,Row(Colours),"") 拉出行。

通过最后的 ROWS 和 COLUMNS 检查您想要的行和列。

【问题讨论】:

    标签: excel validation dynamic range formula


    【解决方案1】:

    如果您有备用的辅助范围,您可以在其中创建一个包含 2 列的简单代码表 - Color_ReferenceColor_Names 并将其命名为 c_colors

    A A_Colour
    B B_Colour
    C C_Colour
    

    您可以在单元格 B1 上的 dropdoon 的 CV 列表配置中使用它:

    =INDIRECT(VLOOKUP(A1;c_colors;2;FALSE))
    

    尝试查看这里的示例,它也可能对您有所帮助:http://www.contextures.com/xlDataVal02.html

    【讨论】:

    • 谢谢,这正是我最终所做的。这是一个混乱的解决方法,因为我必须找到表格的元素。将用我是如何做到的来更新问题,但你的回答我的问题,所以我会把它标记为完成。
    猜你喜欢
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多