跳至主要內容
HK Learn AI
AI 生產力

ChatGPT/Claude 製作 Excel 互動儀表板:VBA、PivotTable 與切片器實戰

按來源示範的真實次序,由銷售資料分析、儀表板規劃、AI 生成 VBA 卡片與樞紐分析表、Claude 生成圖表,到 KPI、年份切片器和最終篩選驗收;同時加入巨集安全、數字覆核與故障排查。

HK Learn AI 編輯部標誌

HK Learn AI 編輯部

編輯部

發佈於 2026年7月25日

最後審閱:2026年7月26日

分享這篇文章
本頁內容
以 AI 輔助 Excel VBA 建立 KPI 卡片、樞紐分析表、圖表與年份切片器的完整工作流

難度

中階

所需時間

約 60–90 分鐘

你需要準備

Microsoft Excel 桌面版 · ChatGPT · Claude · 可執行巨集的 .xlsm 工作簿副本

開始之前

  • 能辨認 Excel 工作表、欄標題和資料範圍
  • 有權在受信任的本機副本中檢查及執行 VBA
  • 先移除或匿名化客戶及公司敏感資料

這個教學不是用幾張重新畫的示意圖代替操作,而是沿着來源影片的實際時間線重建:先查看銷售資料,讓 ChatGPT 分析和規劃 Dashboard,再請 AI 產生 VBA 建立 KPI 卡片、Month/Year 輔助欄及多張 PivotTable;之後轉到 Claude 產生圖表 VBA,填入 KPI,最後加入 Year Slicer 並測試篩選。每一個畫面都對應一個有意義的操作節點。

媒體與私隱說明:封面由 ImageGen 製作;內文圖片及短片來自已獲授權的教學來源,並裁走作者、帳戶、瀏覽器及社交平台識別。短片已靜音並附繁體中文畫面字幕。全部教學媒體已於 2026-07-26 逐張人工檢查,排除重複、載入中、移動畫面模糊及沒有教學意義的幀。

先看整條製作路線

階段來源時間產物主要驗收
理解資料約 00:55–01:45欄位、KPI 和問題清單日期、金額、Margin 及客戶分類可解讀
建立版面約 03:36–05:56五張 KPI 卡片與標籤重跑不產生重疊物件
建立分析層約 06:39–09:34Month/Year 欄及 PivotTable所有彙總和來源數字一致
建立圖表約 10:14–11:10由 Claude VBA 建立的 Dashboard 圖表圖表連到正確 PivotTable
KPI 與互動約 12:50–14:09KPI 數值、Year Slicer、最終篩選卡片與圖表同步改變且可清除篩選

步驟一:先讀懂原始銷售表,不要急着跑巨集

來源工作表不是空白模板,而是一張已有多個業務欄位的銷售明細。畫面可見 DateCustomer NameCustomer TypeServiceDepartmentCitySales AmountMargin %Margin AmountSale TypeCustomer SourcePackage Type。先確認一列代表甚麼交易,以及客戶是否可能重複出現;否則 New Customers 和 Repeat Customers 都可能被錯算。

Excel 銷售明細表顯示日期、客戶、服務、部門、城市、銷售額及毛利欄位
00:55:來源銷售資料的實際欄位。開始前先抽查日期是 Excel 日期、金額是數值,並確認一列的業務粒度。

先複製工作簿,再另存為 .xlsm。保留一份未執行過巨集的原檔;任何客戶名稱或商業資料在送入外部 AI 前都要匿名化。本文只示範流程,沒有要求把完整工作簿上載給模型:通常提供欄名、工作表名、幾列虛構樣本和預期結果已足夠。

執行任何 AI 程式碼前的六項資料檢查

  1. Date:改變顯示格式後仍能正確排序,才是真正日期。
  2. Sales Amount/Margin Amount:確認是數值,沒有貨幣符號文字或空格。
  3. Margin %:釐清是列級百分比還是可彙總指標;整體 Margin 應以總 Margin Amount 除總 Sales Amount。
  4. Customer Type:確認 New/Repeat 的定義來自資料,而非巨集自行猜測。
  5. 標題:不要有合併儲存格、重複標題或完全空白欄。
  6. 總數:先用公式記錄未篩選的 Sales、Margin 和客戶數,作為之後的基準。

步驟二:讓 ChatGPT 分析資料並規劃 Dashboard

來源示範接着把資料結構交給 ChatGPT 分析。這一段的重點不是「AI 幫我整靚啲」,而是先決定 Dashboard 要回答甚麼:總銷售、總毛利、平均毛利率、新客戶、回頭客,以及按月份、服務、部門或城市的比較。把每個 KPI 的計算口徑寫清楚,才能在 VBA 完成後驗收。

ChatGPT 根據 Excel 銷售欄位整理 KPI 與儀表板分析方向
01:45:ChatGPT 分析階段。模型的建議只是一份設計草稿;欄名、公式和商業定義仍要由使用者確認。

建議在要求程式碼前先叫模型輸出一張「逐頁規格表」:每個區塊的標題、來源欄位、PivotTable 名稱、圖表種類、目標位置和驗收數字。這會大幅減少之後 VBA 硬編碼錯誤。若模型把 Average Margin 解釋成每列 Margin % 的簡單平均,立即糾正為公司採用的正式口徑。

步驟三:用 ChatGPT VBA 建立 KPI 卡片骨架

來源在約 03:36 顯示 ChatGPT 產生的 VBA,用來建立 Dashboard 上方的五張卡片。這些卡片先處理版面、標題、顏色和形狀名稱,並不代表數值已正確。將程式碼貼入 Visual Basic Editor 前,逐行尋找 Sheets(...)Range(...)Shapes.AddShape、刪除物件和錯誤處理。

ChatGPT 產生建立 Excel Dashboard KPI 卡片的 VBA 程式碼
03:36:卡片版面 VBA。先核對工作表名稱、Shape 名稱、位置及重跑邏輯,再在副本執行。
請根據目前工作簿的 Dashboard 工作表,產生一個 Excel VBA 巨集,建立五張 KPI 卡片的版面。

要求:
- 不刪除原始資料或現有工作表;
- 先檢查 Dashboard 是否存在;
- 卡片標題為 Total Sales、Total Margin、Average Margin、New Customers、Repeat Customers;
- 只建立形狀、標籤、尺寸、顏色和對齊,暫時不要寫死 KPI 數值;
- 每個 Shape 使用唯一而可讀的名稱;
- 使用 Option Explicit;
- 不使用 On Error Resume Next 掩蓋錯誤;
- 在程式碼後逐段解釋會修改哪些儲存格及物件,並列出復原方法。

不要盲目保留 On Error Resume Next這行會令程式遇錯後繼續,結果可能只生成一半版面而沒有明顯警告。若它只是為了嘗試刪除「可能不存在」的舊 Shape,應把忽略錯誤的範圍收窄,刪除後立即恢復正常錯誤處理;更理想是先檢查物件是否存在。模組頂部加入 Option Explicit,讓未宣告變數在執行前被發現。

04:08.5–04:14.5:執行巨集並生成卡片版面。片段已靜音;字幕只描述可見操作,不代替程式碼審查。

卡片出現後,不要只看顏色。按 Selection Pane 檢查每個 Shape 名稱是否唯一,重跑一次確認沒有再疊一套卡片,並測試 Undo 或由未改動副本復原。若巨集把數字直接寫死在形狀文字中,先停下來;最終 KPI 應連到工作表計算或 PivotTable 結果。

Excel Dashboard 已建立五張有標籤的 KPI 卡片及圖表配置區
05:56:版面和標籤已完成,但分析層尚未建立。此刻應確認空間、對齊、命名及可讀性。

步驟四:新增 Month 和 Year 輔助欄

來源接着在資料右方新增 MonthYear。這兩欄讓後續 VBA 更容易建立月度 PivotTable 和年份切片器。若資料已轉成 Excel Table,可使用結構化公式;若仍是普通範圍,就要確保新增資料列時公式會一併填入。

Month:=TEXT([@Date],"mmm")
Year:=YEAR([@Date])

若跨越多個年份,只用 TEXT(Date,"mmm") 會把不同年份的同月混合。較穩健做法是另加可排序的月份起始日,例如 =DATE(YEAR([@Date]),MONTH([@Date]),1),顯示格式再設為 yyyy-mm。來源示範的 Year 欄仍保留,供切片器使用。

Excel 銷售資料新增 Month 和 Year 輔助欄供 PivotTable 與切片器使用
06:39:Month/Year 輔助欄完成。向下抽查首列、中間列和末列,避免公式只填到可見範圍。

步驟五:建立 PivotTable 前先確認來源範圍

在 Insert PivotTable 對話框中,確認來源包含新加入的 Month 和 Year,而不是舊的固定範圍。最好先把資料轉為命名 Table;這樣新增列較容易在 Refresh 後納入。放置位置亦要有規劃:多張 PivotTable 不能互相重疊,篩選時行列數可能擴張。

Excel Create PivotTable 對話框確認銷售資料來源及放置位置
07:15:建立 PivotTable 前的來源確認。若 Table/Range 沒有涵蓋 Month、Year 或最後一列,後面的圖表會完整地呈現錯誤資料。

來源影片隨後使用 ChatGPT 產生的 VBA 批次建立多張 PivotTable。這是節省重複操作的部分,也是風險最高的一段:程式碼可能重複建立 PivotCache、假設固定工作表名、把金額設為 Count,或在重跑時刪走人工內容。

ChatGPT 產生多張 Excel PivotTable 的 VBA 程式碼
08:13:PivotTable VBA。逐一核對來源、Cache、PivotTable 名稱、欄位拼字、彙總方式和放置儲存格。
請為這個 Excel 工作簿產生 VBA,從銷售資料建立樞紐分析表。

來源欄位:
Date、Customer Name、Customer Type、Service、Department、City、
Sales Amount、Margin %、Margin Amount、Sale Type、Customer Source、Package Type、
Month、Year。

要求:
- 先確認來源工作表、標題列和最後一列;
- 使用同一個 PivotCache;
- 分別建立月份銷售、部門銷售、城市銷售、客戶類型和服務分析;
- 每張 PivotTable 使用唯一名稱並保留足夠間距;
- 金額欄使用 Sum,不得變成 Count;
- 重跑前只處理本巨集建立的物件,不刪除其他內容;
- 使用 Option Explicit 和明確錯誤處理;
- 不使用未限定範圍的 On Error Resume Next;
- 最後輸出人工核對清單。

VBA 審查重點

  • 只使用工作簿內確定存在的工作表和欄位;大小寫雖通常不敏感,空格和標點必須吻合。
  • 所有 PivotTable 共用同一個來源及 PivotCache,日後 Slicer 才較容易共同連線。
  • Sales AmountMargin Amount 使用 Sum;若 Excel 視為文字而自動改用 Count,先修資料。
  • 每張表使用唯一名稱,並相隔足夠行列,避免刷新時重疊。
  • 重跑只清理本巨集建立的命名物件,不使用整張工作表的粗暴 Cells.Clear
  • 任何錯誤都顯示具體工作表、欄位或物件名,不能靜默跳過。
09:22–09:29:多張 PivotTable 在工作簿中生成。完成後要逐表比較 Grand Total,而不是把「成功出現」當成驗收。
Excel 顯示由 VBA 建立的多張銷售 PivotTable 摘要
09:34:樞紐分析摘要完成。檢查月份順序、金額格式、空白分類、Grand Total,以及各表是否來自同一資料版本。

步驟六:用 Claude 產生 Dashboard 圖表 VBA

來源流程在建立 PivotTable 後切換到 Claude,要求它根據已存在的分析表建立圖表。這不是說 Claude 天生比其他模型更適合 Excel,而是示範可以把上一階段的物件規格交給另一個模型。關鍵仍是提供確切 PivotTable 名稱和位置,並要求模型在缺少物件時停止。

Claude 根據 Excel PivotTable 產生 Dashboard 圖表 VBA
10:14:Claude 圖表 VBA。審查 Series、資料來源、圖表名稱、座標及重跑行為,避免圖表指向錯誤範圍。
請根據工作簿內已存在的命名 PivotTable,產生建立 Dashboard 圖表的 Excel VBA。

要求:
- 圖表只連到指定 PivotTable,不讀取螢幕上碰巧選中的範圍;
- 建立月度趨勢、部門比較、城市比較、服務組合等圖表;
- 每張圖表有清楚標題、可讀字體和一致色彩;
- 不使用 3D 圖;
- 不覆蓋 KPI 卡片;
- 重跑時只更新同名圖表;
- 程式碼前先列出所有假設,若 PivotTable 名稱不存在便停止並指出名稱;
- 使用 Option Explicit,並解釋每段程式碼。

圖表不應依賴 ActiveSheetSelection 或當前游標位置;這些寫法在使用者點過其他工作表後很容易失效。優先使用完整限定的 Workbook、Worksheet、PivotTable 和 ChartObject。若 AI 生成的程式碼會先刪除所有 ChartObjects,再重新建立,必須確認 Dashboard 沒有其他人工圖表。

11:07.5–11:10.5:圖表由 VBA 生成。立即用同一 PivotTable 的數值和標籤核對每張圖,不以視覺順眼代替數據正確。

步驟七:把 KPI 卡片連到計算結果

圖表完成後,來源把五張卡片填入實際 KPI。畫面可見的未篩選數值包括 Total Sales 3,054,204Total Margin 931,585Average Margin 30.50%New Customers 182Repeat Customers 298。這些只是該來源資料在當時版本的畫面結果,不是可套用到其他工作簿的答案。

Excel Dashboard KPI 卡片顯示總銷售、總毛利、平均毛利率、新客及回頭客
12:50:五張 KPI 卡片已連到結果。來源畫面數值應與原始表及 PivotTable 重新計算後一致。

驗收時至少以獨立公式重算 Total Sales 和 Total Margin,再核對 Average Margin 是否等於 Total Margin ÷ Total Sales。客戶數則要依資料定義判斷:畫面上的 182 與 298 是客戶紀錄、交易數還是唯一客戶?只有欄位規格能回答。不要因卡片總和看似合理便忽略重複姓名或分類空白。

步驟八:插入 Year Slicer,連接所有相關 PivotTable

來源最後從 Year 欄插入切片器。建立後最常見的錯誤,是它只控制當初選中的一張 PivotTable。選取切片器,打開 Report Connections/PivotTable Connections,逐一勾選 Dashboard 圖表和 KPI 所依賴的 PivotTable。若某張表沒有出現在清單,通常表示它使用了不同 PivotCache 或來源。

Excel Insert Slicers 對話框選擇 Year 欄位
13:27:選擇 Year 建立切片器。插入後仍要配置 Report Connections,不能假設所有物件自動同步。
13:23.5–13:36.5:Year Slicer 插入並套用篩選。觀察 KPI 和多張圖表是否同時變化,再清除篩選確認回復基準。
Excel 最終 Dashboard 套用年份篩選後 KPI 與圖表同步更新
14:09:最終篩選畫面。年份狀態清楚可見,KPI 與圖表同步,才算互動鏈路完成。

最終 QA:不要讓漂亮畫面掩蓋計算錯誤

測試操作合格標準
未篩選基準清除所有 Slicer公式、PivotTable、KPI 和圖表總數一致
單一年份只選一個 Year全部相連物件同步,年份狀態可見
逐年切換連續選兩個不同年份沒有殘留舊圖、舊標籤或舊 KPI
無資料狀態選一個沒有交易的組合顯示 0 或沒有資料,不保留前一篩選
新增資料在來源末端加一列再 Refresh AllMonth/Year 公式延伸,所有分析包含新列
重跑巨集在副本再執行一次不重複卡片、圖表或 PivotTable,不刪人工內容

常見故障與修正次序

  • Run-time error 9:先查工作表名,而不是立即加入 On Error Resume Next
  • Pivot 欄位找不到:逐字比較標題,檢查尾端空格、換行和欄名更新。
  • Sales 變成 Count:來源金額含文字或空白;先清洗,再刷新。
  • 月份排序錯:使用真正月份日期或 Year-Month 鍵,不以月份文字字母排序。
  • 切片器漏更新:檢查 PivotCache 和 Report Connections。
  • 圖表重疊:確認 VBA 使用唯一 ChartObject 名稱和固定網格,並在重跑時精準更新同名物件。
  • KPI 不隨篩選:卡片可能寫死數字,應連到受同一 Slicer 控制的計算結果。

巨集安全交付清單

  1. 保存原始 .xlsx,只在另存的 .xlsm 副本測試。
  2. 巨集只在受信任位置或明確檢查後啟用;不要把全域安全設定改成永遠允許所有巨集。
  3. 開啟 VBE,閱讀每一個 Module、ThisWorkbook 和工作表事件程式碼。
  4. 搜尋 KillShellCreateObject、外部 URL、檔案寫入、整表清除及未限定的錯誤忽略。
  5. 確認所有工作表、Range、Shape、PivotTable 和 ChartObject 都以完整物件限定。
  6. 先單步執行或拆成小程序,再比較執行前後工作簿。
  7. 交付前清除測試篩選,Refresh All,重新核對總數,並記錄資料更新日期。

總結

這個來源流程真正有價值之處,不是「一句提示便完成 Dashboard」,而是把 AI 放在可檢查的製作鏈中:ChatGPT 協助分析、卡片和 PivotTable VBA,Claude 協助圖表 VBA;Excel 的原始資料、PivotTable、KPI 公式和 Slicer 連線則負責提供可驗證結果。當你保留原檔、審查程式碼、拒絕靜默錯誤、逐項對數並測試篩選,AI 才是加速器,而不是把錯誤藏得更漂亮的黑盒。

資料來源與引用

我們附上第一手及官方來源,方便你逐一核實。

  1. 1.Create a PivotTable to analyze worksheet dataMicrosoft Support
  2. 2.Use slicers to filter dataMicrosoft Support
  3. 3.Change macro security settings in ExcelMicrosoft Support

常見問題

這個流程是否完全不需要 VBA?

不是。來源示範明確使用 ChatGPT 與 Claude 產生 VBA,分別建立卡片版面、PivotTable 和圖表。AI 產生的程式碼必須先在副本中審查及測試。

為何要先另存為 .xlsm?

一般 .xlsx 不會保存 VBA 專案;另存巨集啟用格式前亦應保留一份未改動副本,以便回復和比較。

Month 和 Year 輔助欄有甚麼作用?

它們讓 VBA 與 PivotTable 直接按月和年分組,亦方便建立 Year Slicer。前提是 Date 欄為真正日期,而非看似日期的文字。

可以直接執行 AI 產生的巨集嗎?

不應。先檢查工作表名稱、範圍、刪除動作、外部連線、錯誤處理及重跑行為,再於可信副本逐段執行。

切片器只更新部分圖表怎麼辦?

先確認相關 PivotTable 共用同一來源或 PivotCache,再打開 Report Connections,逐一勾選要同步的 PivotTable。

本文遵循我們的 編輯準則.

HK Learn AI 編輯部標誌

關於作者

HK Learn AI 編輯部

HK Learn AI 編輯部負責研究、查證同編寫每一篇內容,並引用官方及第一手來源。