Excel 2007:我如何引用一个非连续的命名范围?

我在第一行有5个单元格:A1是1,B1是2,C1是3,D1是4,E1是5.现在我要select奇数并将其命名为“list_a_odd”,所以我拿着CONTROL并selectA1,C1和E1,并在名称框中键入“list_a_odd”,然后按Enter。 现在在A2中,如果我键入“= SUM(list_a_odd)”,它会给我9的结果,这是正确的和预期的。 但是,如果我input“= list_a_odd”,它会给我一个错误“#VALUE!”。

但是,如果我select所有5个单元格(A1到E1)并将其命名为“list_a”,并且在A2中放置了“= list_a”,它将在单元格中显示“1”,并且可以将A2拖动到E2以显示list_a中的所有5个数字。 所以这在引用单元格中的非连续命名区域时看起来只是一个问题。 这是一个Excel错误?

您所描述的list_a行为是范围的隐式相交特征的示例。 list_a指的是一个连续范围A1:E1 ,一个预期单个单元格的公式,当放置在AE列范围内时,使用此范围引用计算出交点并返回该单元格。
也就是说,C2 =A1:E1=list_a_odd实际上只是将一个请求转回到C1

正如你所说, list_a_odd是一个不连续的多区域范围 。 隐式相交不适用于不连续范围。
一些(但不是全部)函数适用于不连续范围,包括SUM,这就是为什么=SUM(list_a_odd)按预期工作,就像=SUM(A1,C1,E1)工作。

编辑

要返回代表不连续范围的连续范围,我将使用用户定义的函数与数组公式相结合。

在UDF中,使用Range.Areas属性来遍历不连续范围内的每个子范围(请记住, Areas中的每个项目可以是单个单元格,也可以是单独的范围)。 构build一个值数组以返回到表单中的数组公式。

确切的细节将取决于你的具体要求,以及你想如何制作UDF。 如果您需要更多帮助,请继续阅读并重新发布