嘿,第十篇文章我們來處理台灣 Excel 使用者最頭痛的問題——日期轉換!
在台灣工作,你一定遇過這種狀況:
-
- 政府文件、勞健保表單都用「民國年」,但 Excel 只認「西元年」
- 從系統匯出的日期是「112/3/19」,沒辦法直接計算
- 要做年資統計,但兩種年份混在一起,根本無法比較
今天教你3種方法,快速搞定民國轉西元、西元轉民國,日期轉換一次學會!
先搞清楚:民國年和西元年差在哪?
民國年 = 西元年 – 1911
例如:
- 西元 2026 年 → 民國 115 年(2026 – 1911 = 115)
- 民國 112 年 → 西元 2023 年(112 + 1911 = 2023)
這個換算邏輯是所有方法的基礎,先記起來!
案例:員工到職日
假設你有一張員工資料表,日期格式亂成一團:
| 員工編號 | 姓名 | 到職日(民國) | 到職日(西元) |
|---|---|---|---|
| A001 | 王小明 | 112/3/15 | |
| A002 | 李小華 | 111/8/20 | |
| A003 | 張美美 | 110/11/5 | |
| A004 | 陳大文 | 113/1/10 | |
| A005 | 林小君 | 109/6/30 |
我們的目標:把「到職日(民國)」欄位,全部轉成西元,才能做年資計算。

△ 圖1:民國年需要進行轉換
方法一:儲存格格式設定(最快、不改變原始值)
如果只是「顯示」要改成西元年,資料本身不想動,用這個方法。
步驟:
- 選取要轉換的日期欄位(C2:C6)
- 按右鍵 →「儲存格格式」
- 點選「數值」→「自訂」
- 在「類型」框中輸入:
yyyy/mm/dd - 按下確定
完成後,原本輸入的「112/3/15」會直接顯示為「2023/3/15」!
原理: Excel 其實還是儲存原本的民國年,只是「看起來」變成西元年。這種方式最安全,不會影響原始資料。
⚠️ 注意: 如果您的民國年格式是「112/3/15」這種文字,Excel 可能會把它當成「文字」而不是「日期」,這時直接設定儲存格格式可能不會生效。
解決方法:先用方法二或方法三把文字轉成真正的日期,再用這個方法設定顯示格式。

△ 圖2:用儲存格格式設定,快速改變日期顯示方式
微軟官方有詳細的日期設定教學 [微軟:設定以日期或時間顯示數字的格式]
方法二:用 DATE 公式轉換(最準確)
如果你想要「真的」把民國年轉成西元年,讓它可以計算、排序,就用這個公式。
在 D2 輸入:
=DATE(LEFT(C2,3)+1911, MID(C2,5,2), RIGHT(C2,2))
然後把公式往下拉,就會得到正確的西元日期。
公式解說:
LEFT(C2,3):抓出民國年(112)+1911:轉成西元年(2023)MID(C2,5,2):抓出月份(3月會變成「03」)RIGHT(C2,2):抓出日期(15)DATE(...):組合成真正的西元日期
結果:
| 員工編號 | 姓名 | 到職日(民國) | 到職日(西元) |
|---|---|---|---|
| A001 | 王小明 | 112/3/15 | 2023/3/15 |
| A002 | 李小華 | 111/8/20 | 2022/8/20 |
| A003 | 張美美 | 110/11/5 | 2021/11/5 |
| A004 | 陳大文 | 113/1/10 | 2024/1/10 |
| A005 | 林小君 | 109/6/30 | 2020/6/30 |
⚠️ 注意: 這個公式適合「112/03/15」這種「3位數/2位數/2位數」的格式。
如果您的資料是「112/3/15」(月份沒有補零),公式會把「3」誤判成「03」,導致月份錯誤。
解決方法: 先用「方法三」的公式,或先用儲存格格式把民國年改成「000/00/00」的顯示方式,讓月份和日期都變成2位數,再用這個公式轉換。

△ 圖3:用 DATE 函數把民國年轉成真正的西元日期
微軟官方有 DATE 函數的詳細教學 [微軟:DATE 函數]
方法三:萬用 DATE 公式(不用補零,適用所有格式)
這個方法用 FIND 函數動態找出斜線位置,不管你的月份是1位數還是2位數,都能正確轉換!
在 D2 輸入:
=TEXT(DATE(LEFT(C2,3)+1911,
MID(C2,FIND("/",C2)+1,
FIND("/",C2,FIND("/",C2)+1)-FIND("/",C2)-1),
RIGHT(C2,2)),
"yyyy/mm/dd")
(公式可以複製貼上,不用自己換行)
🔍 公式一步一步解說
| 步驟 | 公式部分 | 說明 | 範例結果 |
|---|---|---|---|
| ① | LEFT(C2,3)+1911 |
抓出民國年,轉成西元年 | 112 → 2023 |
| ② | FIND("/",C2) |
找出第一個斜線的位置 | 4 |
| ③ | FIND("/",C2, FIND("/",C2)+1) |
找出第二個斜線的位置 | 6 |
| ④ | MID(C2, 第一個斜線+1, 第二個斜線-第一個斜線-1) |
抓出兩個斜線中間的月份 | 3 |
| ⑤ | RIGHT(C2,2) |
抓出最後的日期 | 15 |
| ⑥ | DATE(...) + TEXT(...,"yyyy/mm/dd") |
組合成西元日期並格式化 | 2023/03/15 |
📊 實際轉換結果
| 員工編號 | 姓名 | 到職日(民國) | 到職日(西元) |
|---|---|---|---|
| A001 | 王小明 | 112/3/15 | 2023/03/15 |
| A002 | 李小華 | 111/8/20 | 2022/08/20 |
| A003 | 張美美 | 110/11/5 | 2021/11/05 |
| A004 | 陳大文 | 113/1/10 | 2024/01/10 |
| A005 | 林小君 | 109/6/30 | 2020/06/30 |
✅ 這個方法的三大優點:
- 萬用:不管月份是1位數還是2位數,通通適用
- 不用先補零:原始資料長怎樣都能轉
- 最穩定:用 FIND 動態找位置,不會出錯
微軟官方有相關函數的教學:
西元轉民國:反過來的做法
有時候拿到的是西元年,但政府表單要填民國年,就要做反向轉換。
⚠️ 重要觀念: Excel 中的日期是「序列數字」(例如 2023/3/15 在 Excel 內部是 45000 之類的數字),千萬不能直接用 D2-1911,這樣會得到完全錯誤的結果!
正確的做法是先用 YEAR 函數取出「西元年」,再減去 1911。
① 只轉「民國年數」(例如:112)
如果你只要民國年(例如要做年資計算),用這個:
=YEAR(D2)-1911
結果:2023 → 112
② 轉成「3位數民國年」(例如:112)
如果要顯示成 3 位數(讓數字整整齊齊):
=TEXT(YEAR(D2)-1911,"000")
結果:112 → 112(3位數,前面不會有空格)
③ 直接轉成「民國年完整日期」(最實用)
西元年 2023/3/15 → 民國年 112/03/15
=TEXT(YEAR(D2)-1911,"000")&"/"&TEXT(D2,"mm/dd")
| 西元日期 | 民國日期 |
|---|---|
| 2023/3/15 | 112/03/15 |
| 2022/8/20 | 111/08/20 |
| 2024/1/10 | 113/01/10 |
④ 最簡單:Excel 內建民國格式(一行搞定)
Excel 其實有內建台灣的民國年格式,用這個最簡單、最專業:
=TEXT(D2,"[$-zh-TW]yy/mm/dd")
[$-zh-TW] 是告訴 Excel:「請用台灣地區的格式顯示」,它會自動把西元年轉成民國年。
✅ 為什麼這個方法最好?
- 最簡潔:不用拆年、月、日,不用組合
- 最準確:Excel 內建格式,自動處理閏年、月份天數
- 最台灣:專門為台灣使用者設計的格式代碼
📊 四種方法比較表
| 方法 | 公式 | 結果 | 適合時機 |
|---|---|---|---|
| ① | =YEAR(D2)-1911 |
112 | 只要年分做計算 |
| ② | =TEXT(YEAR(D2)-1911,"000") |
112 | 年分要固定3位數 |
| ③ | =TEXT(YEAR(D2)-1911,"000")&"/"&TEXT(D2,"mm/dd") |
112/03/15 | 要完整民國日期 |
| ④ 最推薦 | =TEXT(D2,"[$-zh-TW]yy/mm/dd") |
112/03/15 | 一行搞定,最簡單 |
下一篇預告:加班費計算公式
學會日期轉換後,下一篇要處理台灣上班族最關心的——加班費計算!
👉 「加班費計算公式|勞基法平日/休息日/例假日加班費怎麼算?」,敬請期待!
📚 延伸閱讀
- 👉 刪除重複資料只留一筆
- 👉 兩個表格比對怎麼做?
- 👉 絕對參照 vs 相對參照
💡 學 Excel 真的不難,來這裡,學就好。―― 小就
