偏移函数returns#VALUE!小数据集
Offset function returns #VALUE! with small dataset
我在 excel 中有一些数据,想使用偏移函数访问某些行,但是函数 returns #VALUE!
用于我的小数据集。
使用这个,OFFSET(A2;0;0;COUNTA(A2:A99999);1)
我得到 #VALUE!
。将公式更改为 OFFSET(A2;0;0;100;1)
时,我得到一个值。
任何建议,我做错了什么?
感谢您的回复!
OFFSET(A2;0;0;(range > 1);1)
将 return 一个数组而不是单个单元格的值。这只有在你将 sum 或其他一些聚合函数放在它周围时才有意义。 (你想用这个公式达到什么目的?)
例如
=SUM(OFFSET(A2;0;0;COUNTA(A2:A99999);1))
如果 =OFFSET(A2;0;0;COUNTA(A2:A99999);1)
是您的完整公式,由于 Inferred Position(我希望这是正确的术语),您将获得带有硬编码数字的结果。这意味着当您引用一个范围但不处理整个范围时,操作单元格是相对于当前位置的单元格。
如果你把 =$A:$A
放在 D2 中并向下填充,你将根据你的行位置与 A 列匹配得到处理结果。继续向下填充,当你去的时候你会得到 #VALUE!
错误过去第 11 行。
这就是 =OFFSET(A2; 0; 0; 100; 1)
returns 零和 =OFFSET(A2; 0; 0; COUNTA(A2:A99999); 1)
returns #VALUE!
错误的原因。第一个公式与 =$A:$A1
相同,它返回零,因为您将公式放在第 101 行上方的单元格中(引用 A 列中返回值 0 的空白单元格)。第二个(带有 COUNTA function)就像说 =$A:$A
并且您将其放入第 13 行(第 11 行下方)的单元格中。
附录:
相关说明,INDEX 函数 和 MATCH 函数 的这些变体是非易失性的,并且比 OFFSET 函数 同时提供与您使用 OFFSET 和 COUNTA function.
实现的相同的单元格范围引用
'for text in a column
=$A:INDEX($A:$A, MATCH("zzz", $A:$A))
'for numbers in a column
=$A:INDEX($A:$A, MATCH(1e99, $A:$A))
'for unknown in a column
=$A:INDEX($A:$A, IFERROR(MATCH(1e99, $A:$A), MATCH("zzz", $A:$A)))
'for combined in a column
=$A: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:INDEX($A:$A, COUNTA($A:$A))
此方法有很多变体。或许您可以使用上述方法之一来达到您的目的。
我在 excel 中有一些数据,想使用偏移函数访问某些行,但是函数 returns #VALUE!
用于我的小数据集。
使用这个,OFFSET(A2;0;0;COUNTA(A2:A99999);1)
我得到 #VALUE!
。将公式更改为 OFFSET(A2;0;0;100;1)
时,我得到一个值。
任何建议,我做错了什么?
感谢您的回复!
OFFSET(A2;0;0;(range > 1);1)
将 return 一个数组而不是单个单元格的值。这只有在你将 sum 或其他一些聚合函数放在它周围时才有意义。 (你想用这个公式达到什么目的?)
例如
=SUM(OFFSET(A2;0;0;COUNTA(A2:A99999);1))
如果 =OFFSET(A2;0;0;COUNTA(A2:A99999);1)
是您的完整公式,由于 Inferred Position(我希望这是正确的术语),您将获得带有硬编码数字的结果。这意味着当您引用一个范围但不处理整个范围时,操作单元格是相对于当前位置的单元格。
如果你把 =$A:$A
放在 D2 中并向下填充,你将根据你的行位置与 A 列匹配得到处理结果。继续向下填充,当你去的时候你会得到 #VALUE!
错误过去第 11 行。
这就是 =OFFSET(A2; 0; 0; 100; 1)
returns 零和 =OFFSET(A2; 0; 0; COUNTA(A2:A99999); 1)
returns #VALUE!
错误的原因。第一个公式与 =$A:$A1
相同,它返回零,因为您将公式放在第 101 行上方的单元格中(引用 A 列中返回值 0 的空白单元格)。第二个(带有 COUNTA function)就像说 =$A:$A
并且您将其放入第 13 行(第 11 行下方)的单元格中。
附录:
相关说明,INDEX 函数 和 MATCH 函数 的这些变体是非易失性的,并且比 OFFSET 函数 同时提供与您使用 OFFSET 和 COUNTA function.
实现的相同的单元格范围引用'for text in a column
=$A:INDEX($A:$A, MATCH("zzz", $A:$A))
'for numbers in a column
=$A:INDEX($A:$A, MATCH(1e99, $A:$A))
'for unknown in a column
=$A:INDEX($A:$A, IFERROR(MATCH(1e99, $A:$A), MATCH("zzz", $A:$A)))
'for combined in a column
=$A: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:INDEX($A:$A, COUNTA($A:$A))
此方法有很多变体。或许您可以使用上述方法之一来达到您的目的。