Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 偏移函数返回#值!使用小数据集_Excel_Excel Formula_Excel 2010_Vba - Fatal编程技术网

Excel 偏移函数返回#值!使用小数据集

Excel 偏移函数返回#值!使用小数据集,excel,excel-formula,excel-2010,vba,Excel,Excel Formula,Excel 2010,Vba,我在excel中有一些数据,希望使用offset函数访问某些行,但是该函数返回#值用于我的小数据集 使用这个,OFFSET(A2;0;0;COUNTA(A2:a9999);1)我得到了#值。将公式更改为偏移量(A2;0;0;100;1)时,我会得到一个值 有什么建议吗,我做错了什么 谢谢你的回复 偏移量(A2;0;0;(范围>1);1)将返回一个数组,而不是单个单元格的值。只有将sum或其他聚合函数放在它周围,这才有意义。(你想用这个公式达到什么目的?) e、 g 如果=OFFSET(A2;0

我在excel中有一些数据,希望使用offset函数访问某些行,但是该函数返回
#值用于我的小数据集

使用这个,
OFFSET(A2;0;0;COUNTA(A2:a9999);1)
我得到了
#值。将公式更改为偏移量(A2;0;0;100;1)
时,我会得到一个值

有什么建议吗,我做错了什么

谢谢你的回复

偏移量(A2;0;0;(范围>1);1)
将返回一个数组,而不是单个单元格的值。只有将sum或其他聚合函数放在它周围,这才有意义。(你想用这个公式达到什么目的?)

e、 g

如果
=OFFSET(A2;0;0;COUNTA(A2:a9999);1)
是您的完整公式,则由于推断位置,您将得到一个带有硬编码数字的结果(我希望这是正确的术语)。这意味着,当您引用一个范围但不处理整个范围时,操作单元格是相对于当前位置的单元格

如果您将
=$A$2:$A$11
放入D2并填充,您将根据与A列匹配的行位置获得处理结果。继续填充,您将获得
#值通过第11行时出错

这就是为什么
=OFFSET(A2;0;0;100;1)
返回一个零,而
=OFFSET(A2;0;0;COUNTA(A2:A99999);1)
返回一个
#值错误。第一个公式与表示
=$A$2:$A$101
相同,它返回零,因为您将公式放在第101行上方的单元格中(引用A列中返回值为0的空白单元格)。第二个(带)类似于说
=$A$2:$A$11
,然后将其放入第13行(第11行下方)的单元格中

Addndum:

另一方面,and的这些变体是非易失性的,并且比的功能更强大,同时提供的单元格范围引用与使用OFFSET和实现的单元格范围引用相同


这种方法有许多变体。或许您可以使用上述其中一种方法。

完整公式是什么?“您似乎遗漏了SUM或类似的包装函数。”Jeep Thx回答您的问题!然而,这是我的公式。我在一个非常复杂的vba脚本中使用这个部分,它返回我
#VALUE
@mrquad。正如帕默小姐回答的那样,它返回一个范围。你需要以某种方式使用这个范围。顺便说一句,如果您将其中一个公式放入包含数据的行中,您可以看到它将返回该行中的数据。
=SUM(OFFSET(A2;0;0;COUNTA(A2:A99999);1))
'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))