EXCEL加行 / 列数据图表自动更新

碎碎念:最近打工……因为不能用外部软件,所以疯狂学习用Excel画表中,整个就是一个痛苦面具,为了防止自己忘了,还是记录一下吧!

一、函数知识补充

详见:我另一篇文章,本场景下我们主要会用到:OFFSET、COUNT、MATCH三个函数

EXCEL的部分简单函数_一睡不起的曲奇的博客-CSDN博客

二、场景应用

【EXCEL加行 / 列数据图表自动更新】

1.图例(系列)项在行,分类在列

目标:在图表下方新增行数据,图表自动更新

方法一:Ctrl+T选中图表(推荐)

Ctrl+T选中数据,创建表后再绘制图表,即可实现

方法二:添加复选框

参考文章:http://jingyan.baidu.com/article/ca00d56c682590e99eebcfaa.html

2.图例(系列)项在列,分类在行

【例】图表如下所示: 

统计23年一年的月别销量数据, 别将其与22年销量进行对比,并绘制出同比增长曲线,绘制结果如图1所示;

 新增六月份数据,得到图2:

图1 图2

在一般的绘图操作时,如果更改已选中的数据区域内的数据,图表会自动更新,但是每次新增一个月份的数据,已有的绘图数据区域不会自动扩展,因而图表无法自动更新。

目标:在图表右侧新增列数据,图表自动更新(图1→自动更新→图2)

STEP1:建立名称

CTRL+F3打开名称管理器,新建:

 在新建中填写名称工作薄范围(推荐选中所处Sheet),在引用位置中填以下公式:

 =OFFSET($B$3,0,1,1,COUNT($C$3:$N$3))

含义:

  • $B$3为参照,向下挪1格,向左挪1格,取1*COUNT($C$3:$N$3)面积的数据,也就是下图中绿框内的内容
  • COUNT($C$3:$N$3)代表数字非空格数,如,在C3:N3之间1-5月销售数据取值非空,则取5

 

 (此处补充Offset函数和Count函数要点)

- 优点:该函数帮助我们实现了自动定位了以B3(23年1月销售数据)为起点,C3:N3中非空的数据部分。因而实现了在右侧挨着添加数据,图表数据的范围自动更新。

- 缺点:只能从23年1月B3数据作为起点(因为OFFSET函数的第3个参数取了1),所以只能增加后列,却无法减少前列。

若把1月的数据删除,则图表会呈现1-4月数据,而不是2-5月。那么有什么办法可以解决这个情况?即我们应当使用一个函数替换第3个参数位置的1,使其可以定位到表格中第一个非空位置作为起点。

所以此处我们要解决的问题——定位一行/一列的的第一个非空位置。

EXCEL的部分简单函数_一睡不起的曲奇的博客-CSDN博客(详细见该文章MATCH函数部分)

取=MATCH(TRUE,$C$3:$N$3<>"",)

则对SO_23的引用位置更新为:

=OFFSET($B$3,0,MATCH(TRUE,$C$3:$N$3<>"",),1,COUNT($C$3:$N$3))

同理建立名称: 

SO_22 =OFFSET(SO!$B$4,0,MATCH(TRUE,SO!$C$4:$N$4<>"",),1,COUNT(SO!$C$4:$N$4))

SO_M =OFFSET(SO!$B$2,0,MATCH(TRUE,SO!$C$2:$N$2<>"",),1,COUNT(SO!$C$2:$N$2))

SO_MOM=OFFSET(SO!$B$5,0,MATCH(TRUE,SO!$C$5:$N$5<>"",),1,COUNT(SO!$C$5:$N$5))

STEP2:绘制图表

- 先使用最普通的绘制方式,插入,推荐的图表:

- 右键,点击选择数据:

- 在图例项(系列)选中23年,编辑,将其系列值=前面新建的名称SO_23(因为前面已经指定该名称在Sheet-SO中,因而后续会自动更新为SO!SO_23)

- 同理将22年与同比都分别更换为SO_22与SO_MOM

- 再编辑水平(分类)轴标签,使其取SO_M

最终得到的图表即可实现自动更新啦!

猜你喜欢

转载自blog.csdn.net/qq_59613072/article/details/131479575
今日推荐