我在第一行有 5 个单元格:A1 是 1,B1 是 2,C1 是 3,D1 是 4,E1 是 5。现在我想选择奇数并将它们命名为“list_a_odd”,所以我按住 CONTROL 并选择A1、C1 和 E1,在名称框中键入“list_a_odd”,然后按 ENTER。现在在 A2 中,如果我输入“=SUM(list_a_odd)”,它会给我 9 的结果,这是正确的和预期的。但是如果我输入“=list_a_odd”,它会给我一个错误“#VALUE!”。
但是,如果我选择所有 5 个单元格(A1 到 E1)并将其命名为“list_a”,并将“=list_a”放入 A2,它将在单元格中显示“1”,我可以将 A2 拖到 E2 以显示list_a 中的所有 5 个数字。因此,当引用单元格中的非连续命名范围时,这看起来只是一个问题。这是一个excel错误吗?
最佳答案
list_a
您描述的行为是范围的隐式交集特征的一个示例。 list_a 指的是一个连续范围A1:E1
,一个需要单个单元格的公式,当放置在 A
中时至E
使用此范围引用的列范围计算出交点并返回该单元格。
即C2中的一个公式=A1:E1
或 =list_a_odd
实际上将引用返回到 C1
.
正如你所说,list_a_odd
是一个不连续的多区域范围。隐式交集不适用于不连续的范围。
一些(但不是全部)函数适用于不连续的范围,包括 SUM,这就是 =SUM(list_a_odd)
的原因按预期工作,就像 =SUM(A1,C1,E1)
也可以。
编辑
要返回表示不连续范围的连续范围,我将使用用户定义的函数与数组公式相结合。
在 UDF 中使用 Range.Areas
属性来循环遍历不连续范围中的每个子范围(请记住,Areas
中的每个项目都可以是单个单元格或本身的范围)。建立一个值数组以返回工作表上的数组公式。
确切的细节将取决于您的具体要求以及您想要制作 UDF 的通用程度。试一试,如果您需要更多帮助,请再次发布
关于Excel 2007 : how do I reference a non-consecutive named range?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6156233/