【VBA 自動化教學06】一鍵統計並產出摘要|自動彙整資料更高效

更新 發佈閱讀 7 分鐘

在日常資料處理中,統計數量、加總金額、計算平均值等動作常常重複進行。若能透過 VBA 一鍵完成統計並產出摘要,不僅節省時間,也能避免公式錯誤與人工疏漏。本文將教你如何建立一個「一鍵統計」功能,自動計算指定欄位的統計值並輸出至摘要區塊。

功能概述

這段 VBA 程式碼可實現以下功能:

  • 自動統計指定欄位的筆數、總和與平均值
  • 將統計結果輸出至指定儲存格區塊(例如工作表底部或側邊)
  • 支援動態資料範圍(自動偵測資料列數)
  • 適用於任意欄位與工作表格式

VBA 程式碼範例

Sub GenerateSummary()
Dim ws As Worksheet
Dim DataCol As Range
Dim LastRow As Long
Dim SummaryStartRow As Long
Dim CountVal As Long
Dim SumVal As Double
Dim AvgVal As Double

Set ws = ActiveSheet

' 偵測資料範圍(以第 B 欄為例)
LastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
Set DataCol = ws.Range("B2:B" & LastRow)

' 計算統計值
CountVal = Application.WorksheetFunction.Count(DataCol)
SumVal = Application.WorksheetFunction.Sum(DataCol)
If CountVal > 0 Then
AvgVal = SumVal / CountVal
Else
AvgVal = 0
End If

' 輸出統計結果(在資料列下方)
SummaryStartRow = LastRow + 2
ws.Cells(SummaryStartRow, "A").Value = "統計摘要"
ws.Cells(SummaryStartRow + 1, "A").Value = "筆數"
ws.Cells(SummaryStartRow + 1, "B").Value = CountVal
ws.Cells(SummaryStartRow + 2, "A").Value = "總和"
ws.Cells(SummaryStartRow + 2, "B").Value = SumVal
ws.Cells(SummaryStartRow + 3, "A").Value = "平均"
ws.Cells(SummaryStartRow + 3, "B").Value = AvgVal

MsgBox "統計摘要已產出", vbInformation
End Sub

程式碼詳細解說(初學者導向)

先來設定一下我們要拿來計算的欄位資料~

raw-image

簡單的設定了4筆資料,接下來我們看一下程式碼

上面這段程式碼的目的是針對指定欄位(此例為 B 欄)進行統計,並將結果輸出至工作表底部。以下是逐段說明~

首先,我們宣告變數:

  • ws 是目前作用中的工作表。
  • DataCol 是要統計的資料範圍(此例為 B2 到最後一列)"B2:B" 。
  • LastRow 是資料的最後一列位置。
  • SummaryStartRow 是統計摘要開始輸出的列位置(LastRow + 2)。
  • CountVal 是資料筆數。
  • SumVal 是資料總和。
  • AvgVal 是資料平均值。

接著使用 End(xlUp) 偵測 B 欄的最後一列,並設定統計範圍為 B2 到 B最後列。

使用 WorksheetFunction.Count 計算筆數,Sum 計算總和,並以總和除以筆數計算平均值。若筆數為 0,則平均值設為 0。

最後將統計結果輸出至資料列下方,依序標示「筆數」、「總和」、「平均」,並使用 MsgBox 顯示提示訊息。

跑完程式碼,預期結果如下圖 :

raw-image


操作步驟與使用方式

  • 將程式碼貼入 Excel 的模組中(例如 Module1)
  • 確保資料已填入 B 欄(從第 2 列開始)
  • 切換至要統計的工作表
  • 執行 GenerateSummary 程式
  • 統計結果將自動輸出至資料列下方

應用場景與延伸建議

  • 統計銷售金額、訂單數量、庫存數量
  • 每日或每週資料彙整
  • 教學作業或問卷結果快速統計

延伸功能建議:

  • 支援多欄位統計(例如 B、C、D 欄)
  • 自動偵測欄位名稱並產出摘要
  • 將統計結果輸出至另一張工作表
  • 加入條件篩選(例如只統計金額 > 0 的資料)

常見問題 FAQ

Q1:是否可以統計其他欄位?

可以修改 Range("B2:B" & LastRow) 中的欄位代號,例如改為 "C""D"

Q2:是否可以統計含有空白或文字的欄位?

目前使用 Count 函數只計算數值儲存格,若需排除文字或空白,可改用 CountIfIsNumeric 判斷。

Q3:是否可以將統計結果輸出到另一張工作表?

可以將 ws 改為 Worksheets("摘要"),並確保該工作表存在。

結語與延伸閱讀

這段 VBA 程式碼提供了高效率的「一鍵統計並產出摘要」功能,適合用於報表彙整、資料分析與教學應用。後續你可以加入多欄統計、條件篩選與格式化模組,打造完整的資料統計工具,也可以加入篩選與其他計算需求,讓你的工作直接升級自動化!

下一篇將介紹如何「一鍵複製資料到主工作簿」,敬請期待【VBA 自動化教學】第 7 篇~!

留言
avatar-img
留言分享你的想法!
avatar-img
蝦仁藥師_臨床輕鬆學的沙龍
35會員
286內容數
哈囉~!這裡主要在分享醫療知識,還有記錄下學習程式語言的各種筆記,偶爾穿插一些個人的淺見與有趣分享,希望大家都可以在這邊得到有用的資訊~!
2025/10/30
在 Excel 中處理日期資料時,若需建立年度分類、計算年差或進行報表統計,YEAR 函數能從日期值中擷取「年份」的部分(四位數整數),是日期拆解與年度邏輯判斷的常用工具。 用途:從日期中擷取「年份」的整數值(如 2025) 語法:=YEAR(日期值),年份會傳回成1900-9999內的整數
Thumbnail
2025/10/30
在 Excel 中處理日期資料時,若需建立年度分類、計算年差或進行報表統計,YEAR 函數能從日期值中擷取「年份」的部分(四位數整數),是日期拆解與年度邏輯判斷的常用工具。 用途:從日期中擷取「年份」的整數值(如 2025) 語法:=YEAR(日期值),年份會傳回成1900-9999內的整數
Thumbnail
2025/10/30
在 Excel 中處理工期推算、到期日計算或跨國排程時,WORKDAY.INTL 函數能根據起始日期與工作日天數,排除自訂的週末與假日後回傳目標日期。它是 WORKDAY 函數的進階版本,支援非標準工時與多國假期設定,適合用於行政報表、人事考勤與專案管理。
Thumbnail
2025/10/30
在 Excel 中處理工期推算、到期日計算或跨國排程時,WORKDAY.INTL 函數能根據起始日期與工作日天數,排除自訂的週末與假日後回傳目標日期。它是 WORKDAY 函數的進階版本,支援非標準工時與多國假期設定,適合用於行政報表、人事考勤與專案管理。
Thumbnail
2025/10/30
在 Excel 中處理專案排程、到期日計算或工期推算時,WORKDAY 函數能根據指定的起始日期與工作日天數,排除週末與假日後回傳目標日期。它是人事考勤、行政報表與專案管理中常用的日期運算工具。 用途:根據起始日期與工作日天數推算目標日期
Thumbnail
2025/10/30
在 Excel 中處理專案排程、到期日計算或工期推算時,WORKDAY 函數能根據指定的起始日期與工作日天數,排除週末與假日後回傳目標日期。它是人事考勤、行政報表與專案管理中常用的日期運算工具。 用途:根據起始日期與工作日天數推算目標日期
Thumbnail
看更多
你可能也想看
Thumbnail
雙11於許多人而言,不只是單純的折扣狂歡,更是行事曆裡預定的,對美好生活的憧憬。 錢錢沒有不見,它變成了快樂,跟讓臥房、辦公桌、每天早晨的咖啡香升級的樣子! 這次格編突擊辦公室,也邀請 vocus「野格團」創作者分享掀開蝦皮購物車的簾幕,「加入購物車」的瞬間,藏著哪些靈感,或是對美好生活的想像?
Thumbnail
雙11於許多人而言,不只是單純的折扣狂歡,更是行事曆裡預定的,對美好生活的憧憬。 錢錢沒有不見,它變成了快樂,跟讓臥房、辦公桌、每天早晨的咖啡香升級的樣子! 這次格編突擊辦公室,也邀請 vocus「野格團」創作者分享掀開蝦皮購物車的簾幕,「加入購物車」的瞬間,藏著哪些靈感,或是對美好生活的想像?
Thumbnail
本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
Thumbnail
本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗 🔗E
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗 🔗E
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 ♐人力資訊儀表板分集 本次人力資訊儀錶板預計分成5集依循漸進逐步完成 資料整
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 ♐人力資訊儀表板分集 本次人力資訊儀錶板預計分成5集依循漸進逐步完成 資料整
Thumbnail
在Excel中實作使用者介面(UI)是一個有趣且實用的技能,能夠幫助你更好地呈現資料、提供功能並增強使用者體驗。本文將逐步介紹如何在Excel中建立基本的UI元素,例如按鈕、下拉式選單和文字框,並擴展功能,例如資料驗證和動態更新。
Thumbnail
在Excel中實作使用者介面(UI)是一個有趣且實用的技能,能夠幫助你更好地呈現資料、提供功能並增強使用者體驗。本文將逐步介紹如何在Excel中建立基本的UI元素,例如按鈕、下拉式選單和文字框,並擴展功能,例如資料驗證和動態更新。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News