Excel:OFFSET函数(上)
的有关信息介绍如下:
OFFSET函数是一个非常好玩的函数,无论是数据汇总,还是数透中获取动态数据区域,还是动态图表的制作等等,都能有它的身影,默默付出!函数定义:以指定的引用为参照系,通过给定偏移量返回新的引用。
1、返回单个单元格的引用
比如下图中厉致诚是怎么到达林浅的位置的
输入公式:=OFFSET(A2,2,2)
以A2单元格为参照
向下偏移2行到达A4单元格
向右偏移2列到达C4单元格
返回C4单元格内容“林浅”
2、返回单元格区域的引用
选中区域F2:G3单元格
输入公式:=OFFSET(A2,2,2,2,2)
按
以A2单元格为参照
向下偏移2行到达A4单元格
向右偏移2列到达C4单元格
返回以C4单元格为起点2行2列的C4:D5单元格区域的引用。
3、求销售三部1-6月的总业绩
输入公式:
=SUM(OFFSET(B1:G1,MATCH(A8,A2:A5,0),))
MATCH(A8,A2:A5,0)部分找到“销售三部”在区域A2:A5中的位置3
那么公式OFFSET部分就是OFFSET(B1:G1,3,),
注意此处省略了OFFSET函数的第三参数(用逗号占位)
OFFSET部分是以单元格区域B1:G1为参照,向下偏移3行,偏移0列,返回新区域B4:G4单元格的引用
最后用SUM函数对B4:G4这个区域求和。
4、求所有部门1-6月的总业绩
输入公式:
=SUM(OFFSET(B1:G1,1,,4,6))
OFFSET(B1:G1,1,,4,6)部分是以单元格区域B1:G1为参照
向下偏移1行,到达区域B2:G2
偏移0列(省略了第三参数,用逗号占位)
返回行高为4,列宽为6的新区域B2:G5单元格的引用
最后用SUM函数对B2:G5这个区域求和。
5、多行多列转一列
输入公式:
=OFFSET($A$3,INT(ROW(A2)/2)-1,MOD(ROW(A2),2))&""
INT(ROW(A2)/2)-1下拉生成0,0,1,1,2,2…序列
MOD(ROW(A2),2) 下拉生成0,1,0,1,0,1…序列
D1公式:=OFFSET($A$3,0,0)&""
以A3单元格为参照,偏移0行0列,返回A3单元格内容“Excel”
公式下拉后依次为:
D2公式:=OFFSET($A$3,0,1)&""
以A3单元格为参照,偏移0行1列,返回B3单元格内容“教”
D3公式:=OFFSET($A$3,1,0)&""
以A3单元格为参照,偏移1行0列,返回A4单元格内容“程”
……以此类推
个人建议
如果rows和cols的偏移使引用超出了工作表边缘,则OFFSET返回错误值#REF!。如果省略height或width,则假设其高度或宽度与reference相同。OFFSET实际上并不移动任何单元格或更改选定区域,它只是返回一个引用;返回的引用可以是单个单元格或单元格区域,也可以指定要返回的行数和列数。OFFSET可以与任何期待引用参数的函数一起使用。

