KutoolsforOffice — 一套方案,五大工具。事半功倍。

如何在 Excel 中输入新数据后让图表自动更新?

作者晓阳修改日期

假设您已在 Excel 中创建了一个图表,用于直观追踪每日销售数据,并随着新销售记录的产生定期更新这些数据。通常情况下,每当在数据范围内插入或修改数据时,您可能需要手动调整图表的数据区域,以确保图表始终反映最新信息。然而,在处理大型数据集或频繁变动的数据时,这种手动操作不仅重复繁琐,还容易出错。幸运的是,有几种实用方法可以让图表在添加新数据时自动更新,助您的仪表板或报告始终保持最新状态。

在 Excel 中实现图表自动更新有多种方法,每种方法适用于不同的 Excel 版本和数据布局。以下解决方案包括:将数据转换为 Excel 表格、使用结合命名区域的动态公式,以及(尤其适用于复杂或自定义需求时)应用 VBA 宏。

通过创建表格在输入新数据后自动更新图表

通过动态公式在输入新数据后自动更新图表

通过 VBA 代码在输入新数据后自动更新图表


蓝色右向箭头气泡通过创建表格在输入新数据后自动更新图表

如果您有一组连续的数据区域及其对应的柱状图,只需将该数据区域转换为 Excel 表格,即可在添加新数据时让图表自动更新。此方法适用于 Excel 2007 及更高版本,助您更轻松地管理持续扩展的数据集。其核心优势在于:只要图表引用的是表格数据,新增的行便会自动纳入图表中。操作步骤如下:

示例数据和图表

1. 选择包含标题和每日数值的现有数据区域,然后转到插入选项卡,单击表格。请参见下图:

单击“插入”选项卡下的“表格”

2. 在创建表格对话框中,若您的数据包含标题,请务必勾选我的表格包含标题,然后单击确定。(若您的数据范围不含标题,请勿勾选此选项。)

在“创建表格”对话框中设置选项

3. 您所选的数据范围现已自动格式化为结构化的 Excel 表格,并应用了表格样式格式,如下图所示:

数据区域已转换为表格

4. 现在,每当您在表格最后一行下方直接添加新行(例如输入六月的数据),表格及其关联图表都会自动扩展,无需任何额外操作即可立即显示最新数据!请参考下图示例:

在表格中添加数值,图表将自动更新

注意事项与实用技巧

1. 新输入的数据必须紧邻现有数据——即新数据与现有数据之间不得存在空行或空列——否则表格(及图表)将无法识别此次扩展。

2. 您可以在表格任意位置插入新行,图表将自动随之更新,这对更新历史记录尤为实用。

3. 如果图表未按预期更新,请检查其源数据范围是否引用了表格,而非静态区域。

kutools for excel AI 的截图

借助 KUTOOLS AI 解锁 Excel 的神奇功能

  • 智能执行:只需输入简单命令,即可执行单元格操作、分析数据并创建图表。
  • 自定义公式:生成量身定制的公式,助您优化工作流程!
  • VBA 编码:轻松编写并运行 VBA 代码。
  • 公式解析:轻松掌握复杂公式,一目了然!
  • 文本翻译:轻松打破电子表格中的语言障碍!
借助 AI 驱动的工具提升您的 Excel 能力。立即下载,体验前所未有的高效!

蓝色右向箭头气泡通过动态公式在输入新数据后自动更新图表

如果您不想将数据转换为 Excel 表格,可以使用基于公式的动态命名区域。OFFSETCOUNTA 函数相结合,可定义一个能根据实际数据量自动调整大小的区域。当您的数据结构固定但条目可能频繁增删时,此方法尤为适用。具体操作步骤如下:

示例数据和图表

1. 首先为每个数据列定义一个动态命名区域:转到公式选项卡,单击定义名称

2. 在新建名称对话框中,输入合适的名称(例如,日期列命名为 )Date),在作用域下拉菜单中选择对应的工作表,并在引用位置字段中输入动态公式,例如:=OFFSET($A$2,0,0,COUNTA($A:$A)-1)。请参考下图:

在“新建名称”对话框中设置选项

3. 单击确定保存。对每个相关数据系列或列重复上述步骤,使用以下公式:

  • B 列:Ruby:=OFFSET($B$2,0,0,COUNTA($B:$B)-1);
  • C 列:James:=OFFSET($C$2,0,0,COUNTA($C:$C)-1);
  • D 列:Freda:=OFFSET($D$2,0,0,COUNTA($D:$D)-1)

这些动态命名区域可在向各列添加新数据时自动扩展或收缩。请注意,OFFSET 公式从第一行数据开始,而 COUNTA 会根据指定列中非空单元格的总数动态调整区域大小。

4. 定义完所有命名区域后,右键单击关联图表中的任意一列,从上下文菜单中选择选择数据

从右键菜单中选择“选择数据”

5. 在选择数据源对话框中,高亮显示相关数据系列(例如 Ruby),点击编辑,并输入相应的动态区域作为系列值(例如,)=Sheet 3!Ruby)。如下图所示:

在“选择数据源”对话框中设置选项
向下箭头
在“系列值”对话框中输入公式

6. 对每个额外的数据系列重复此操作,引用相应的动态命名区域:

  • James:系列值:=Sheet 3!James;
  • Freda:系列值:=Sheet 3!Freda

7. 对于水平轴标签,请在编辑下的水平轴标签中输入日期列的动态单元格名称。

单击“水平(分类)轴标签”下的“编辑”按钮
向下箭头
设置轴标签范围

8. 单击确定确认并关闭所有对话框。此后,当您在工作表中继续添加新数据条目时,图表将自动更新,实时反映最新数据点。

输入新数据时,图表会自动更新

注意事项与故障排除:

  • 1. 数据必须输入到各列的连续单元格中——动态公式无法处理行间的空隙;若跳过某些行,自动扩展可能无法按预期运行。
  • 2. 若新增了标题,此方法不会自动识别额外的数据系列或列;您需创建新的命名区域,并相应更新图表的数据源区域。
  • 3. 如果动态区域未扩展,请仔细检查 COUNTA 范围,并确保目标数据下方没有多余条目。
  • 4. 若更改了工作表名称或单元格位置,请及时更新命名区域的引用,以确保其动态功能正常运作。

蓝色右向箭头气泡通过 VBA 代码在输入新数据后自动更新图表

对于高级需求(例如处理非连续数据、自动识别全新数据系列,或同时更新多个图表),VBA 宏能提供更强大的灵活性与自动化能力。只需编写一个简短的宏来响应数据变化,即可自动刷新图表的数据源区域,轻松应对前述方法难以直接覆盖的复杂场景。

如果您的数据呈分散分布、未位于规则的连续区域中,或需要定期向图表中添加新的系列或列,我们推荐您采用此解决方案。请按以下步骤进行设置:

1. 首先,像平常一样插入图表。

2. 按下 Alt + F11 即可打开 VBA 编辑器

3. 在 VBA 编辑器中,单击插入> 模块,即可插入一个新的代码模块。然后,将以下宏代码输入到模块窗口中:

Sub AutoUpdateChartData()
    Dim ws As Worksheet
    Dim chrt As ChartObject
    Dim lastRow As Long
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set ws = ActiveSheet
    Set chrt = ws.ChartObjects(1) ' Modify if you have more than 1 chart on the sheet
    
    ' Find the last row of data in column A (assume your data starts from A1, adjust as needed)
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' Set the data range for the chart dynamically (Modify range as per your data location)
    chrt.Chart.SetSourceData Source:=ws.Range("A1:D" & lastRow)
    
    On Error GoTo 0
End Sub

3. 要运行该宏,请单击运行按钮,图表将立即更新,反映截至最后一行有数据的所有当前内容。

为实现更高级的自动化,您可设置此宏在每次输入新数据时自动运行。

要使用此功能,请右键单击工作表标签,选择查看代码,并将上述代码粘贴到工作表模块中。此后,每当您对工作表进行更改时,宏将自动运行,确保图表始终保持最新状态。

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    Call AutoUpdateChartData
End Sub

提示与注意事项:

  • 您的数据区域(例如,“A1:D” & lastRow)应调整为与数据集的实际位置和结构相匹配。对于非连续区域,建议直接在代码中自定义区域字符串。
  • 如果存在多个图表,您可能需要调整 ChartObjects(1) 以引用正确的图表,或根据需要遍历工作表上的所有 ChartObjects。
  • 此 VBA 解决方案为动态且复杂的数据集提供了极致的灵活性,但需启用宏并将文件保存为启用宏的工作簿(.xlsm)。
  • 如果图表未按预期更新,请仔细检查宏中指定的源数据范围是否与实际数据区域一致,并确保 Excel 环境已启用宏功能。

相关文章:

如何在 Excel 图表中添加一条水平平均线?

如何在 Excel 中创建组合图表并为其添加次坐标轴?

最佳办公效率工具

🤖KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮或标记重复项   |  删除空白行   |  合并列或单元格且不丢失数据   |  不使用公式的四舍五入……
高级 LOOKUP多条件 VLookup  |  多值 VLookup  |   跨多工作表 VLookup   |   模糊查找……
高级下拉列表快速创建下拉列表   |  级联下拉列表   |  多选下拉列表……
列管理器添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列……
特色功能网格聚焦   |  设计视图   |增强编辑栏   | 工作簿和表管理器   |  资源库(自动文本)|  日期提取   |  汇总工作表  |  加密/解密单元格   | 按列表发送邮件   |  超级筛选   |   特殊筛选(筛选粗体单元格/斜体/删除线……) ......
精选 15 工具集12 文本工具添加文本删除特定字符,……)|   50+ 图表 类型甘特图,……)|   40+ 实用公式基于生日计算年龄,……)|   19 插入工具插入二维码从路径插入图片,……)|   12 转换工具小写金额转大写汇率转换,……)|   7 合并和拆分工具高级合并行分割单元格,……)|……更多
在您的首选语言中使用 Kutools – 支持英语、西班牙语、德语、法语、中文及 40+ 种其他语言!

使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……


Office Tab 为 Office 带来标签式界面,让您的工作更轻松

  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读
  • 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
  • 将您的工作效率提升 50%,每天减少数百次鼠标点击!

所有 Kutools 插件,一个安装程序

Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。

ExcelWordOutlookTabsPowerPoint
  • 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
  • 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
  • 协同效果更佳— 在多个 Office 应用中实现高效协同
  • 30 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱