【问题标题】:Creating a dynamic range between two named ranges without VBA?在没有 VBA 的两个命名范围之间创建动态范围?
【发布时间】:2012-05-15 18:53:12
【问题描述】:

我正在尝试使用 Excel 函数创建一个动态范围,该函数将对两个命名范围之间的值求和。

这类似于在 2010 年创建一个表,您可以将所有添加到表中。

我的问题是我不想创建表。我只想指定一个起点和终点并从那里创建范围。

我尝试用冒号分隔两个命名范围,即 rng1:rng2,但这与使用两个绝对单元格引用(如 A1:C16)的工作方式不同。相反,它单独选择两个范围,而不是两个范围的范围。

有没有办法做到这一点?

当前,我使用 OFFSET 和 COUNTA 函数使用动态范围,但这些仅在您对整个行/列或特定范围感兴趣时才有效。

【问题讨论】:

  • 这让我有点困惑“我正在尝试使用 Excel 函数创建一个动态范围,该函数将对两个命名范围之间的值求和。”动态范围只是设置范围定义的一种奇特方式 - 正如您通过 offset 和 counta 或 match、index 或您可能使用的任何其他内容所知道的那样。当您说要对 2 个命名范围之间的值求和时,我想到了 =sum(rng1,rng2)。我知道你想要一些不同的东西,但你能更清楚吗?你能发布一份你想做的工作簿吗?
  • =sum(rng1, rng2) 将简单地将两个单独的命名范围相加,而不是它们之间的值。如果将 rng1 定义为单元格 A1,将 rng2 定义为单元格 A17,则 =sum(rng1,rng2) 只会将单元格 A1 和 A17 中的值相加,而不是 A1 到 A17。单元格 A2-A16 将不包括在内,这是我的问题。
  • 见下面我的回答。您需要将您引用的范围命名为两个,然后它将将该范围内的单元格与您要对其求和的任何其他单元格相加。

标签: excel


【解决方案1】:

与 Addikt 的最后一条评论相反,将 2 个定义的范围相加并不仅仅将它们的左上角最值相加。

答案在这里:

Name rng_1 and refer it to H13:H16
place the number 1 in all cells in that range

Name rng_2 and refer it to I13:I14
place the number 2 in all cells in that range

In cell K13 type = sum(rng_1,rng_2). Answer will be 8, not 3.

【讨论】:

  • + 1 :) 是的,关键是使用 "," 而不是 ":" :)
  • 虽然这并没有彻底解决我的问题,但它确实让我走上了正轨。我试图在两个动态定义的 nmaed 范围之间添加值。相反,我选择使用基于总和单元格地址的偏移量加上 INDIRECT 来创建一个 sum(rng1:current cell-1),其中“rng1”和“current cell-1”是间接引用的相应单元格地址。跨度>
【解决方案2】:

基于您的问题不够清晰,完全是疯狂的猜测,但假设您在 A 列中有一系列数字。您可以“动态”对第 1 行到n 中的数字求和,如下所示:

=SUM(A1:INDIRECT(B1))

其中单元格 B1 包含类似“A10”的值(这将汇总单元格 A1:A10)。

更改b1 中命名的单元格,您的求和公式将相应更新。您还可以在B1 中指定完整范围,即如果单元格B1 包含“A1:A10”:

=SUM(INDIRECT(B1))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多