Excel 西元轉民國時,如果手上的資料是「西元2025年」這種整段文字,關鍵不是減 1911,而是先用 MID 取出年份,再用 VALUE 轉成真正的數值,最後才減 1911 並串上「民國」與「年」。這篇用贊贊小屋的 Excel 實測逐步拆解,也說明為什麼直接用 YEAR 會得到 1905。
一、Excel 西元轉民國:先用 MID 取出西元年份
這篇處理的不是正常的日期儲存格(那類資料的做法可以參考 Excel日期格式),而是儲存格裡寫著「西元2026年」「西元2025年」的文字資料。贊贊小屋在 A 欄的「原始資料」放進這兩筆,希望最後能得到「民國115年」與「民國114年」。因為整段內容是文字,第一步先用 MID 把中間的四位數年份取出來。
贊贊小屋在 B 欄「西元年份」的 B3 輸入 =MID(A3,3,4),並點編輯列旁的「fx」開啟「函數引數」視窗確認。視窗裡的 MID 有三個引數:「Text」填 A3,也就是「西元2025年」;「Start_num」填 3;「Num_chars」填 4。視窗右下方的計算結果是 2025,B2 的 2026 也用同樣的方式取得。
「Start_num」是 3,是因為「西」和「元」各占一個字元,年份的第一個數字剛好是整段文字的第 3 個字元;「Num_chars」是 4,是因為西元年份有四位數,從第 3 個字元開始連續取 4 個字元,就是 2025。這個做法的前提是年份固定為四位數,這裡的範例都符合這個條件。
要留意的是,到這一步只是從文字裡把「2025」取了出來。B 欄看起來已經是年份,但 Excel 是不是真的把它當成數值,還需要下一節再確認,所以這一節先不要急著用 VALUE 處理。
二、MID 取出的 2025 為什麼不是數字?
B3 裡的 2025 不是數值,而是文字:MID 是文字函數,回傳的一律是文字,而 Excel 判斷資料型態的依據不是畫面上的樣子。贊贊小屋另外準備了「文字類型」欄,選取 C3 時,編輯列顯示的是 '2025,開頭多了一個單引號,儲存格左上角同時出現綠色小三角形;把滑鼠移到旁邊的警告圖示上,Excel 提示「此儲存格內的數字其格式為文字或開頭為單引號。」這就是 Excel 對「看起來是數字、實際上是文字」的資料所做的標示。
真正要判斷 MID 的結果,就用 ISNUMBER 函數。贊贊小屋在下方的測試欄輸入 =ISNUMBER(B3),結果是 FALSE。ISNUMBER 會檢查儲存格內容是不是真正的數值,回傳 FALSE,代表 B3 裡的 2025 在 Excel 眼中不是數值。
換句話說,不論 MID 從哪段文字擷取出什麼內容,回傳的都是文字;即使擷取出來的字元全部都是數字,結果仍然是文字。所以這一步得到的是「長得像 2025 的文字」,不是可以直接拿來計算的 2025。
這不表示文字型的數字在 Excel 裡完全不能運算。不同的函數與運算子,對文字型數字的處理方式並不相同。
三、YEAR 函數為什麼變成 1905?問題在 Excel 日期序號
YEAR 函數得到 1905,是因為它把 2025 當成 Excel 的日期序號來處理,而不是「西元2025年」。看到 B 欄有 2025,直覺上可能會想用 YEAR 函數取年份,所以贊贊小屋在「YEAR函數」欄輸入 =YEAR(B3)。輸入時,Excel 提示的引數名稱是 serial_number,也就是「日期序號」;B3 的內容 "2025" 也顯示在提示裡。
按下 Enter 後,2026 那一列得到的不是預期中的 2026,而是 1905。贊贊小屋另外在下方用 0 測試,YEAR 的結果是 1900。結果與預期差距這麼大,並不是 YEAR 函數壞掉,而是函數的用途與這筆資料的意思對不上。
YEAR 函數處理的是 Excel 的日期序號,它會先把引數當成一個日期序號,再回傳這個日期所在的年份。在 Excel 預設的 1900 日期系統裡,序號 1 代表 1900 年 1 月 1 日,序號每加 1 就往後一天。用 0 測試得到 1900,這裡只把它當成 Excel 的實際回傳結果,不再延伸解釋序號 0 對應的具體日期。依此往後推算,序號 2025 落在 1905 年 7 月 17 日,序號 2026 落在 1905 年 7 月 18 日,YEAR 回傳的正是 1905。文字如何轉成日期序號,可以參考 Excel 8位數字轉日期。
換句話說,「西元2025年」是人讀文字時得到的意思,Excel 的 YEAR 函數看到 2025,只把它當成「第 2025 天」。在這個情境裡,關鍵不是再換另一個日期函數,而是先確認 2025 的資料型態與用途:先有真正的數值 2025,再決定要拿它做什麼運算,而不是硬用日期函數去理解「年份」。
四、用 VALUE 把文字年份轉成真正的數值
既然問題出在 MID 的結果是文字,接下來就要把文字轉成真正的數值。贊贊小屋在 C 欄的「VALUE函數」欄輸入 =VALUE(B3),VALUE 函數會把 Excel 能辨識為數字的文字轉成數值。C3 顯示的仍然是 2025,看起來與 B3 沒有差別,但資料型態已經不同了。
驗證的方式有兩個。第一個是 SUM 加總:贊贊小屋在下方的「SUM加總」列,對 B 欄的 2026 與 2025 加總,結果是 0;對 C 欄的 2026 與 2025 加總,結果是 4051,也就是 2026 加 2025 的正確合計。B 欄的 SUM 是 0,是因為 SUM 對儲存格範圍中的文字型數字不會當成數值加總,同樣的情況也出現在 Excel 開頭 0 顯示時以單引號保留前導 0 的發票號碼上。
第二個是再用一次 ISNUMBER。贊贊小屋輸入 =ISNUMBER(C3),這次的結果是 TRUE,代表 C3 的 2025 已經是真正的數值。
這裡有一個容易混淆的觀念:改變儲存格的顯示格式,和改變底層資料型態是兩件不同的事。把儲存格設定成不同的數字格式,只會改變資料「怎麼顯示」,並不會讓原本是文字的內容變成數值;這個流程明確執行「文字轉數值」這一步,用的是 VALUE 函數。Excel 在部分運算裡也會自動把看起來像數字的文字轉成數值,但這裡想確實知道資料型態已經改變,所以明確使用 VALUE,並用 SUM 與 ISNUMBER 驗證。
五、西元年份減 1911,換算成民國年份
C 欄已經是真正的數值後,才適合進入西元轉民國的換算。贊贊小屋在 D 欄的「民國年份」,於 D2 輸入 =C2-1911,得到 115;D3 用同樣的公式,得到 114。西元 2026 年是民國 115 年,西元 2025 年是民國 114 年。
換算關係是「民國年=西元年-1911」。民國元年是西元 1912 年,也就是 1912 減 1911 等於 1。這裡處理的是一般現代年份;1911 年以前屬於「民國前」的表示方式,0 或負數不能直接當成一般民國年份。
在同一個工作表下方,贊贊小屋另外寫了「合併公式」:=VALUE(MID(A3,3,4))-1911。它把前面 MID 擷取、VALUE 轉數值、減 1911 三個步驟合成一條公式,直接從 A3 的「西元2025年」得到 114。前面幾節之所以把每一步拆開,就是要讓讀者理解這條合併公式為什麼成立。
六、合併公式,把結果顯示成「民國115年」
到目前為止得到的是 115、114 這樣的數字,若要在報表或表單上顯示成「民國115年」,還需要把「民國」和「年」接在數字前後。最直接的寫法,是在 D2 使用 ="民國"&C2-1911&"年",D2 顯示 民國115年,D3 顯示 民國114年。& 是把文字與數值串在一起的運算子;Excel 會先算 C2-1911,再把「民國」、算出來的數字與「年」接在一起。
另一種寫法是 CONCATENATE 函數。贊贊小屋把前面所有步驟合併成一條完整公式:=CONCATENATE("民國",VALUE(MID(A3,3,4))-1911,"年")。從 A3 的「西元2025年」開始,由 MID 擷取年份、VALUE 轉成數值、減 1911,再把「民國」與「年」串接,最後直接顯示 民國114年。
& 與 CONCATENATE 都可以完成文字串接,這裡只是同一件事的兩種寫法,讀者可以用習慣的方式。
這條完整公式看起來比較長,但只要理解前面每一步,其實只是把 MID、VALUE、減 1911、串接四個動作照順序放進同一個儲存格。若一開始就直接看這條公式,很容易覺得複雜;先看過拆開後的每一個中間結果,就能知道哪一個環節出問題時,該回頭檢查哪一欄。
七、用 Excel 大綱群組收起輔助欄位
為了教學,前面把整個轉換拆成 MID、VALUE、減 1911、串接好幾欄。實際工作時,並不需要每次都看著全部的中間欄位。贊贊小屋把最後的完整公式放在 E 欄的「民國年份」,中間的「VALUE函數」與「西元轉民國」兩欄就可以收起來。
操作是先選取要收起的兩欄,切換到「資料」索引標籤,點右側的「大綱」,再選「組成群組」。同一個選單裡還有「取消群組」、「小計」、「顯示詳細資料」與「隱藏詳細資料」,這裡用到的是「組成群組」。
完成後,工作表上方會出現群組列,欄位標題從 A、B 直接跳到 E,中間兩欄暫時消失,只剩「原始資料」「西元年份」與「民國年份」三欄。群組列上出現一個「+」按鈕,按一下可以重新展開被收起的欄位;左上角的「1」「2」則是大綱層級按鈕。
大綱群組只是把欄位收起來,並沒有刪除它們。贊贊小屋選取 E3 時,編輯列仍然顯示完整的 =CONCATENATE("民國",VALUE(MID(A3,3,4))-1911,"年"),D 欄、C 欄的資料也依然存在。這個功能的目的只是讓工作表在完成計算之後更容易閱讀,不會改變任何一個儲存格的公式或結果。
Excel 西元轉民國的關鍵:先看懂資料型態,公式反而最簡單
表面上,這篇文章只是在做一件事:2025 減 1911 等於 114。但真正花最多篇幅處理的並不是這個減法,而是先判斷 2025 到底是文字、數值,還是日期序號。當資料型態確認正確後,後面的公式反而相當單純。
這也解釋了為什麼直接使用 YEAR 會得到 1905。不是 Excel 不會算,而是使用者和 Excel 對同一個 2025 的理解不同:人看到的是「西元2025年」,Excel 函數看到的,則取決於資料型態與函數本身的規則。
把整個流程拆開來看,就是 MID 擷取、ISNUMBER 確認型態、VALUE 轉成數值、減 1911,最後再串上「民國」與「年」。一步一步拆開理解之後,最後那條完整公式反而不難。
Excel 裡很多看起來像公式寫錯的問題,源頭其實是資料型態。先弄清楚資料真正是什麼,再決定用哪一個函數,往往比一直換公式重試更有效率。

