1 定义
OFFSET函数的语法结构为:OFFSET(reference,rows,cols,height,width)
-
第1个参数reference是作为参照系的引用区域,reference 必须为对单元格或相连单元格区域的引用,其左上角单元格是偏移量的起始位置;
-
第2个参数rows是相对于引用参照系的左上角单元格要上(下)偏移的行数,该参数为正数代表向下偏移,为负数代表向上偏移;
-
第3个参数cols是相对于引用参照系的左上角单元格要左(右)偏移的列数,该参数为正数代表向右偏移,为负数代表向左偏移;
-
第4个参数Height为要返回的新引用区域的行数,该参数为正数代表当前行向下多少行,为负数代表当前行向上多少行;
-
第5个参数Width为要返回的新引用区域的列数,该参数为正数代表当前列向右多少列,为负数代表当前列向左多少列。
-
如果省略 height 或width,则假定新引用区域的行数或列数与reference相同。
2 应用
2.1 基础应用,不使用后面两个参数
OFFSET(Reference, Rows, Cols, [Height], [Width])
如:OFFSET(A1,0,3)
将返回D1单元格的值,即A1单元格下移0行右移3列。如果需要向左移动,则Rows/Cols参数使用负数即可。
2.2 进阶应用,使用后面两个可选参数
OFFSET(Reference, Rows, Cols, [Height], [Width])
如:OFFSET(A1,0,0,4,4)
将返回A1:D4*区域。如果需要向左移动,则Height/Width参数使用负数即可。
2.3 高级应用,配合其他函数
示例:重复A1:A3单元格3次,即A1A1A1B1B1B1C1C1C1
如:OFFSET(A$1, int((row(A1) - 1) / 3), 0)
row(A1) 取A1单元格的行号1,当下拉时行号会变成2、3
int((row(A1) - 1) / 3): 取整数部分,不四舍五入。3表示重复3次
3 示例
案例1:以单个单元格为参照系,返回单个单元格引用
以下图工作表中的A2单元格为起始单元格,向下偏移4行,向右偏移4列,返回1行高1列宽的新单元格引用,将返回结果显示在G2单元格中。
操作步骤:
选中G2单元格,在英文状态下输入公式:=OFFSET(A2,4,4,1,1),回车确认公式,可以得到新单元格引用E6中的内容“45”。
案例2:以相连单元格区域为参照系,返回单元格区域引用
以下图工作表中的A2:B3单元格区域为参照系,向下偏移3行,再向右偏移3列,再向下向右返回2行高2列宽的新单元格区域引用,将新单元格区域引用内容显示在G2:H3单元格中。
选中G2:H3单元格区域,输入公式:=OFFSET(A2:B3,3,3,2,2),同时按shift+ctrl+enter组合键,即可在G2:H3单元格区域返回对应的引用结果D5:E6单元格区域中的内容。
注意事项:
因为公式返回的是单元格区域,是数组公式,所以公式输入完毕要同时按shift+ctrl+enter组合键确认公式。如果直接按enter键确认公式,会返回错误提示“#VALUE!”。
以上内容来自于: