如何在 Excel 中將月數轉換為「年」與「月」的格式?

在 Excel 工作表中,您是否曾想將以「月」為單位的數值轉換成更直觀的「年」和「月」格式?例如,將 56 個月顯示為「4 年 8 個月」(如左側圖片所示)。這種轉換不僅讓數據更易讀,還能大幅提升報告期間長度或任職年資時的清晰度。本文將介紹幾種在 Excel 中實現此轉換的實用方法,並說明每種方法最適合的應用情境。
使用公式將月數轉換為年與月
當您想將代表月數的數值轉換為更直觀易懂的「年與月」期間格式時,Excel 公式能輕鬆高效地達成目標。此方法特別適合日常任務、小型資料集,或完全不想使用程式碼的情境。公式具備動態特性,只要輸入的月數一變更,結果就會自動更新。
若要直接使用公式將月數轉換為年與月,可採用下列方法:完整年數由總月數除以 12 得出,其餘數即為剩餘的月數。
將下列公式複製並貼上至空白儲存格:
輸入此公式後,按下 Enter,即可立即看到年與月的轉換結果!若要將公式套用至其他列,只需向下拖曳填滿控點,即可輕鬆實現批量處理,確保所有數值即時轉換,效率大幅提升!

提示與注意事項:
- 若月數少於 12,公式將顯示「0 年 X 個月」。
- 負值與非整數可能導致非預期結果,請確保原始數值有效且為數字格式。
- 若希望在無輸入時顯示空白,可運用 IF 函數避免出現「0 年 0 個月」。
常見問題排除:
- 若出現 #VALUE! 錯誤,請確認所引用的儲存格是否包含有效的數值。
- 若您希望自訂輸出格式,可依需求調整公式中引號內的文字。
此公式方法適用於數值可能變動的動態轉換情境,尤其適合不熟悉程式設計或巨集的使用者。若需處理極大資料集或頻繁重複執行轉換作業,自動化解法將更有效率。詳情請參閱下方的巨集解決方案。
使用 VBA 巨集將月數轉換為年與月
若您經常需要將月數清單轉換為「年與月」格式,或處理龐大資料集,Excel 的 VBA 巨集功能可自動化這項任務,不僅節省寶貴時間,更能有效減少手動輸入錯誤。當您需要一次處理多個欄位,或希望將此邏輯作為可重複使用的工作流程套用至新資料時,巨集的價值尤其顯著。
1. 按一下開發人員 > Visual Basic,即可開啟 VBA 編輯器。若您未看見「開發人員」頁籤,可透過 Excel 選項 > 自訂功能區啟用。開啟編輯器後,按一下插入 > 模組。在出現的模組視窗中,複製並貼上下列程式碼:
Sub ConvertMonthsToYearsMonths()
Dim rng As Range
Dim cell As Range
Dim years As Integer
Dim months As Integer
Dim outputCol As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set rng = Application.InputBox("Select the range of months to convert", xTitleId, Selection.Address, Type:=8)
If rng Is Nothing Then Exit Sub
outputCol = rng.Columns(rng.Columns.Count).Column + 1
For Each cell In rng
If IsNumeric(cell.Value) And cell.Value >= 0 Then
years = Int(cell.Value / 12)
months = cell.Value Mod 12
cell.Offset(0, rng.Columns.Count).Value = years & " years and " & months & " months"
Else
cell.Offset(0, rng.Columns.Count).Value = ""
End If
Next
End Sub 2. 若要執行巨集,請按一下
按鈕,或按下 F5 鍵。系統將彈出對話方塊,提示您選取欲轉換的月數範圍(例如 A2:A20);選取後,點擊「確定」即可完成設定!
巨集會自動將結果(以「X 年 Y 個月」格式)寫入您所選範圍右側的相鄰欄位。例如,若您選取 A2:A20,結果將顯示於 B2:B20.
使用說明與提示:
- 請確保所選範圍包含有效的正數(代表月數)。若儲存格為空,系統將視為零,並顯示「0 年 0 個月」;若為非數值或負值,則可能導致空白或錯誤輸出。
- 巨集會將結果直接輸出至所選區域右側的欄位。執行前,請務必確認該欄位,以免覆蓋既有資料。
- 此巨集可重複執行,非常適合用於批次處理或處理新進資料。
- VBA 操作無法使用復原功能(Ctrl+Z),執行巨集前務必先備份重要資料。
- 若您的資料包含負數或小數形式的月數,這些數值將被視為空白(詳見 VBA 條件;可依需求調整)。
此 VBA 方法專為需要重複轉換、一次處理大量資料列,或希望自動化生產力任務的使用者而設計。只需單擊一次,即可快速轉換整個資料集,大幅簡化工作流程。若您初次使用 VBA,請務必先啟用巨集功能;若您的環境對巨集有所限制,建議事先諮詢 IT 管理員。
疑難排解:
- 若執行巨集時發生錯誤,請確認已啟用「開發人員」頁籤,並確保 Excel 設定允許執行巨集。
- 若執行巨集的結果會覆蓋既有資料,請務必先確認相鄰欄位為空。
- 若不慎選錯範圍,只需重新執行巨集並再次選擇即可。
總結來說,無論是使用公式或 VBA 解決方案,都能輕鬆高效地將月數轉換為易讀的「年與月」格式。請根據您的資料集規模與工作流程偏好,選擇最適合的方法。若需進一步自動化,還可自訂 VBA 程式碼,以滿足特定的格式或輸出需求。
更多相關文章:
- 在 Excel 中僅根據月份與年份比較兩個日期
- 若您有兩組日期清單,現在需要僅根據月份與年份(忽略日期中的「日」)來比較這些日期;若兩者月份與年份相同,結果應顯示為 True,否則應顯示為 False,如下方截圖所示。如何在 Excel 中僅根據月份與年份(忽略「日」)來比較日期?
- 在 Excel 中根據月份與年份加總數值
- 若您有一組資料範圍,其中 A 欄為日期,B 欄為對應的訂單數量,現在想根據特定的月份與年份來加總這些數值——例如計算 2016 年 1 月的總訂單數,以取得如下結果。本文將為您介紹幾種實用技巧,輕鬆在 Excel 中完成這項任務。
- 在 Excel 中將 1-12 轉換為月份名稱
- 例如,您收到一份銷售表格,其中月份以數字呈現,而您需要將這些數字轉換為標準的月份名稱(如下方截圖所示)。有什麼好方法嗎?本文將為您介紹兩種實用的解決方案。
- 在 Excel 中計算當月或當年剩餘天數
- 在某些情況下,您可能想知道某個月或某一年還剩下多少可用天數。假設今天是 2014 年 10 月 12 日,您想計算本月(10 月)或本年度(2014 年)剩餘的天數——也就是本月還剩 19 天、本年度還剩 80 天。更多詳細資訊,請參閱下方文章。
- 在 Google 試算表中對日期加上指定年數、月數與天數
- 本文將說明如何在 Google 試算表中為日期加上指定的年數、月數或天數。
- 超強編輯欄(輕鬆編輯多行文字與公式);閱讀版面(輕鬆閱讀與編輯大量儲存格);貼上至篩選範圍……
- 合併儲存格/列/欄並保留資料;分割儲存格內容;合併重複行並加總/平均……防止重複項儲存格;比較範圍……
- 選取重複或唯一列;選取空白列(所有儲存格皆為空);超級查找與模糊搜尋多個活頁簿;隨機選取……
- 精確公式複製多個儲存格而不變更公式參照;自動建立參照至多個工作表;插入項目符號、複選框及更多……
- 收藏並快速插入公式、範圍、圖表與圖片;加密儲存格並設定密碼;建立郵件清單並寄送電子郵件……
- 提取文本、添加文本、刪除某位置字元、移除空格;建立並列印數據分頁統計;在儲存格內容與註解之間轉換……
- 超級篩選(儲存並套用篩選方案至其他工作表);高級排序依月份/週/日、頻率等;特殊篩選依粗體、斜體……
- 合併活頁簿與工作表;合併表格依據關鍵列;分割數據至多個工作表;批次轉換 xls、xlsx 與 PDF……
- 資料透視表依週數、星期幾等分組……顯示未鎖定、選區鎖定以不同顏色標示;突顯包含公式/名稱的儲存格……

- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 與 Project 中啟用分頁式編輯與閱讀,提升工作效率!
- 在同一視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
- 每天為您提升 50% 的工作效率,省下數百次滑鼠點擊!
