指定范围从A2到无穷大(NO VBA)

时间:2017-10-06 08:56:21

标签: excel excel-formula range

如果没有VBA,我正在尝试引用从A2开始并且永远不会结束的范围。例如,如果我想要第2行直到第5行,我会做

$A$2:$A$5

但是,如果我希望结束是开放的呢?

$A$2:??

这可能吗?

6 个答案:

答案 0 :(得分:2)

根据A1中的内容和引用的公式,您可以简单地使用A:A。例如,如果您想对A列中的所有值求和,但A1包含列标题而不是数字,则仍可以编写= SUM(A:A),而A1中的标题将被忽略。

答案 1 :(得分:1)

如果要引用从A2到最大行(2007年之前的Excel为1048576或65536)的范围,则可以使用此易失性公式... =OFFSET(A2,0,0,(COUNTBLANK(A:A)+COUNTA(A:A)-1),1)。使用公式作为定义的范围名称或使用范围作为参数(对于eq SUM)...

答案 2 :(得分:0)

A2:A适用于许多公式  希望有帮助

答案 3 :(得分:0)

另一个选择(如果您的公式在A1中,那么访问A:A会创建一个循环引用)是

OFFSET(A2, 0, 0, ROWS(A:A)-1)

这将使用ROWS来计算总行数(实际上不访问行!),然后减去1(因为我们从第二行开始),并将此结果用作使用OFFSET创建的范围的高度。

答案 4 :(得分:0)

这是另一个基于公式的选项,使用 OP 问题中的示例位置:

<块引用>

=A2:INDEX(A:A,MAX(FILTER(ROW(A:A),IF(ISBLANK(A:A),0,1)=1)))

组件如下:

  1. =MAX(FILTER(ROW(A:A),IF(ISBLANK(A:A),0,1)=1)) 找出不为空的最深行的编号,并且
  2. A2:INDEX(A:A,<expression 1 above>) 它依赖于上面的表达式来做一个更大的公式,它得到一个范围,从任何位置开始,到给定列中的一个位置结束,在这个表达式得到的位置,1。

这是列出的其他选项的替代方案,并且可能会引起人们的兴趣,因为它在潜在的实质性方面与它们不同。

我可以注意到以下特征:

  • 它不一定很快。
  • 这似乎不是一个易变的公式。这很重要,因为这意味着每次进行计算时不必重新计算。但是,我不确定计算的频率,也不完全了解其波动状态。 不确定性与 INDEX 函数的使用有关(显然,特别是在 : 之后)。有一些资源可以描述它。 INDIRECT 和 OFFSET 函数肯定是不稳定的。有许多资源描述了 volatile 函数的性能影响,其中一些在其他 SO 答案中提到。例如:
<块引用>

https://docs.microsoft.com/en-us/office/client-developer/excel/excel-recalculation https://www.sumproduct.com/thought/volatile-functions-talk-dirty-to-me http://www.decisionmodels.com/calcsecretsi.htm https://chandoo.org/wp/handle-volatile-functions-like-they-are-dynamite/

  • 它允许用户不必考虑某些单元格中的数据(例如,A1,它可能意味着有一个标题,而不是数字)。
  • 它返回在 : 之前指定的单元格和列中最后一个非空白单元格之间的范围。我认为它也应该考虑非数字值。
  • 它的目标范围与 Kresimir L. 的答案有一些共同点:=OFFSET(A2,0,0,(COUNTBLANK(A:A)+COUNTA(A:A)-1),1)

注意:此答案适用于截至撰写本文时作为 Office 365 的一部分(并不断更新)可用的 Excel 版本。但是,答案仅基于我自己对其安装的明显正确性的验证。我不确定所有安装的 Office 365 都具有完全相同的软件;并且我感觉到某些功能在 Office 365 的不同安装(甚至)之间可能会有所不同。我不确定这个答案是否适用于所有人。请测试。如果您对这种方法的成功提供反馈,我将不胜感激。

答案 5 :(得分:-3)

以下代码在VBA中有很好的涵盖:

Range("A2", Range("A2").End(xlDown))

如果你想在公式中达到,那取决于你的MS-Excel的版本号。

根据this reference从Excel 2007开始的工作表中的所有行的数量是1048576,您可以使用以下方法:

$A$2:$A$1048576

由于公式中的此范围取决于Excels版本,因此在将来的版本中可能会有所不同。

最后,我建议您使用VBA。