如何在 Excel 中將年、月、日合併為完整的日期?
在 Excel 中處理不同資料集時,您可能會遇到日期的年、月、日分別儲存在不同儲存格的情況,例如 A2 儲存月份、B2 儲存日期、C2 儲存年份。將這些元素合併為單一儲存格中的真實日期格式,不僅提升資料可讀性,還能輕鬆進行日期計算、排序與格式設定。以下範例展示了分開的數值及其合併後所形成的日期:

本教學介紹多種將年、月、日串接為 Excel 日期的方法,滿足您在計算與呈現上的不同需求。無論您需要簡潔的文字結果、真正的日期值,還是自動化的批次處理方案,都能找到最適合的選擇。
使用公式將年、月、日串接為日期
使用強大工具將年、月、日串接為日期
Excel 公式-使用 DATE 函數建立真實的 Excel 日期值
VBA 程式碼-自動將年、月、日數值串接為 Excel 日期格式(適用於多列)
使用公式將年、月、日串接為日期
若您的主要目的是在單一儲存格中顯示組合後的日期文字字串,可使用基本的串接公式。這是快速呈現完整日期的簡便方法,但結果仍為文字,而非真正的 Excel 日期值,因此無法對該結果進行日期計算,也無法套用自動日期格式。
1. 選取要顯示串接日期的空白儲存格,並在編輯欄中輸入下列公式:
=A2&"/"&B2&"/"&C2 輸入公式後,按下 Enter 鍵確認。

2. 若要將此公式套用至其他列,請從已填入公式的儲存格向下拖曳「填滿控點」,覆蓋該欄中的其他儲存格,即可為所選範圍內的每一列自動串接對應的年、月、日。
注意:在此公式中,「/」字元作為年、月、日之間的分隔符號。您可根據本地日期格式或專案需求,靈活調整為短橫線「——」或句點「。」等其他分隔符號!

透過此方法,可有效合併分開的年、月、日數值。然而,由於結果為文字字串,若需進一步進行排序或日期運算等操作,則必須轉換為真正的日期格式。
使用強大工具將年、月、日串接為日期
合併功能內建於 Kutools for Excel,提供直覺操作,輕鬆將多個儲存格的內容整合至單一儲存格,無需複雜公式即可大幅提升效率!若您需要重複執行此作業或處理大範圍資料,Kutools 的批次合併功能搭配自訂分隔符號與彈性輸出選項,絕對是您的得力助手。
若要使用此功能,請確保您的年、月、日資料位於相鄰的欄位中,並依照下列步驟操作:
1. 選取包含年、月、日的相關欄位,然後點選 Kutools > 合併和拆分 > 合併行/列/儲存格並保留值。

2. 在彈出的合併列或列對話方塊中,設定下列選項:

完成上述步驟後,您所選的儲存格將合併為單一字串日期。Kutools 提供簡便可靠的大型資料集處理方案,並支援多種自訂設定,輕鬆滿足不同需求。設定分隔符號時,請留意本地日期格式的差異。
Kutools for Excel-透過超過 300 項必備工具全面強化 Excel,讓您的工作更快速、更輕鬆,並運用 AI 功能實現更聰明的資料處理與高效生產力!立即取得
Excel 公式-使用 DATE 函數建立真實的 Excel 日期值
若您不僅希望顯示日期,還需進行進一步計算、套用自動格式或使用 Excel 的日期函數,建議將數值轉換為真正的日期格式。Excel 的 DATE 函數即可輕鬆達成此目的!透過將年、月、日合併為序列日期數值,您便能立即執行期間計算、排程安排及依日期排序等操作,大幅提升工作效率!
適用情境:當您需要取得真正的 Excel 日期格式(而非文字字串)時使用,特別適用於財務報表、時間追蹤,或任何需依時間順序進行分析的任務。
注意事項:請確保每個儲存格皆填入有效數值(例如月份為 1 至 12、日期在該月份的有效範圍內,且年份正確),以免公式產生錯誤。
1. 點選要顯示真實日期的空白儲存格(例如 D2),並輸入下列公式:
=DATE(C2,A2,B2) 在此公式中,C2 應填入年份、A2 填入月份、B2 填入日期。請根據您工作表的實際結構調整儲存格參照。
2. 按 Enter 鍵確認公式。結果儲存格將包含真實的日期值,您可透過開始> 數字格式 選項,將其設定為「mm/dd/yyyy」或其他日期格式。
3. 若要將公式套用至其他列,請選取結果儲存格,並使用「填滿控點」向下拖曳,即可將公式快速套用至整個資料集!
提示:若您看到的是序列數字而非一般日期,請選取該儲存格(或儲存格範圍),按右鍵並選擇設定儲存格格式 > 日期,即可立即將數值轉換為標準日期格式!
注意事項:若參照的儲存格包含非數值文字,可能會出現 #VALUE! 等錯誤。請確認年、月、日的順序是否與您的資料一致。
VBA 程式碼-自動將年、月、日數值串接為 Excel 日期格式(適用於多列)
對於進階的批次處理或自動化作業(特別是在處理大量資料或希望免除手動輸入時),使用 VBA 是極其實用的選擇。只需撰寫簡單的巨集,即可在指定欄位中串接數值,於整個資料集中生成真正的 Excel 日期。此方法兼具高度彈性與效率,單次點擊就能輕鬆處理數百甚至數千列資料。
適用情境:當您面對重複性高、規模龐大的任務,需在指定欄位中產生真實日期值,或希望進一步自訂時,請選擇 VBA 自動化。
1. 點選開發人員工具>Visual Basic,即可開啟 Excel 的 VBA 編輯器。當 Microsoft Visual Basic for Applications 視窗出現後,點選插入> 模組。
2. 將下列程式碼複製並貼上至新模組中:
Sub ConcatDateToTrueDate_Fixed()
'Updated by Extendoffice 20250903
Dim ws As Worksheet
Dim StartCell As Range
Dim i As Long
Dim lastRow As Long
Dim yearCol As String
Dim monthCol As String
Dim dayCol As String
Dim outCol As String
Dim xTitleId As String
xTitleId = "Date Conversion"
Set ws = ActiveSheet
On Error Resume Next
Set StartCell = Application.InputBox("Select the FIRST DATA CELL in your table (e.g., A2). The macro will process all rows below it.", xTitleId, ws.Range("A2").Address, Type:=8)
On Error GoTo 0
If StartCell Is Nothing Then Exit Sub
yearCol = UCase(Trim(Application.InputBox("Enter the LETTER of the YEAR column (e.g., C):", xTitleId, "C", Type:=2)))
monthCol = UCase(Trim(Application.InputBox("Enter the LETTER of the MONTH column (e.g., A):", xTitleId, "A", Type:=2)))
dayCol = UCase(Trim(Application.InputBox("Enter the LETTER of the DAY column (e.g., B):", xTitleId, "B", Type:=2)))
outCol = UCase(Trim(Application.InputBox("Enter the LETTER of the OUTPUT column (e.g., D):", xTitleId, "D", Type:=2)))
If Len(yearCol) <> 1 Or Len(monthCol) <> 1 Or Len(dayCol) <> 1 Or Len(outCol) <> 1 Then
MsgBox "Invalid column letter entered. Please enter a single letter (e.g., A, B, C).", vbExclamation, xTitleId
Exit Sub
End If
lastRow = Application.Max(ws.Cells(ws.Rows.Count, yearCol).End(xlUp).Row, _
ws.Cells(ws.Rows.Count, monthCol).End(xlUp).Row, _
ws.Cells(ws.Rows.Count, dayCol).End(xlUp).Row)
If StartCell.Row > lastRow Then
MsgBox "No data found to process.", vbInformation, xTitleId
Exit Sub
End If
Application.ScreenUpdating = False
For i = StartCell.Row To lastRow
If IsNumeric(ws.Cells(i, yearCol).Value) And _
IsNumeric(ws.Cells(i, monthCol).Value) And _
IsNumeric(ws.Cells(i, dayCol).Value) Then
On Error Resume Next
ws.Cells(i, outCol).Value = DateSerial( _
Year:=ws.Cells(i, yearCol).Value, _
Month:=ws.Cells(i, monthCol).Value, _
Day:=ws.Cells(i, dayCol).Value)
If Err.Number <> 0 Then
ws.Cells(i, outCol).Value = "Invalid Date"
Err.Clear
End If
On Error GoTo 0
Else
ws.Cells(i, outCol).Value = ""
End If
Next i
Application.ScreenUpdating = True
MsgBox "Date conversion completed successfully! Processed rows: " & (lastRow - StartCell.Row + 1), vbInformation, xTitleId
End Sub 3. 若要執行程式碼,請點選
按鈕。系統將提示您選取資料集中的起始儲存格,並指定年、月、日所在欄位與結果日期的輸出位置。
完成後,巨集將於指定的輸出欄位中填入真正的 Excel 日期值,可直接用於計算或格式設定。若發生錯誤,請先確認欄位參照與資料完整性,再重新執行。
實用提示:執行巨集前,務必先儲存您的工作!若需重複使用,建議將程式碼儲存為工作簿中的自訂巨集,方便隨時調用。
選擇方法時,請根據您對計算能力、自動化程度及操作簡便性的需求來考量。若只需簡單顯示,直接串接快速又高效;而 DATE 函數與 VBA 方案則能提供真正的日期值,適合進行深入分析與後續操作。Kutools 則針對多樣化的資料格式,提供高效的批次處理與彈性設定選項。
若出現錯誤(例如資料格式不符、數值無效或公式失敗),請重新檢查來源儲存格與參照內容。您可在公式或 VBA 中加入錯誤處理機制,以提示使用者進行修正。大多數真實日期的顯示問題,只需調整單元格格式即可輕鬆解決。
相關文章:
最佳 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 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用