Excel 2007 : how do I reference a non-consecutive named range?

标签 excel excel-formula excel-2007

我在第一行有 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/

相关文章:

excel - 将两个嵌套小计应用到 Excel 2007 中的表格

VBA - 递归搜索文件夹并计算找到的文件中的值

excel - 如何在excel中的折线图中添加垂直线?

excel - 计算两个列表之间的共享数

excel - 从美元金额范围内获取票据数量 - 将较大的票据级联到较小的票据

excel - Excel 中的逻辑计算

java - 使用 POI 应用特定的单元格数据格式

excel - 如何自动过滤然后仅复制和粘贴可见单元格

vba - Excel VBA : store version code readable by another workbook

excel - VBA相当于Excel的mod函数