員工資料表需錄入姓名、性別、身分證字號、出生日期,逐筆手輸太耗時。其實出生日期編碼在身分證字號中,善用 Excel 「分欄」功能 配合 LEN() 區分 15/18 碼,幾秒鐘即可批次萃取,準確又高效。
前置處理:依字號長度分組
- 假設身分證字號在 A 欄,D1 輸入
=LEN(A1) 向下填滿,取得各列字數。
- 依 D 欄排序,將 15 碼與 18 碼分列上下區塊,分別處理。
18 碼身分證字號提取步驟(範例:A2:A100)
第一次分欄:切掉前 6 碼(地址碼)
- 選取 18 碼區塊 → 資料 → 分欄。
- 步驟 1:選 固定寬度 → 下一步。
- 步驟 2:在第 6 個字元後點一下,出現分欄線 → 下一步。
- 步驟 3:左右兩欄都設為 文字 格式 → 完成。
結果:A 欄留前 6 碼,B 欄存後 12 碼(含出生日期 + 顺序碼 + 校驗碼)。
第二次分欄:從 B 欄萃取出生日期(第 7-14 碼,共 8 碼)
- 選取 B 欄 12 碼資料 → 資料 → 分欄 → 固定寬度。
- 步驟 2:在第 8 個字元後設分欄線(即切出前 8 碼 = 出生日期 YYYYMMDD)。
- 步驟 3:左欄設為 日期 (YMD),右欄設為文字 → 完成。
結果:B 欄直接顯示 日期格式的出生日期,可直接套用格式顯示為 2024/01/01。
15 碼身分證字號提取(舊版,出生年僅 2 碼)
流程相同,差別在 第二次分欄時,分欄線置於第 6 個字元後(前 6 碼 = YYMMDD),步驟 3 左欄同設為日期格式(Excel 會自動補齊 19/20 世紀,必要時手動調整)。
進階技巧:單一公式法(免分欄,適用動態資料)
若資料持續新增,不想重複分欄,可用公式直接萃取:
=IF(LEN(A2)=18, TEXT(MID(A2,7,8),"0000\/00\/00"), TEXT(MID(A2,7,6),"00\/00\/00"))
- 18 碼:
MID(A2,7,8) 取第 7-14 碼 → TEXT 格式化為日期。
- 15 碼:
MID(A2,7,6) 取第 7-12 碼 → 格式化。
- 結果為文字型日期,需再用
DATEVALUE 或 -- 轉為真正日期值。
常見陷阱與避坑指南
- 前導零遺失:分欄前務必將欄位設為「文字」,否則身分證字號前導零會被 Excel 吞掉導致位移。
- 日期制轉換:15 碼年代判斷規則(通常 00-99 對應 1900-1999 或 2000-2099),視公司規定用
IF(MID(...)>="20", "20", "19") 處理。
- 非標準字號:外僑居留證、統一編號等格式不同,需另行處理,勿混入同欄。
結語
Excel 分欄功能配合固定寬度切割,是零程式碼、零外掛、全版本通用的身分證字號生日萃取神技。搭配 LEN() 分組與公式法備選,滿足靜態批次與動態即時雙重需求,讓人資資料建檔效率倍增。