Excel 西元轉民國公式:把「西元2025年」轉成民國114年

Excel 西元轉民國時,如果手上的資料是「西元2025年」這種整段文字,關鍵不是減 1911,而是先用 MID 取出年份,再用 VALUE 轉成真正的數值,最後才減 1911 並串上「民國」與「年」。這篇用贊贊小屋的 Excel 實測逐步拆解,也說明為什麼直接用 YEAR 會得到 1905。

Excel 西元轉民國公式主視覺:「西元2025年」經 MID、VALUE、減 1911 轉成「民國114年」的流程圖

一、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 處理。

Excel 函數引數視窗:MID(A3,3,4) 從「西元2025年」取出西元年份 2025

二、MID 取出的 2025 為什麼不是數字?

B3 裡的 2025 不是數值,而是文字:MID 是文字函數,回傳的一律是文字,而 Excel 判斷資料型態的依據不是畫面上的樣子。贊贊小屋另外準備了「文字類型」欄,選取 C3 時,編輯列顯示的是 '2025,開頭多了一個單引號,儲存格左上角同時出現綠色小三角形;把滑鼠移到旁邊的警告圖示上,Excel 提示「此儲存格內的數字其格式為文字或開頭為單引號。」這就是 Excel 對「看起來是數字、實際上是文字」的資料所做的標示。

真正要判斷 MID 的結果,就用 ISNUMBER 函數。贊贊小屋在下方的測試欄輸入 =ISNUMBER(B3),結果是 FALSE。ISNUMBER 會檢查儲存格內容是不是真正的數值,回傳 FALSE,代表 B3 裡的 2025 在 Excel 眼中不是數值。

換句話說,不論 MID 從哪段文字擷取出什麼內容,回傳的都是文字;即使擷取出來的字元全部都是數字,結果仍然是文字。所以這一步得到的是「長得像 2025 的文字」,不是可以直接拿來計算的 2025。

這不表示文字型的數字在 Excel 裡完全不能運算。不同的函數與運算子,對文字型數字的處理方式並不相同。

Excel 文字型數字提示與 =ISNUMBER(B3) 結果 FALSE

三、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,再決定要拿它做什麼運算,而不是硬用日期函數去理解「年份」。

Excel 中 =YEAR(B3) 得到 1905,序號 0 得到 1900 的實測畫面

四、用 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 驗證。

Excel 以 =VALUE(B3) 轉成數值後,SUM 加總 4051、=ISNUMBER(C3) 為 TRUE

五、西元年份減 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。前面幾節之所以把每一步拆開,就是要讓讀者理解這條合併公式為什麼成立。

Excel 以 =C2-1911 把 2026、2025 換算成民國 115、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 以 & 與 CONCATENATE 組出「民國115年」「民國114年」的畫面

七、用 Excel 大綱群組收起輔助欄位

為了教學,前面把整個轉換拆成 MID、VALUE、減 1911、串接好幾欄。實際工作時,並不需要每次都看著全部的中間欄位。贊贊小屋把最後的完整公式放在 E 欄的「民國年份」,中間的「VALUE函數」與「西元轉民國」兩欄就可以收起來。

操作是先選取要收起的兩欄,切換到「資料」索引標籤,點右側的「大綱」,再選「組成群組」。同一個選單裡還有「取消群組」、「小計」、「顯示詳細資料」與「隱藏詳細資料」,這裡用到的是「組成群組」。

完成後,工作表上方會出現群組列,欄位標題從 A、B 直接跳到 E,中間兩欄暫時消失,只剩「原始資料」「西元年份」與「民國年份」三欄。群組列上出現一個「+」按鈕,按一下可以重新展開被收起的欄位;左上角的「1」「2」則是大綱層級按鈕。

大綱群組只是把欄位收起來,並沒有刪除它們。贊贊小屋選取 E3 時,編輯列仍然顯示完整的 =CONCATENATE("民國",VALUE(MID(A3,3,4))-1911,"年"),D 欄、C 欄的資料也依然存在。這個功能的目的只是讓工作表在完成計算之後更容易閱讀,不會改變任何一個儲存格的公式或結果。

Excel「資料」索引標籤的「大綱」選單與「組成群組」 Excel 群組收合後只顯示原始資料、西元年份與民國年份,並出現「+」按鈕

Excel 西元轉民國的關鍵:先看懂資料型態,公式反而最簡單

表面上,這篇文章只是在做一件事:2025 減 1911 等於 114。但真正花最多篇幅處理的並不是這個減法,而是先判斷 2025 到底是文字、數值,還是日期序號。當資料型態確認正確後,後面的公式反而相當單純。

這也解釋了為什麼直接使用 YEAR 會得到 1905。不是 Excel 不會算,而是使用者和 Excel 對同一個 2025 的理解不同:人看到的是「西元2025年」,Excel 函數看到的,則取決於資料型態與函數本身的規則。

把整個流程拆開來看,就是 MID 擷取、ISNUMBER 確認型態、VALUE 轉成數值、減 1911,最後再串上「民國」與「年」。一步一步拆開理解之後,最後那條完整公式反而不難。

Excel 裡很多看起來像公式寫錯的問題,源頭其實是資料型態。先弄清楚資料真正是什麼,再決定用哪一個函數,往往比一直換公式重試更有效率。

Excel 西元轉民國的關鍵:文字、數值、日期序號三種資料型態與處理重點整理卡
發布日期:
分類:Excel函數教學、Excel教學