Skip to main content

Kutools for Office — 一套工具,五種功能。完成更多工作。

如何在Excel中輸入新數據後自動更新圖表?

Author Xiaoyang Last modified

假設您已在Excel中創建了一個圖表,以視覺化方式追蹤每日銷售數據,並且隨著新銷售記錄的增加,您會定期更新這些數據。通常,每當您插入或修改數據範圍時,可能需要手動調整圖表的數據範圍,以確保圖表顯示最新的數字。這個手動過程可能會變得重複且容易出錯,特別是在處理較大的數據集或頻繁變化的信息時。幸運的是,有一些實用的方法可以在添加新數據時自動更新您的圖表,幫助保持儀表板或報告始終最新。

在Excel中有幾種方法可以實現這種自動圖表更新,每種方法適用於不同的Excel版本和數據佈局。下面解釋的解決方案包括將數據轉換為Excel表格、使用帶有命名範圍的動態公式,以及——特別適合於複雜或自定義需求——應用VBA宏。

通過創建表格,在輸入新數據後自動更新圖表

通過動態公式,在輸入新數據後自動更新圖表

通過VBA代碼,在輸入新數據後自動更新圖表


arrow blue right bubble 通過創建表格,在輸入新數據後自動更新圖表

如果您有一個連續的數據範圍以及相應的柱狀圖,則可以通過將數據範圍轉換為Excel表格來確保在添加新信息時圖表即時更新。此方法適用於Excel 2007及更高版本,並使管理擴展數據集變得更加容易。主要優點是引用表格的圖表將自動包含添加到表格中的新行。以下是具體操作步驟:

sample data and chart

1. 選擇包含標題和每日值的現有數據範圍。然後,轉到「插入」選項卡並單擊「表格」。請參見截圖:

click Table under Insert tab

2. 在「創建表格」對話框中,如果您的數據包含標題,請確保勾選「我的表格有標題」選項。然後單擊「確定」。(如果您的範圍不包含標題,請不要勾選此框。)

set options in the Create Table dialog box

3. 您選擇的數據範圍現在將被格式化為結構化的Excel表格。注意表格樣式格式會自動應用,如下所示:

the data range is converted to table

4. 現在,每當您直接在表格最後一行下方添加新行(例如輸入六月的數據),表格和關聯的圖表都會自動擴展,無需額外步驟即可顯示最新數據。請參閱以下示例:

add values in the table, the chart will be updated automatically

注意和實用技巧

1. 新輸入的數據必須直接相鄰——這意味著新數據與現有數據之間不能有空行或空列——否則表格(和圖表)將無法識別擴展。

2. 您可以在表格內任何位置插入新行;圖表將自動更新,這對於更新歷史記錄也非常有用。

3. 如果圖表未按預期更新,請檢查圖表的源數據範圍是否引用了表格,而不是靜態範圍。

a screenshot of kutools for excel ai

使用 Kutools AI 解鎖 Excel 的魔法

  • 智能執行:執行單元格操作、分析數據並創建圖表——所有這些都由簡單的指令驅動。
  • 自訂公式:生成量身定制的公式,簡化您的工作流程。
  • VBA 編碼:輕鬆編寫和實現 VBA 代碼。
  • 公式解釋:輕鬆理解複雜的公式。
  • 文本翻譯:打破電子表格中的語言障礙。
通過人工智能工具增強您的 Excel 能力。立即下載,體驗前所未有的效率!

arrow blue right bubble 通過動態公式,在輸入新數據後自動更新圖表

如果您不想將數據轉換為Excel表格,您可以使用由公式驅動的動態命名範圍。此方法利用OFFSETCOUNTA函數來定義根據實際數據量自動調整大小的範圍。當您的數據結構固定但條目可能經常添加或刪除時,這種方法尤其有用。請參閱以下實用步驟:

sample data and chart

1. 首先,為每個數據列定義一個動態命名範圍。轉到「公式」選項卡並單擊「定義名稱」。

2. 在「新建名稱」對話框中,輸入適當的名稱(例如日期列的“日期”),在「範圍」下選擇正確的工作表,並將動態公式輸入到「引用位置」字段中。例如:=OFFSET($A$2,0,0,COUNTA($A:$A)-1)。請參閱截圖作為參考:

set options in the New Name dialog box

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. 定義所有命名範圍後,右鍵單擊關聯圖表中的一列並從上下文菜單中選擇「選擇數據」。

choose Select Data from right click menu

5. 在「選擇數據源」對話框中,突出顯示相關系列(例如Ruby),單擊「編輯」,並在「系列值」中輸入適當的動態範圍(例如=Sheet3!Ruby)。請參閱以下內容:

set options in the Select Data Source dialog box
arrow down
enter a formula into the Series values dialog

6. 對每個附加系列重複此操作,引用相應的動態命名範圍:

  • James: 系列值: =Sheet3!James;
  • Freda: 系列值: =Sheet3!Freda

7. 對於水平(分類)軸標籤,單擊「水平(分類)軸標籤」下的「編輯」,並提供日期列的動態範圍名稱。

click Edit button under Horizontal (Category) Axis Labels
arrow down
set Axis Labels range

8. 單擊「確定」確認並退出所有對話框。從現在起,當您繼續在工作表中添加新數據條目時,圖表將自動更新以反映最新的數據點。

the chart updates automatically when typing new data

注意和故障排除:

  • 1. 數據必須輸入到列中的連續單元格中——動態公式不會考慮行之間的間隙。如果跳過行,則自動擴展可能無法按預期工作。
  • 2. 如果添加了新的標題,此方法不會拾取額外的系列或列;您需要創建新的命名範圍並相應地更新圖表數據源。
  • 3. 如果動態範圍未擴展,請仔細檢查COUNTA範圍,並確保目標數據下方沒有額外的條目。
  • 4. 如果更改了工作表名稱或單元格位置,請更新命名範圍引用以保持動態行為。

arrow blue right bubble 通過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中创建组合图表并为其添加次坐标轴?

最佳 Office 生產力工具

🤖 Kutools AI 助手:以智能執行為基礎,革新數據分析 生成程式碼 創建自訂公式 分析數據並生成圖表 調用 Kutools 增強函數
熱門功能查找、選取項目的背景色或標記重複值刪除空行合併列或單元格且不遺失數據四捨五入(免公式)...
高級 LOOKUP多條件 VLookup多值 VLookup多表查找模糊查找...
高級下拉列表快速創建下拉列表 依賴型下拉列表 多選下拉列表...
列管理器添加指定數量的列移動列切換隱藏列的顯示狀態比較區域及列...
精選功能網格聚焦 設計檢視 增強編輯欄 工作簿及工作表管理器 資源庫(快捷文本) 日期提取器 合併資料 加密/解密儲存格 按列表發送電子郵件 超級篩選 特殊篩選(篩選粗體/傾斜/刪除線...)...
15 大工具集12 項文本工具添加文本刪除特定字符…)50+ 儀表 類型甘特圖等)40+ 實用 公式基於生日計算年齡等)19 項插入工具插入QR码根據路徑插入圖片等)12 項轉換工具金額轉大寫匯率轉換等)7 項合併與分割工具高級合併行分割儲存格等)...及更多
使用 Kutools,語言任你選 — 支援英語、西班牙語、德語、法語、中文及超過40 種語言!

運用 Kutools for Excel,全面提升您的 Excel 技能,體驗前所未有的高效。 Kutools for Excel 提供超過300 項進階功能,讓您提升工作效率、節省時間。 點此尋找您最需要的功能...


Office Tab 為 Office 帶來分頁介面,讓您的工作更加輕鬆簡單

  • 在 Word、Excel、PowerPoint 中啟用分頁編輯與閱讀
  • 在同一視窗的新分頁中打開與創建多份文件,而非開啟新視窗。
  • 提升您的生產力50%,每日可幫您減少數百次鼠標點擊!

所有 Kutools 外掛,一次安裝

Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。

Excel Word Outlook Tabs PowerPoint
  • 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
  • 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
  • 協同運作更順暢 — Office 應用間無縫提升生產力
  • 30 天全功能試用 — 無需註冊、無需信用卡
  • 最超值 — 一次購買,節省單獨外掛費用