扫码申请加Excel微信群
交流心得 解决问题
验证信息:Excel
先来看下今天分享的这个动态引用是什么效果:
输入日期,即可得到该日期对应的所有数据。
其实动态引用数据就是指某个特定区域中的数据是通过某个单元格的值来引用的,当引用条件发生变化时,区域内的数据也随之自动变化。
要实现这种动态引用,需要明确数据结构的具体形式,再来根据具体问题选择适合的函数去设计公式。
就本例而言,条件(日期)使用了合并单元格,区域的首行(A、B、C、D及汇总)和首列(小组)位置和顺序都是完全一样的,只需要OFFSET函数与MATCH函数组合就能轻松解决。
公式为:=OFFSET(B1,MATCH($I$2,$A:$A,)-1,1)
将这个公式右拉下拉可以得到整个区域的动态引用结果。
以下简单分析一下公式的原理:
首先需要明白OFFSET函数的基本用法,本例只是对单独的单元格数据进行引用,需要用到三个参数,公式的格式为:
=OFFSET(起点位置,行偏移数,列偏移数)
如果不考虑日期的因素,要引用A1小组A项目的数据,公式很简单,如果设置起点位置为B1的话,公式为:=OFFSET(B1,1,1)
表示B1向下一行向右一列的单元格。
如果起点位置设为C2,公式对应调整为=OFFSET(C2,0,0)
当行偏移和列偏移为0时,可以省略:
例如使用公式=OFFSET(C2,,)右拉下拉就可以对整个区域的数据进行引用。
现在我们把日期的因素加进来,因为日期变化时,意味着行偏移数要发生变化,需要得到日期所在的行号,用来作为行偏移量的修正值。
这就需要用到MATCH函数,MATCH函数专门用来确定数据的位置。
在本例中,=MATCH(I2,$A:$A,0)就是确定出I2单元格的日期在A列的第几行,结果如图所示:
接下来就需要将MATCH和OFFSET进行组合,因为起始位置是C2,所以需要在行偏移-2作为调整,公式为:
=OFFSET(C2,MATCH($I$2,$A:$A,0)-2,)
如果起始位置是B1的话,公式中的行偏移和列偏移需要做对应的调整:
=OFFSET(B1,MATCH($I$2,$A:$A,0)-1,1)
相信通过今天这个案例的分析,你对OFFSET函数的理解会有一点新的领悟。
想系统学习函数的话,《菜鸟的Excel函数修炼手册》你值得拥有一本!
你还在为寻找Excel、Word、PPT的学习视频和电子文档发愁吗?
加入打卡领视频的活动,这些学习资料统统有,公众号回复【打卡】了解详情。
办理终身学员享有更多福利
强调:所有学员都是在QQ群里,我们没有一对一服务!
谨防你的财产损失!!!
目前已有超过200位同学加入终身学习