前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >详解OFFSET函数

详解OFFSET函数

作者头像
fanjy
发布2021-07-30 09:56:59
1.5K0
发布2021-07-30 09:56:59
举报
文章被收录于专栏:完美Excel

OFFSET函数可以给我们提供了一个对单元格区域的引用,从给定的起始单元格开始,移动到给定的单元格并扩展给定的高度和宽度。

OFFSET函数的语法如下:

=OFFSET(起始单元格,移动的行数,移动的列数,高度,宽度)

其中:

  • 起始单元格:想要从哪个单元格或单元格区域开始偏移。
  • 移动的行数/列数:想要从起始单元格移动多少行/列,可以指定正值、负值或零。
  • 高度,宽度:想要返回的单元格区域大小。例如5,3将指定返回的单元格区域为5行3列。

此外,OFFSET函数的所有参数都可以引用其它单元格,也就是说,可以编写:

=OFFSET(B1,B2,B3,B4,B5)

引用的单元格是:以B1为起点,偏移B2中数字指定的行数和B3中数字指定的列数,返回B4中数字指定的行数和B5中数字指定的列数大小的单元格区域。

如下图1所示的示例,帮你理解OFFSET函数。

图1

为什么不直接输入对单元格区域的引用,而要使用OFFSET呢?有以下两个原因:

  • 如果直接输入对单元格区域的引用,例如A1:C5,那么这个引用是静态的。然而有时候,我们想要单元格区域是动态的,因为数据会不断发生变化,例如在新的行列中添加数据。
  • 有时候,我们不知道单元格区域的实际地址,只知道从某个单元格开始。

下图2所示是一个交互式工作簿,以帮助你了解OFFSET函数是如何工作的。当你输入所有5个参数时,工作簿会突出显示你的OFFSET函数给出的单元格区域。多试试,你就会更好地理解这个函数。

图2

示例

如下图3所示,列A中的数据是不断更新的,现在要求最后5个数字的平均值,可以使用公式:

=AVERAGE(OFFSET(A1,COUNTA(A1:A1000)-5,0,5,1))

图3

OFFSET的局限

虽然使用OFFSET函数的公式可以返回一个动态单元格区域,但它也有一些限制:

  • OFFSET函数是易失的:这意味着,只要你的工作簿中有任何更改,就会重新计算 OFFSET公式。如果工作簿不大,使用OFFSET公式不是问题。但是,当在大型工作簿中使用大量的OFFSET公式时,Excel会因为它而需要太多时间来重新计算。
  • 使用OFFSET函数的公式很难调试:因为引用是动态的,所以调试包含大量OFFSET函数的公式的工作簿会变得棘手。

注:本文学习整理自chandoo.org,供有兴趣的朋友参考。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档