如果没有VBA,我正在尝试引用从A2开始并且永远不会结束的范围。例如,如果我想要第2行直到第5行,我会做
$A$2:$A$5
但是,如果我希望结束是开放的呢?
$A$2:??
这可能吗?
答案 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)))
组件如下:
=MAX(FILTER(ROW(A:A),IF(ISBLANK(A:A),0,1)=1))
找出不为空的最深行的编号,并且A2:INDEX(A:A,<expression 1 above>)
它依赖于上面的表达式来做一个更大的公式,它得到一个范围,从任何位置开始,到给定列中的一个位置结束,在这个表达式得到的位置,1。这是列出的其他选项的替代方案,并且可能会引起人们的兴趣,因为它在潜在的实质性方面与它们不同。
我可以注意到以下特征:
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/
=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。