Excel动态公式,可以活用indirect或者offset函数
- 2026-11-06 07:09:39
Excel动态公式,可以活用indirect或者offset函数工作中,相信很多朋友会碰到下面类似这种情况,将某一款产品的本月的销售预测同上月同一时期的预测进行对比,一下子看出差异,如下图15行或者29行所示,这里面的"Variance"指的是2026年10月版的预测,同2026年9月版的预测进行对比。这里面只是列出两款产品,实际上有很多款需要这样对比的。 要实现这个目的,就算是EXCEL小白也知道怎么做,设一个公式,两行相减,再把公式往右边拖就可以了,如单元格AE15的公式就是:=AE14-AE13 
问题在于,到了11月份,我们要在2026-10行(如14行)的下面,“Variance"行(如15行)的上边插入一整行,此时公式需要自动更改为:AE15-AE14, 但很可惜,单元格AE16处仍然显示的是:AE14-AE13 
这样每个产品,都要修改公式,再往右拖,而且每次都是如此,还是有点浪费时间的,有没有更好的方法,插入一行之后,公式自动修改? 方法当然是有的,先来分析一下,我们需要的是“Variance"行的上一行的数据,减去它的上二行的数据,前面的公式之所以不能自动修改是因为,该公式同“Variance"行毫无关联,当前行在EXCEL当中如何表示?解决这个问题了,公式就可以自动更新了。 方法1,使用offset函数。 以当前行为基准,向上偏移一行的单元格的值offset(当前行,-1,) ,减去以当前行为基准,向上偏移二行的单元格的值offset(当前行,-2,),测试了一下,完美解决,一劳永逸的解决。 公式: =offset(AE16,-1,)-offset(AE16,-2,) 
方法2,使用indirect函数。 公式: =INDIRECT("R[-1]C",FALSE)-INDIRECT("R[-2]C",FALSE) 这里需要解释一下,indirect函数可以使用两种格式,一种是典型的A1格式(表示A列第1行),另一种是R1C1格式(这里的R指的是ROW, 也就是行,C指的是COLUMN,列),"R[-1]C"指的是向上偏移1行,同理,“R[-2]C" 表示向上偏移2行,这就和offset函数殊途同归了。 
测试了一下,也是完美解决,另小看这些小技巧,实实在在的可以省下不少时间,而且不容易出错。 另外, 同时在多个"Variance"行的上方插入一个空白行,也是有好的办法,不用一行行手动添加,可以参看以前的文章: 用查找的方法,按指定条件批量插入多个空行




本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。