offset 函数是excel中另外一个应用较为广泛的"引用"类型的函数,使用offset可用指定的引用作为参照系,然后给定偏移量得到新的引用。
使用方法:
1、offset(reference,rows,cols,[height],[width])
其中reference是引用单元格或相连单元格区域作为参照系。以下图为例:将C5作为reference。
2、rows是指相对于引用单元格或单元区域(reference)偏移了多少行;
行数为正数说明在起始引用的下方,行数为负数说明在起始引用的上方,比如rows=-3,那么说明目标引用区域比reference高3行,如下图。
3、cols 是指相对于引用单元格或单元区域(reference)偏移了多少列;
列数为正数说明在起始引用的右边,列数负数说明在起始引用的左边,比如cols=3,那么说明目标引用区域在比reference高3行的前提下(接步骤2)再向右偏移3列,如下图。
4、height高度,即所要返回的目标引用区域的行数;可省略
width宽度,即所要返回的目标引用区域的列数;可省略
比如height=3,width=3,那么紧接上面的步骤,目标引用区域如下图红色区域所示。
5、即通过函数offset(C5,-3, 3, 3, 3)引用到了我们想引用的区域“F2:H4”。最后再来一个终极示范:在H11单元格中以E1为参照系(reference)引用E8中的内容,在H11单元格中输入“=offset(E1,7, 0)”,最后H1中的内容与E8相同,如下图所示。
OFFSET
以指定的引用为参照系,通过给定偏移量得到新的引用。返回的引用可以为一个单元格或单元格区域。并可以指定返回的行数或列数。
语法
OFFSET(reference,rows,cols,height,width)
Reference 作为偏移量参照系的引用区域。Reference 必须为对单元格或相连单元格区域的引用;否则,函数 OFFSET 返回错误值 #VALUE!。
Rows 相对于偏移量参照系的左上角单元格,上(下)偏移的行数。如果使用 5 作为参数 Rows,则说明目标引用区域的左上角单元格比 reference 低 5 行。行数可为正数(代表在起始引用的下方)或负数(代表在起始引用的上方)。
Cols 相对于偏移量参照系的左上角单元格,左(右)偏移的列数。如果使用 5 作为参数 Cols,则说明目标引用区域的左上角的单元格比 reference 靠右 5 列。列数可为正数(代表在起始引用的右边)或负数(代表在起始引用的左边)。
Height 高度,即所要返回的引用区域的行数。Height 必须为正数。
Width 宽度,即所要返回的引用区域的列数。Width 必须为正数。
说明
如果行数和列数偏移量超出工作表边缘,函数 OFFSET 返回错误值 #REF!。
如果省略 height 或 width,则假设其高度或宽度与 reference 相同。
函数 OFFSET 实际上并不移动任何单元格或更改选定区域,它只是返回一个引用。函数 OFFSET 可用于任何需要将引用作为参数的函数。例如,公式 SUM(OFFSET(C2,1,2,3,1)) 将计算比单元格 C2 靠下 1 行并靠右 2 列的 3 行 1 列的区域的总值。
示例
如果您将示例复制到空白工作表中,可能会更易于理解该示例。
公式 说明(结果)
=OFFSET(C3,2,3,1,1) 显示单元格 F5 中的值 (0)
=SUM(OFFSET(C3:E5,-1,0,3,3)) 对数据区域 C2:E4 求和 (0)
=OFFSET(C3:E5,0,-3,3,3) 返回错误值 #REF!,因为引用区域不在工作表中
=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)
本人的百度空间有多个该函数使用的例子,欢迎前来做客:
http://hi.baidu.com/qinqh%5Fyl