从某个细胞计数到空白细胞


1

我正在尝试创建一个动态公式,从细胞D3向下计算所有行,直到达到空白单元格。我希望能够每天添加新数据并让范围自动更新并包含最新数据以提供一系列小计和平均值。

有一个范围的公式包括D3中的单元格,直到下一个空白单元格将更新并包含新数据,当最后一个空白单元格填入新一天的数据时?


你能澄清你想要做什么以及你需要做什么 range?您是否尝试定义可在其他公式中使用的动态命名范围?
Raystafarian

在C列中,我有2行标题,然后数据从D3开始,这是每天添加的,因为它显示每天的总下载量。在D303中有一个总计框之前,数据当前达到D297。我希望有一个范围,所以每次填充D298和D302之间的单元格(即非空白)时,总数会更新。随着更多数据的添加,当我插入新行以包含更多数据时,总框将向下移动,因此我希望范围扩展到总计框的顶部(即总框之上的一个单元格)。
Charlie

您的总框是非空白连续单元格的总和或计数?
Raystafarian

你的问题不清楚,你需要计算细胞(你的第一句话)还是你需要对那些非空白的数据做些什么?
Raystafarian

我想要一个命名范围,其中包含从D列开始直到空白单元格的D列中包含数据的所有单元格。然后,这应该创建一个动态公式,该公式应该包括每天添加的新数据
Charlie

Answers:


2

让我确保我有这句话:

  • D列中有大量数据需要合计。
  • 第1行和第1行2是标题行,包含文本。
  • D列中的第3行及以下包含要合计的值。
  • 在要汇总的数据下方,有一个单元格,您希望在其中放置总数。
  • 在要总计的数据和显示数据的单元之间可能存在或可能不存在空白单元。

鉴于上述情况,如果你实际上没有 需要 用于其他目的的命名范围,公式非常简单:

=SUM(INDIRECT(CONCATENATE("D3:D",CELL("row")-1)))

演练:

  • 将指定单元格中的所有数值(自动排除空白和非数字值)相加。
  • 间接 允许您通过公式构建单元格引用。
  • CONCATENATE 允许您将字符串和公式结果的部分连接到一个字符串中。
  • “D3:d” 是我们最终希望传递给SUM的引用的第一部分。
    • 这标识从D3开始的单元格范围,并将在D列中的另一个单元格结束。
    • 由于它是作为字符串而不是实际的单元格引用提供的,因此如果移动或复制单元格,则不会更改 - 范围将始终指向列D,并始终从第3行开始。
  • 细胞 让您获取有关单元格的信息。在这里,我们得到当前单元格的行号。这使得公式可以自动调整行号,无论它放在何处。
  • -1 用于从CELL返回的行号中减去1,从而引用当前单元格上方的行。

对于D303,这实际上与以下内容相同:

=SUM(D3:D302)

0

我想我的答案在这里: 在Excel 2010中,如何创建具有函数的模板自动在包含数据的最后一个单元格中结束? 可能有用。

如果你能够,我强烈推荐表格,它们也有内置的总行功能。

如果没有回到动态命名范围。


编辑
正如我们所讨论的,您希望能够使用动态命名范围作为数据透视表的源范围:

这需要对动态命名范围稍作修改。首先,您需要包含列标题的范围,因此数据透视表具有标题,然后您需要扩展所有相关列的范围。

=OFFSET(Sheet1!$F$1,0,0,COUNTA(Sheet1!$F$1:$F$12),COUNTA(Sheet1!$F$1:$G$1))

在这里你可以看到,而不是结束公式 ),) 我们添加了一个列引用,它通过覆盖所有需要列的第一行来返回列的范围。

插入数据透视表时,请使用此范围的名称。


笔记
如果要在数据透视表中使用命名范围,则将OFFSET包装在任何类型的COUNT中将不起作用,但这不是必需的,因为您可以在数据透视表上运行计数。

如果您和您的用户都使用2007或更高版本然后使用表格,即使您添加更多列,这将保持动态,并且永远不会要求您进入并增加指定范围的高度。您仍然可以将表格引用到数据透视表。


好吧我认为我需要的是修改这个公式的结尾:= OFFSET(SheetName!$ A $ 2,0,0,COUNTA(SheetName!$ A $ 2:$ A $ 500),)以便Counta从A2倒计时直到下一个空白单元格。这将给我我追求的动态范围。所以我只需要'计算到空白单元'的公式来代替A500
Charlie

那个公式是我所知道的最接近真实的公式 next blank row 计算。唯一不动态的是你设置了最大范围。我不相信有一种方法可以让它真正动态,除非你使用VBA或者我的知识太深奥。您对数据范围的期望有多大?只需将500设置为高于您认为的最大值即可。如果你真的无法使用这样的规定范围,那么我再次推荐Excel表格,因为这些将是真正的动态。
CLockeWork

所以你最终得到一个看起来像这样的公式:= COUNTA(MyRange)MyRange名称将创建一个范围从A2(或你选择的任何东西)到该列中的第一个空白,其中它不会更高比命名范围公式末尾规定的最大范围
CLockeWork

好吧,我现在有一个公式Counta(D3:D305),它选择我想要的所有细胞。如何将此公式转换为范围?
Charlie

创建这样的命名范围 =OFFSET(SheetName!$D$3,0,0,COUNTA(SheetName!$D$3:$D$400),) (注意D400;增加一点摆动空间没有坏处)然后你的公式是 =COUNTA(RangeName) 求和的公式不是范围,但是如果您希望能够在任何地方调用公式的结果,则将其保存为命名公式,或者将其作为整个命名范围: =COUNTA(OFFSET(SheetName!$D$3,0,0,COUNTA(SheetName!$D$3:$D$400),)),然后您可以通过简单输入将结果放在任何地方 =MyNamedFormula 或者你给它的任何名字,在一个单元格中
CLockeWork
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.