作者表格学院:赵建军
今天在我们的星球会员群里面吵疯了,为什么我用OFFSET写出来的函数结果不是我想要的呢?
各路神仙齐上阵,各种解释,可是没有哪个有说服力,废话不说直接上图:

offset函数的使用结果,我们的学员理解应该等于234,没有按照他所预想的偏移一列输出结果。
说实在的也难为我们的学员了,下面简单介绍一下我对OFFSET函数认识。
它是一个指路函数,也可以叫做导航仪,
一共5个参数:offset(自身原点(0,0),偏移行,偏移列,区域高度,区域宽度)
第一个参数:就是立足点,也就是你想从哪儿开始;
第二个参数:就是开始偏移行,本身立足点是0行0列,
第三个参数:就是开始偏移列,本身立足点是0行0列
第四个参数:是你要找区域的高度,1就表示一行,2就表示2行
第五个参数:是你要找的区域的宽度,1就表示1列,2就表示2列
比如说,你的最后两个参数分别是2和3,那么你要找的是2x3的单元格区域,表示的不是一个值,是一片区域!
这时候你的这个公式有两种用法,
一种是直接数组用法,你直接选中要输出的区域,按ctrl+shift+enter,直接输出数组公式,出现结果就好了。
一种是普通公式用法,这种用法比较容易出错,或者说出现自己难于理解的结果,今天争论的焦点就在这儿。
而如果是1和1的话就是一个单元格,一个单元格时最小区域单位。这个基本不会出错
理解这个函数之后,再找自己公式里面返回数据的问题的时候就方便不少。
返回头来看上面图片反馈这个问题:

上图中我们的学员想返回的是第一个数据‘234’,结果出现的是第二个数据‘213’,觉得我的公式没错啊,为什么出现的结果有问题呢?
这里解惑:offset($B$3,$K$2,1,1,7)这个公式中$K$2=1,表示的是,以B3单元格为基准点,向下偏移一行,偏移一列的区域为1行7列的数据;这里大家都理解,没有问题,但是问题出现在,为什么写在D列单元格数据返回有问题?
excel在我们不使用数组公式的时候,它的偏移列,按照原点来的,所以,当你是C列写公式的时候默认相对B列偏移1列,在你的数据中输出第一个数,当你是D列的时候,默认相对B列偏移2列,所以输出第二个数据。
或许大家最主要的疑问在明明写的是偏移1列,这里告诉你,你的偏移只限定的是你的数据区域,并没有在普通公式中输出限定偏移列数,OFFSET函数在普通公式中偏移列数,是根据默认原点位置来的!这是根儿哈!
归结起来,提醒大家,虽然offset函数能够用做普通函数的用法,但是建议还是用他的数组用法,以免自己难于控制结果。
over!

领取课程请直接联系我