如何制作无需硬编码数据范围的Excel动态图表
让Excel图表自动更新新增数据的两种实用方法
嘿,这个需求太常见了——不想每次加新数据都手动改图表范围对吧?我给你分享两个靠谱的解决方案,亲测好用:
方法一:用Excel表格(List Object)——最省心的选择
这是我最推荐的方法,操作简单还不容易出错:
- 选中你的整个数据区域(一定要包含表头哦,比如A3:B125,假设A3是日期表头,B3是产量表头)
- 按下快捷键
Ctrl+T,或者点击顶部菜单栏的「插入」→「表格」 - 在弹出的对话框里,勾选「我的表格有标题」,然后点击「确定」
- 现在把你的图表数据来源切换到这个表格的列:原来的SERIES公式会自动变成类似
=SERIES(,PRODUCTION[日期],PRODUCTION[产量],1)的形式(PRODUCTION是表格默认名称,你也可以右键表格改名字) - 以后只要在表格的最后一行下面直接输入新的日期和产量,表格会自动扩展,图表也会立刻同步更新,完全不用手动调整!
方法二:动态命名范围——适合不想用表格的场景
如果因为某些原因不想转成表格,动态命名范围是个不错的替代方案:
- 定义动态名称
- 点击顶部菜单栏的「公式」→「定义名称」
- 给日期列创建名称:比如叫
ProductionDates,在「引用位置」里输入:
解释一下:=OFFSET('PRODUCTION SITE A'!$A$4,0,0,COUNTA('PRODUCTION SITE A'!$A:$A)-3,1)COUNTA('PRODUCTION SITE A'!$A:$A)会统计A列所有非空单元格的数量,减3是因为你的数据从A4开始(假设A1-A3是表头或空行,根据实际情况调整这个数字),OFFSET函数会从A4开始,自动扩展到所有非空的行。 - 同样给产量列创建名称
ProductionVolumes,引用位置输入:=OFFSET('PRODUCTION SITE A'!$B$4,0,0,COUNTA('PRODUCTION SITE A'!$B:$B)-3,1)
- 修改图表的SERIES公式
- 点击图表,在编辑栏里把原来的公式改成:
=SERIES(,'PRODUCTION SITE A'!ProductionDates,'PRODUCTION SITE A'!ProductionVolumes,1) - 以后新增数据时,只要日期和产量列的单元格是非空的,动态命名范围就会自动扩展,图表也会跟着更新。
- 点击图表,在编辑栏里把原来的公式改成:
小提醒
- 用动态命名范围时,要确保日期和产量列里没有其他无关的非空单元格(比如列底部的备注),否则
COUNTA会把它们算进去,导致范围出错。 - 表格方法不仅能自动更新图表,还自带筛选、汇总等功能,日常用起来更方便。
内容的提问来源于stack exchange,提问作者jacksons123
相关产品推荐
相关产品推荐

