偏移函数返回#VALUE! 与小数据集

我有一些在Excel中的数据,并希望访问偏移function的某些行,但该函数返回#VALUE! 为我的小数据集。

使用这个, OFFSET(A2;0;0;COUNTA(A2:A99999);1)我得到#VALUE! 。 当公式更改为OFFSET(A2;0;0;100;1)我得到一个值。

在这里输入图像说明

任何build议,我做错了什么?

我很感激你的回复!

如果=OFFSET(A2;0;0;COUNTA(A2:A99999);1)是你的完整公式,你会得到一个硬编码的结果由于推断位置 (我希望这是正确的期限)。 这意味着当你参考一个范围但是没有处理全部范围时,操作单元是相对于当前位置的单元。

如果您在D2中input=$A$2:$A$11并填充,您将根据与列A匹配的行位置获得持续的结果。保持填充状态,您将获得#VALUE! 当你走过第11行时出错。

这就是为什么=OFFSET(A2; 0; 0; 100; 1)返回0和=OFFSET(A2; 0; 0; COUNTA(A2:A99999); 1)返回一个#VALUE! 错误。 第一个公式与说=$A$2:$A$101并且它返回零,因为您将该公式放在第101行以上的单元格中(引用A列中返回值为0的空白单元格)。 第二个(用COUNTA函数 )就像是说=$A$2:$A$11然后把它放到第13行(在第11行)的单元格中。

Addndum:

在相关说明中, INDEX函数和MATCH函数的这些变体是非易失性的,并且比OFFSET函数更具function性,同时提供与OFFSET和COUNTA函数相同的单元范围参考。

 'for text in a column =$A$2:INDEX($A:$A, MATCH("zzz", $A:$A)) 'for numbers in a column =$A$2:INDEX($A:$A, MATCH(1e99, $A:$A)) 'for unknown in a column =$A$2:INDEX($A:$A, IFERROR(MATCH(1e99, $A:$A), MATCH("zzz", $A:$A))) 'for combined in a column =$A$2:INDEX($A:$A, MAX(MATCH(1e99, $A:$A), MATCH("zzz", $A:$A))) 'I don't like COUNTA but it works as long as there are no blanks =$A$2:INDEX($A:$A, COUNTA($A:$A)) 

这种方法有很多变化。 也许你可以使用上面的一个为你的目的。

OFFSET(A2;0;0;(range > 1);1)将返回一个数组而不是单个单元格的值。 这只有当你把总和或其他聚合函数放在它周围时才有意义。 (你想用公式来达到什么目的?)

例如

 =SUM(OFFSET(A2;0;0;COUNTA(A2:A99999);1))