Skip to main content

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

僅按月份排序Excel中的生日 - 完整指南

Author Kelly Last modified

通常,當您使用Excel的標準排序功能對包含出生日期的列進行排序時,條目會先按年份排序,然後是月份,最後是日期。然而,在許多情況下——例如創建生日日曆、規劃每月表彰或生成事件提醒——您只關心月份,而不論年份。僅按月份(或甚至同時按月份和日期)對生日進行排序,使得管理這些列表並快速發現即將到來的生日變得更加容易。本逐步指南介紹了幾種方法和優化提示,以有效地在Excel中僅按月份排序生日,或者根據需要同時按月份和日期排序,滿足各種實際需求。


僅使用輔助列按月份排序生日

在Excel中按月份排序生日最實用且靈活的方法之一是使用輔助列。此方法利用Excel內置的MONTH函數從每個日期中提取月份值,然後可以獨立於年份進行排序。這種方法非常適合希望視覺控制並且不喜歡使用外掛或宏的用戶,並且與所有Excel版本兼容。不過,請注意您需要在工作表中臨時添加一個新列。

1. 在您的生日列表旁邊的一個空列中(假設您的生日從B2單元格開始),在輔助列的第一個單元格(如C2)中輸入以下公式:

=MONTH(B2)

此公式從B2單元格中的日期提取月份部分(作為數字,1到12)。如果您的數據起始位置不同,請相應調整單元格引用。

2. 拖動自動填充柄向下填充所有包含日期的行。這將為每個生日生成相應的月份數字。見截圖:

create a formula helper column

3. 選擇您剛剛創建的輔助列中的所有單元格(月份數字)。在Excel功能區上,轉到數據 > 從小到大排序從大到小排序,依您偏好的順序而定。

click Data > Sort Smallest to Largest or Sort Largest to Smallest

4. 當出現“排序警告”對話框時,確保選中擴展選定區域選項,以便整個行(所有生日數據)保持在一起,然後點擊排序

check the Expand the selection option

現在,您的生日已僅按月份排序,忽略了年份信息。確認排序正確後,您可以刪除或隱藏臨時輔助列(若需要)。

the dates are sorted by the month only

提示和提醒:

  • 如果您的數據包含空白行,Excel在排序時會將其視為1/0,這可能會導致混亂的順序——確保該列完全填滿或過濾掉空白行。
  • 分享或打印時,記得隱藏或移除輔助列以獲得更乾淨的結果。

 

僅按月份和日期排序生日

有時候,僅按月份排序是不夠的;您可能需要按月份和日期組織生日,而完全忽略年份——例如當準備年度慶祝日曆時。在這種情況下,不同的公式方法效果很好。在第一個日期旁邊的空單元格中(例如,C2),輸入:

=TEXT(B2,"MMDD")

此公式將日期轉換為代表月份和日期的四位數字字符串("MMDD" 格式)。向下拖動公式至所有行,然後像往常一樣在此輔助列上排序。見截圖:

apply a formula to create a helper columndates are sorted by month and day only

注意事項:

  • 如果您有區域日期格式或非標準日期,請在排序前確認輔助列結果與預期日期相符。
  • 排序後,如果不再需要該輔助列,您可以選擇隱藏或清除它。

 


僅使用Kutools for Excel按月份排序生日

如果您經常處理大量生日列表並且想要更快捷、直接的方式按月份排序,使用Kutools for Excel高級排序功能可以節省大量時間。Kutools for Excel能夠直接按月份、日期甚至星期幾進行排序,無需設置輔助列或公式。

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

1. 選擇要按月份排序的範圍,然後從功能區中選擇Kutools Plus > 高級排序。見截圖:

2. 在高級排序對話框中,指定生日列於下,從排序依據下拉列表中選擇月份,並選擇所需的排序順序(升序或降序)。點擊確定應用排序。見截圖:

specify the options in the Advanced Sort dialog box

現在,生日已迅速地僅按月份排序。不需要額外的列,使這個解決方案特別適合經常管理此類任務或不喜歡調整表格結構的用戶。

the birthdays are sorted by month only

注意:

  • 如果您的生日數據包含重複條目或空白,請檢查排序結果以確認所有數據都符合預期。
  • Kutools for Excel支持批量排序和許多其他高級篩選器,可進一步提高您的日常Excel工作流程。

 


VBA代碼 - 自動化僅按月份排序生日

對於高級用戶,或任何希望自動化按月份排序生日而無需使用輔助列或第三方外掛的人來說,VBA宏是一個高效且靈活的解決方案。如果您定期更新或導入新列表並且希望一鍵操作排序,這尤其有用。

適用場景:直接按月份排序所選日期範圍,無需添加額外列。推薦給中級Excel用戶或任何希望加速重複任務的人。

限制:運行此宏僅基於月份修改順序。它忽略日期和年份,因此如果您需要更精細的順序(月份和日期),請參閱下面的其他解決方案。

1. 點擊開發工具 > Visual Basic。在打開的VBA編輯器窗口中,選擇插入 > 模塊,然後將以下代碼粘貼到模塊中:

Sub SortByMonthOnly()
    Dim rng As Range
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim sortCol As String
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    ' Prompt user for the range
    Set rng = Application.Selection
    Set rng = Application.InputBox("Please select the range with birth dates to sort by month:", xTitleId, rng.Address, Type:=8)
    
    If rng Is Nothing Then Exit Sub
    
    Set ws = rng.Worksheet
    lastRow = rng.Rows.Count + rng.Row - 1
    sortCol = rng.Columns(1).Address(False, False)
    
    ' Add a temporary helper column
    ws.Columns(rng.Columns(rng.Columns.Count).Column + 1).Insert
    ws.Cells(rng.Row, rng.Columns(rng.Columns.Count).Column + 1).Value = "MonthTmp"
    
    ws.Range(ws.Cells(rng.Row + 1, rng.Columns(rng.Columns.Count).Column + 1), _
             ws.Cells(lastRow, rng.Columns(rng.Columns.Count).Column + 1)).FormulaR1C1 = _
             "=MONTH(" & sortCol & rng.Row & ")"
             
    ws.Range(ws.Cells(rng.Row + 1, rng.Columns(rng.Columns.Count).Column + 1), _
             ws.Cells(lastRow, rng.Columns(rng.Columns.Count).Column + 1)).Formula = _
             "=MONTH(" & ws.Cells(rng.Row, rng.Columns(1).Column).Address(False, False) & ")"
             
    ws.Range(ws.Cells(rng.Row, rng.Columns(1).Column), _
             ws.Cells(lastRow, rng.Columns(rng.Columns.Count).Column + 1)).Sort _
             Key1:=ws.Cells(rng.Row, rng.Columns(rng.Columns.Count).Column + 1), _
             Order1:=xlAscending, Header:=xlYes
    
    ws.Columns(rng.Columns(rng.Columns.Count).Column + 1).Delete
End Sub

2. 要執行代碼:在VBA窗口中,點擊 Run button 運行 按鈕。一個對話框將提示您選擇生日範圍。選擇您的日期單元格並確認。宏將根據每個日期的月份自動排序範圍。

陷阱和提示:

  • 這個VBA僅對所選日期列進行排序,不會改變相鄰列中的數據。
  • 在運行VBA腳本之前備份您的數據,因為操作通常是不可逆的。
  • 如果您收到關於不合格引用的錯誤,請檢查是否僅選擇了日期列——如果您的數據包括標題,請將其包含在選擇中。
  • 這個宏臨時添加和移除一個輔助列;如果格式很重要,請在執行後檢查列。

Excel公式 - 使用組合輔助列按月份和日期排序生日

如果您需要準確按月份和日期(忽略年份)排序生日,請在輔助列中使用此公式創建一個可排序的值,將兩者結合:

1. 在生日列表旁邊的一個空列中(例如,單元格C2),輸入以下公式:

=MONTH(B2)&TEXT(DAY(B2),"00")

此公式將月份提取為數字並將日期提取為兩位數字字符串,將其連接起來(例如,2月5日將變為“205”)。這確保生日首先按月份排序,然後按每個月份中的日期排序,而不論年份。根據您的數據位置必要時調整引用(B2)。

2. 輸入公式後,按下Enter。然後,向下拖動公式填充所有行。填滿新的輔助列後,通過該列對數據進行排序(使用數據 > 排序)。您的生日列表現在將準確按月份和日期組織。

實用建議:

  • 如果生日包括個位數日期,TEXT(DAY(B2),"00")確保“01”,“02”,...,所以排序總是正確的。
  • 如果需要,在排序後隱藏或清除輔助列以保持工作表整潔。

通過這些方法,您可以輕鬆地在Excel中僅按月份或按月份和日期排序生日。每種方法都有其特定的優勢:公式和輔助列透明且易於大多數用戶掌握和排除故障,Kutools為頻繁和高級用戶簡化排序而不改變您的列,VBA宏提供快速大批量自動化。選擇適合您的解決方案。如果您遇到問題(例如日期格式未被識別,公式返回錯誤,或排序序列看上去不正確),檢查您的日期數據的一致性並查找空白或文本條目。有關進一步的故障排除或高級指導,請參閱下面的相關資源。要學習更多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 天全功能試用 — 無需註冊、無需信用卡
  • 最超值 — 一次購買,節省單獨外掛費用