偏移函数返回#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))