函数综述
功能:
以某一个单元格或区域为基准,偏移指定的行列后,返回引用的单元格或单元格区域。
语法:
OFFSET(reference,rows,cols, [height], [width])
中文语法:
OFFSET(基准单元格或区域,偏移行数,偏移列数,[引用区域行高],[引用区域列宽])
引用 必需。 要以其为偏移量的基准单元格或区域。 必须是单元格或相邻的单元格区域;否则OFFSET 返回 错误值 #VALUE!。
Rows 必需。 需要向上偏移或向下偏移的行数。 Rows 可为正数(向下偏移)或负数(向上偏移)。
Cols 必需。 需要向左偏移或向右偏移的列数。Cols 可为正数(向右偏移)或负数(向左偏移)。
高度 可选。 需要返回的引用的行高。
宽度 可选。 需要返回的引用的列宽。
图示说明:
使用示例以单元格为基准,偏移到单元格
由单元格偏移到其他单元格,可以省略第四和第五个函数,公式为:
OFFSET(reference,rows,cols)
如下图:
由D5偏移到四面八方的8个单元格的公式为:
往下走,只跨行,D5→D9:=OFFSET(D5,4,0)
往上走,只跨行,D5→D1:=OFFSET(D5,-4,0)
往右走,只跨列,D5→G9:=OFFSET(D5,0,3)
往左走,只跨列,D5→A5:=OFFSET(D5,0,-3)
往左上走,跨行跨列,D5→A1:=OFFSET(D5,-4,-3)
往右上走,跨行跨列,D5→G1:=OFFSET(D5,-4,3)
往左下走,跨行跨列,D5→A9:=OFFSET(D5,4,-3)
往右下走,跨行跨列,D5→G9:=OFFSET(D5,4,3)
以单元格为基准,偏移到行或列
如下图:
D5→G4:G7 :
=OFFSET(D5,-1,3,4,1) 或 =OFFSET(D5,2,3,-4,1)
D5→C9:G9 :
=OFFSET(D5,4,-1,1,5) 或 =OFFSET(D5,4,3,1,-5)
D5→A3:A8 :
=OFFSET(D5,-2,-3,6,1) 或=OFFSET(D5,3,-3,-6,1)
D5→B1:E1 :
=OFFSET(D5,-4,-2,1,4) 或 =OFFSET(D5,-4,1,1,-4)
之所以有四个公式,是因为:从基准单元格可以偏移到行或者列的两头任一单元格,然后再考虑行高或者列宽。
以单元格为基准,偏移到区域
如下图:
D5→F4:G7 :
=OFFSET(D5,-1,2,4,2) 或 =OFFSET(D5,-1,3,4,-2)
=OFFSET(D5,2,2,-4,2) 或 =OFFSET(D5,2,3,-4,-2)
D5→A1:B6 :
=OFFSET(D5,-4,-3,6,2) 或 =OFFSET(D5,-4,-2,6,-2)
=OFFSET(D5,1,-3,-6,2) 或 =OFFSET(D5,1,-2,-6,-2)
之所以有四个公式,是因为:从基准单元格可以偏移到区域四个角上的单元格,然后再考虑区域大小。
以区域为基准,偏移到区域
如下图:
B2:C6→E3:G9 :
=OFFSET(B2:C6,1,3,7,3) 或 =OFFSET(B2:C6,1,5,7,-3)
=OFFSET(B2:C6,7,3,-7,3) 或 =OFFSET(B2:C6,7,5,-7,-3)
B8:D9→E3:G9 :
=OFFSET(B8:D9,-5,3,7,3) 或 =OFFSET(B8:D9,-5,5,7,-3)
=OFFSET(B8:D9,1,3,-7,3)或 =OFFSET(B8:D9,1,5,-7,-3)
我们可以看到:
从基准区域偏移到某区域,其实都是从基准区域的左上角第一个单元格为基准开始偏移。