如何在 Excel 中計算每年、每季、每月或每週的出現次數?
在日常工作中,數據分析經常需要依時間期間(例如計算每月銷售筆數、追蹤每週活動頻率,或按季度分析季節性趨勢)來彙總記錄或事件的數量。雖然 Excel 的 COUNTIF 函數常用於根據特定條件計數資料,但若要直接依年、月、季或週對日期進行分組與計數,操作可能並不直觀。為解決這些挑戰,本文將介紹幾種實用且易於套用的方法,協助您在 Excel 中依不同時間期間(年、季、月、週、平日)精準計算出現次數,有效彙總與分析時間相關資料,並避免手動計數錯誤。
- 使用公式依年/月計算出現次數
- 使用 Kutools for Excel 依年/月/星期幾/日計算出現次數
- 使用樞紐分析表依年/月/季/小時計算出現次數
- VBA 巨集:自動彙總依年/季/月/週的出現次數
- 使用 WEEKNUM 公式依週計算出現次數
使用公式依年/月計算出現次數
當您需要快速掌握特定事件在某一年或某個月內發生的次數時,公式提供了一種靈活又動態的解決方案!透過結合內建日期函數與 SUMPRODUCT,您能輕鬆計算按年、按月或兩者組合的統計次數,讓彙總結果在原始數據更新時自動同步。此方法完美適用於大多數中小型資料集的日常分析任務,提升效率、省時省力!
選取一個空白儲存格以顯示計數結果,然後輸入下列公式:
=SUMPRODUCT((MONTH($A$2:$A$24)=F2)*(YEAR($A$2:$A$24)=$E$2))
輸入公式後,視需要向下拖曳儲存格的自動填滿控制點,將公式套用至其他列,如下圖所示:
注意事項與技巧:
- 公式中的
MONTH($A$2:$A$24)=F2與YEAR($A$2:$A$24)=$E$2用於比對 F2 所指定的月份與 E2 中的年份條件。請根據您的資料結構,立即更新範圍與儲存格參照(例如 )A2:A24、E2、F2),以確保公式準確運作! - 若僅需依月份計數而忽略年份,請使用:
=SUMPRODUCT(1*(MONTH($A$2:$A$24)=F2)) - 請確保日期欄位使用的是真正的 Excel 日期值,而非文字格式的日期,以免發生錯誤或比對失敗。若公式傳回非預期結果,請再次確認日期格式設定是否正確。
- 若您的資料集規模龐大,建議運用樞紐分析表或 VBA,以提升效能並簡化維護作業。
此方法適用於大多數需要快速進行日期統計的場景,尤其當您希望結果能隨資料變動自動更新時更顯實用。然而,若涉及多重分組條件,公式可能會變得複雜且難以維護。
使用 Kutools for Excel 依年/月/星期幾/日計算出現次數
若您已安裝 Kutools for Excel,即可運用其直覺化的工具,無需撰寫複雜公式,輕鬆依年、月、星期幾、日,或進一步組合(如年 & 月、月 & 日)進行分組與計數。此方法特別適合偏好視覺化、選單導向操作的使用者。
1. 選取包含日期的欄位,然後按一下 Kutools > 格式 > 應用日期格式,隨即出現下列對話方塊:
2. 在應用日期格式對話方塊中,選取符合您計數需求的格式樣式(例如月份、年份、星期幾、日等),然後按一下確定。例如,若要依月份計數,請選取「Mar」。
3. 當日期欄位仍處於選取狀態時,按一下 Kutools> 轉換為實際值,即可將所有日期轉換為顯示值(例如月份名稱),方便後續步驟進行分組。
4. 接下來,選取包含已轉換分組名稱及相關資料(例如金額或類別欄位)的範圍,然後前往 Kutools > 內容 > 高級合併行。您將看到下列介面:
5. 在高級合併行對話方塊中:
(1) 將您的日期欄位設為主鍵以進行分組。
(2) 對於要計數的欄位(例如金額),將計算方式設為計數。
(3) 您也可為其他欄位選擇其他彙總或組合方式(例如以逗號串聯水果名稱)。
(4) 按一下確定,立即完成處理!
您的資料現在會依所選週期顯示對應的記錄數量,如下圖所示:
Kutools for Excel-透過超過 300 項必備工具全面強化 Excel,讓您的工作更快速、更輕鬆,並運用 AI 功能實現更聰明的資料處理與高效生產力!立即取得
相較於手動輸入公式,Kutools 能有效簡化操作流程、降低人為錯誤風險,非常適合經常進行分組計數且希望避開公式複雜性的使用者。此方法無論是小型或大型資料集皆適用。請務必在執行大量轉換或合併欄位前,先備份您的資料。
使用樞紐分析表依年/月/季/小時計算出現次數
樞紐分析表提供強大且互動式的分析功能,透過簡潔直覺的點選介面,即可依一個或多個時間維度(如年、月、季、小時等)快速彙總大型資料集中的出現次數。同時支援靈活的即時重設與篩選,是探索資料趨勢與製作管理報表的理想選擇。
1. 選取您的資料表,然後前往插入 > 樞紐分析表,隨即出現「建立樞紐分析表」對話方塊。
2. 在對話方塊中,指定樞紐分析表的放置位置(例如新工作表或現有工作表中的儲存格 E1),然後按一下確定。
3. 在樞紐分析表欄位窗格中,將日期欄位拖曳至列區段,並將金額(或目標欄位)拖曳至值區段。預設情況下,數值將自動加總。
樞紐分析表顯示如下圖所示:
4. 在數值欄標題(例如「金額總和」)上按一下滑鼠右鍵,選擇「依下列方式彙總數值」,再點選「計數」,即可將數值計算方式變更為計數。
5. 若要按其他期間(例如月份、年份或季度)分組,請在「列標籤」欄中任意儲存格上按一下滑鼠右鍵,選取「組合」,然後在對話方塊中選擇分組條件(例如「月份」、「年份」或「季度」),再按一下「確定」。
您的表格現在會依所選期間顯示計數:
注意:同時按多個期間(例如月份與年份)分組,將在「列標籤」中新增額外層級。您可於「樞紐分析表欄位」窗格中重新排列分組欄位(例如將)「年份」移至「日期」下方,以調整摘要的呈現方式。
此方法最適合用於大型且動態的資料集,特別是需要定期進行分組、比較與彙總的情境;然而,若需快速執行臨時性的儲存格層級計算,或使用者不熟悉樞紐分析表功能,則較不適用。
VBA 巨集:自動彙總依年/季/月/週的出現次數
當您需要反覆生成依不同時間區間分組的出現次數摘要,或希望透過自動化計數流程提升效率(特別是在處理大型資料集時),自訂 VBA 巨集將是理想的解決方案。若您需定期處理資料、產出週期性摘要報表,或需要套用自訂分組方式(例如會計季度或週數),而這些需求難以單靠公式或樞紐分析表輕鬆達成,此方法將格外適用。
完整操作步驟:
- 首次執行任何巨集前,請務必先備份您的活頁簿。
- 按一下開發人員 > Visual Basic,即可開啟 VBA 編輯器。
- 點擊插入> 模組,然後將下方程式碼複製並貼上至模組視窗中。
Sub CountOccurrencesByPeriod()
Dim lastRow As Long
Dim ws As Worksheet, summaryWs As Worksheet
Dim periodType As String
Dim dict As Object, key As Variant
Dim dateRange As Range, cell As Range
Dim outputRow As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set ws = Application.ActiveSheet
Set dateRange = Application.InputBox("Select date range:", xTitleId, Selection.Address, Type:=8)
periodType = Application.InputBox("Count by (Year/Quarter/Month/Week):", xTitleId, "Month", Type:=2)
If dateRange Is Nothing Or periodType = "" Then Exit Sub
Set dict = CreateObject("Scripting.Dictionary")
For Each cell In dateRange
If IsDate(cell.Value) Then
Select Case LCase(periodType)
Case "year"
key = Year(cell.Value)
Case "quarter"
key = "Q" & WorksheetFunction.RoundUp(Month(cell.Value) / 3, 0) & " " & Year(cell.Value)
Case "month"
key = Format(cell.Value, "yyyy-mm")
Case "week"
key = "W" & WorksheetFunction.WeekNum(cell.Value) & " " & Year(cell.Value)
Case Else
key = Format(cell.Value, "yyyy-mm")
End Select
If dict.Exists(key) Then
dict(key) = dict(key) + 1
Else
dict.Add key, 1
End If
End If
Next cell
Set summaryWs = Worksheets.Add(After:=ws)
summaryWs.Name = "Occurrence_Summary"
summaryWs.Range("A1").Value = "Period"
summaryWs.Range("B1").Value = "Occurrences"
outputRow = 2
For Each key In dict.Keys
summaryWs.Cells(outputRow, 1).Value = key
summaryWs.Cells(outputRow, 2).Value = dict(key)
outputRow = outputRow + 1
Next key
MsgBox "Summary completed in sheet 'Occurrence_Summary'.", vbInformation
End Sub 輸入程式碼後:
- 返回 Excel 後,按下 Alt+F8,選取 CountOccurrencesByPeriod,再按一下執行。
- 系統將提示您選取要分析的日期範圍,請選擇包含日期的相關欄位或範圍。
- 第二個提示會詢問您要依哪種週期分組:請輸入「Year」、「Quarter」、「Month」或「Week」(不區分大小寫)。
- 此巨集將自動產生一個名為 Occurrence_Summary 的新工作表,清晰列出每個週期及其對應的出現次數!
疑難排解與提示:
- 若遇到巨集安全性警告,請前往檔案 > 選項 > 信任中心 > 巨集設定調整巨集設定。
- 請確保您的日期欄位包含有效的 Excel 日期值;若使用文字字串或混合格式,可能導致計數不準確或引發錯誤。
- 此巨集極具彈性——輸入「Quarter」即可依年份與季度快速分組計數,輸入「Week」則能以週為單位進行彙總。
- 若您希望自訂輸出內容(例如加入更多詳細資訊),可調整巨集以處理額外欄位或自訂計算規則。
此解決方案適用於批次報表或週期性分析,但假設使用者已具備基本的 VBA 與活頁簿管理知識。若您希望結合視覺化摘要,可同時運用樞紐分析表與 VBA。
使用 WEEKNUM 公式依週計算出現次數
在銷售追蹤、專案管理及資源分配中,依週計算項目或事件的出現頻率十分常見。Excel 提供了 WEEKNUM 函數,可傳回指定日期在一年中的週數,讓您輕鬆透過公式以每週為單位對資料進行分組!
適用情境:您手邊有一份日期清單(例如銷售或出勤資料),希望統計每年各週的項目數量。此方法適合用於持續性分析,當資料經常變動時,計數結果將自動更新!
1. 在空白欄位(例如 B2)中輸入以下公式,即可計算 A 欄每個日期對應的週數:
=WEEKNUM(A2,1) 第二個引數(「1」)表示每週從星期日開始(若希望每週從星期一開始,請改為「2」)。請將此公式複製到所有日期資料列。
2. 列出您想彙總的週數(例如:1、2、3……)。在另一個空白儲存格(例如 D2)中,輸入以下公式,即可計算特定週數的出現次數(假設 B2:B24 為週數資料範圍,且 D2 為欲搜尋的週數):
=COUNTIF($B$2:$B$24, D2) 按下 Enter 後,將此公式向下拖曳至您的週數清單,即可顯示每週的出現次數。
提示與注意事項:
- 若您希望同時依年份與週次進行計數,以清楚區分不同年份的資料,請使用以下公式:
=SUMPRODUCT((YEAR($A$2:$A$24)=$F$2)*(WEEKNUM($A$2:$A$24,1)=G2))其中 F2 為目標年份,G2 為目標週數。請根據實際需求調整欄位範圍與儲存格參照。 - WEEKNUM 函數的週數可能因設定而異(例如系統預設、美規/ISO,或您自訂的每週起始日)。
- 若需使用 ISO 週數(歐洲標準:每週以週一為起始日,且第一週為包含該年第一個星期四的週),請使用
=ISOWEEKNUM(A2)(適用於 Excel 2013 及更新版本)。 - 務必確保所有日期值皆為有效的 Excel 日期格式,方能獲得準確結果。
此方法適用於動態資料表,可靈活運用於儀表板、週期性摘要,以及在不使用樞紐分析表或額外增益集的情況下,進行每週計數的交叉分析。
示範:計算每年/每月/每週/每日的出現次數
相關文章:
最佳 Office 生產力工具
| 🤖 | KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、醒目提示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 高級 LOOKUP:多重條件 VLookup | 多重數值 VLookup | 跨多個工作表 VLookup | 模糊查找…… | |
| 高級下拉列表:快速建立下拉式清單 | 相依式下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位|移動欄位|切換隱藏欄位的可見狀態|比較範圍與欄位…… | |
| 精選功能:網格聚焦 | 設計視圖 |增強編輯欄 | 工作簿與工作表管理員 | 資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符,……)| 50+ 圖表 類型(甘特圖,……)| 40+ 實用公式(基於生日計算年齡,……)| 19 插入工具(插入二維碼,從路徑插入圖片,……)| 12 轉換工具(金額轉大寫,匯率轉換,……)| 7 合併和拆分工具(高級合併行,分割儲存格,……)|……以及更多 |
運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……
Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!
- 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
- 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
- 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!
所有 Kutools 增益集,一個安裝程式
Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!
- 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
- 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
- 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
- 30 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用