我正在尝试创建一个动态公式,该公式计算从单元格 D3 向下的所有行,直到达到空白单元格。我希望能够每天添加新数据,并让范围自动更新并包含最新数据,以提供一系列小计和平均值。
有什么公式可以使得从 D3 到下一个空白单元格的区域在最后一个空白单元格中填充新一天的数据时更新并包含新数据?
答案1
让我确认一下这一点:
- 您想要对 D 列中的大量数据进行汇总。
- 第 1 行和第 2 行是标题行,包含文本。
- D 列中第 3 行及以下行包含需要总计的值。
- 在需要计算总计的数据下方,有一个单元格,您希望在其中放置总计数据。
- 需要总计的数据和显示数据的单元格之间可能有或可能没有空白单元格。
鉴于上述情况,如果你实际上没有需要用于其他目的的命名范围,公式相当简单:
=SUM(INDIRECT(CONCATENATE("D3:D",CELL("row")-1)))
演练:
- 和将指定单元格内的所有数值(自动排除空白和非数字值)相加。
- 间接允许您通过公式建立单元格引用。
- 连接允许您将各部分字符串和公式结果合并为一个字符串。
- “D3:D”是我们最终想要传递给 SUM 的引用的第一部分。
- 这将标识一个从 D3 开始到 D 列中另一个单元格结束的单元格范围。
- 由于它是作为字符串而不是实际的单元格引用提供的,因此如果移动或复制单元格,它不会改变 - 范围将始终指向 D 列,并且始终从第 3 行开始。
- 细胞可让您获取有关单元格的信息。在这里,我们获取当前单元格的行号。这使得公式可以自动调整行号,无论它放在哪里。
- -1用于从 CELL 返回的行号中减去 1,从而引用当前单元格上一行。
对于 D303,这实际上与以下内容相同:
=SUM(D3:D302)
答案2
我想我的答案是:在 Excel 2010 中,如何创建带有可自动以数据结尾的最后一个单元格的功能的模板?可能会有用。
如果可以的话,我强烈推荐表格,它们还具有内置的总行功能。
如果不,则回到动态命名范围。
编辑
正如我们所讨论的,您希望能够使用动态命名范围作为数据透视表的源范围:
这需要对动态命名范围进行一些细微的修改。首先,您需要让范围包含列标题,这样数据透视表才有标题,然后您需要将范围扩展到所有相关列。
=OFFSET(Sheet1!$F$1,0,0,COUNTA(Sheet1!$F$1:$F$12),COUNTA(Sheet1!$F$1:$G$1))
在这里您可以看到,我们没有用 来结束公式,而是),)
添加了一个列引用,该列引用通过覆盖所有需要的列的第一行来返回列的范围。
插入数据透视表时请使用该范围的名称。
笔记
如果您想在数据透视表中使用命名范围,则将 OFFSET 包装在任何类型的 COUNT 中都不起作用,但这不是必需的,因为您只需在数据透视表上运行计数即可。
如果您和您的用户都使用 2007 或更高版本,则可以使用表格,即使您添加更多列,表格仍将保持动态,并且永远不需要您进入并增加命名范围的高度。您仍然可以将表格引用到数据透视表。