Google 試算表將民國轉西元日期

Google 試算表與 Microsoft Excel 同樣可以透過 MID、FIND 函數解析民國日期並轉換成西元日期。以下說明透過 Google 試算表特有的 REGEXEXTRACT 函數快速將民國轉西元日期,而不需要透過 MID、FIND 函數精準計算年月日在儲存格的位置。


解決方式

輸入的資料可能是「109/1/23」、「109.1.2」、「民國109年3月14日」、「中華民國109年10月10日」。儘管中間有不同分隔符號或者夾雜一個中文字,共通規則是「數字年」+「一個字」+「數字月」+「一個字」+「數字日」。寫成正規表示式 (Regular Expression)的語法規則:
(\d+).(\d+).(\d+)

正規表示式是「使用單個字串來描述、匹配一系列符合某個句法規則的字串。」(資料來源:维基百科)上面那一串的語法
  • \d 代表是一位數字。因為年月日可能不只一位數字,所以寫成 \d+
  • (\d+) 加上括號代表要從輸入文字中,擷取出符合括號內條件的文字。與 \d+ 結合代表要擷取出多位數字
  • . 點符號則代表任意一個字元,所以可能是分隔符號或者是一個中文字
  • (\d+).(\d+).(\d+) 代表擷取出三個數字,而數字之間間隔任意一個字元

步驟1:儲存格輸入 REGEXEXTRACT 函數

下圖 B2 儲存格內容
=REGEXEXTRACT(A2, "(\d+).(\d+).(\d+)")



使用 REGEXEXTRACT 函數擷取的年、月、日,會分別儲存到 B2、C2、D2 儲存格

步驟2:將民國年、月、日,使用 DATE 函數組合成西元日期

E2 儲存格內容
=DATE(B2+1911, C2, D2)
民國年加上 1911 轉成西元年,再透過 DATE 函數組合成西元日期。



步驟3:如果想要月跟日,不足二位數時前面自動補零

請點選選單的 Format --> More Formats --> More data and time formats


選擇月跟日,不足二位數時前面自動補零的時間格式,確定後再按 Apply 按鈕,套用格式到儲存格。



如果想直接動手作,可以前往線上試算表直接編輯。


參考資料





留言