公式的确是没问题的,也就是将A列的最后6个数据引用到1行中。至于为什么A列用公式(引用也属公式范畴)得到的数据时,用题主贴出的公式得到的结果是空的,需要看到你A列填充公式的情况和公式内容才能判断。
现在猜测一种可能性——而且估计极有可能就是这个原因,那就是A列的公式类似于:
=IF(条件,引用数据,"")
下拉填充时,满足条件后显示为空,并下拉了较多的单元格,后面的单元格就是空值单元格。而你用offset的公式又是用counta对A列计数,公式的空值也会计数的,这样最后6个单元格可能就正好是公式得到的空值单元格了。如果A列公式得到的是数字,可将counta改为count就不会出问题了,因为count是对数字单元格计数。得到空值单元格是不会计数的,只有得到的结果是数字时才计数。
语法
=offset(基点,向下偏移行数,向右偏移列数,引用区域的高,引用区域的宽)
基点,可以是一个单元格,也可以是一个连续单元格区域,但offset会把区域的最左上单元格作为基点;
引用区域的高,即行数
引用区域的宽,即列数
假设
有A1:D10这样的一个数据区域
=offset(A1,1,1,1,1)
就是从A1开始,向下移一行即第2行,向右移1列,即B列,这时获得的单元格引用为B2,这个B2就是新引用单元格区域的基点,这个区域的高为1行,宽为1列!
亦即该公式的结果就是B2
=offset(A1,1,1,2,3)
同理,这个公式的结果是:以B2为基点,2行3列的单元格区域,也就是B2:D3
(欲看到这个公式的所有结果,应该先选择一个2行3列的空白区域,输入此公式,最后按ctrl+shift+enter)
请在excel中实践一下,体会体会,再看excel帮助,就有理解了(顺便说一句,千万不要对excel帮助感冒,那是好东西哦!)
你这个公式,是以A1为基准,偏移几行,偏移0列。
当偏移行参数是负数的时候,因为A1上方已经没有行了,所以就会得出#REF的错误值。
错误值#REF是什么意思呢,意思是:引用了不存在的单元格或者区域。
如果你不想让结果显示出错误值,可以在公式外层套上一个IFERROR函数处理一下错误值。
=IFERROR(OFFSET($A$1,COUNTA($A:$A)-6+COLUMN(A1)-1,),"")
这样当错误值的时候,结果会返回一条空白文本。
光看C1单元格的公式好了
COUNTA(A:A) 的值为零
所以COUNTA($A:$A)-6+COLUMN(A1)-1 的值为-6
以A1为原点,向上偏移6行。这当然会出错