楼主:
rfx6724 (水瓶喵-公的)
2021-07-03 15:01:20软件: OFFICE
版本: 2016
今天在帮忙处理一份 Excel表
其中要计算至 "今天(开启档案时)" 的年龄(足岁)
因为日期的字段格式是 "文字",所以不能够直接用
参考 PTT 及 GOOGLE 上的资料后,总算用下列公式弄出来
| | A栏 | B栏 |
| 1列 | 民国 | 年龄 |
| 2列 | '60/01/31 | 50 |
| 3列 | '60/12/31 | 49 |
| 4列 | '100/01/31 | 10 |
| 5列 | '100/12/31 | 9 |
公式
=DATEDIF(TEXT(DATE(LEFT(RIGHT("0"&SUBSTITUTE(A2,"/",""),7),3)+1911,
MID(RIGHT("0"&SUBSTITUTE(A2,"/",""),7),4,2),
RIGHT(RIGHT("0"&SUBSTITUTE(A2,"/",""),7),2)),"yyyy/mm/dd"),TODAY(),"Y")
里面用到 SUBSTITUTE 将原本文字格式里的 / 删除
因为民国日期有 6码 或 7码,利用 RIGHT 将其补到 7码
然后利用 DATE 及 LEFT+1911/MID/RIGHT 来转换成 西元年月日
接着利用 TEXT 转换为文字,这是为了给后面的 DATEDIF 用
最后使用 DATEDIF 并配合 TODAY(),"Y" 来转换为年龄(足岁)
也许有更好的方法,不过这是我目前唯一知道的方式
提供给有需要的人
作者: p1028 2021-07-03 16:14:00
分享我的用法,日期转西元年:DATEDIF(DATEVALUE("R"&A2),TODAY(),"Y")R+民国日期=西元日期