一、数据透视表的动态引用

第一步:
利用offset函数定义一个动态区域:
=OFFSET(初始单元格,向下偏移行,向右偏移列,选择多少行,选择多少列)
例如:
=OFFSET(透视表中的offset!$A$1,0,0,COUNTA(透视表中的offset!$A:$A),11)
为从A1开始;无偏移;数A列非空的行数,以此作为选择的行的范围;固定选择11列。未来如果该表行数增加,则该数据区域会自动将新增的行也划进来。

第二步:
在公式-定义名称,用OFFSET公式定义一个数据区域并进行命名
image.png
第三步:
在创建数据透视表时,填入命名好的数据区域名称,完成数据透视表创建
image.png

二、图表的动态引用

第一步:利用OFFSET定义一个动态区域并定义该区域的名称(单列数据),必须是单列数据因为图表中一个维度是一列数据
第二步:插入图表,选择数据源时选择定义好的动态区域
image.png
第三步:利用OFFSET定义另一个动态区域并定义名称
第四步:在图表中选择数据,将第三步定义好的动态区域加入X轴(or Y轴),如此便完成了一个两个维度的动态图表
image.png

三、滚动条选取数据区域动态图表

第一步:插入滚动条并关联滚动条与单元格
image.png

第二步:利用OFFSET与滚动条关联单元格定义动态区域
=OFFSET(Sheet1!$B$1,Sheet1!$D$2,0,Sheet1!$D$4,1)
即:以B1为起点;向下移D2个单元格(D2单元格的值由第一个滚动条控制);选择D4个行(D4单元格的值由第二个滚动条控制)

第三步:插入图表,定义Y轴名称和数据源,数据源选择第二步定义好的动态区域
image.png

第四步:利用OFFSET定义日期的动态区域
=OFFSET($A$1,$D$2,0,$D$4,1)

第五步:在图表中选择数据,在X轴数据源中选择第四步定义的动态区域
image.png