提取excel中的年月日

发布于:2025-07-30 ⋅ 阅读:(18) ⋅ 点赞:(0)

在Excel中提取出生日期,可以通过公式将年龄描述转换为时间差,再用当前日期减去时间差。以下是分步解决方案:

步骤1:准备辅助列(提取年、月、日)

假设年龄数据在A列(A2开始),在B、C、D列分别提取年/月/日:

公式
B2(年) =IFERROR(IF(FIND("岁",A2),--LEFT(A2,FIND("岁",A2)-1),0),0)
C2(月) =IFERROR(IF(FIND("个月",A2),--MID(A2,IFERROR(FIND("岁",A2)+1,1),FIND("个月",A2)-IFERROR(FIND("岁",A2)+1,1)),0),0)
D2(日) =IFERROR(IF(FIND("天",A2),--MID(A2,FIND("天",A2)-2,2),0),0)

步骤2:计算出生日期(E列)

E2公式

=DATE(YEAR(TODAY())-B2, MONTH(TODAY())-C2, DAY(TODAY())-D2)

步骤3:格式化结果

将E列设置为日期格式(右键单元格 → 设置单元格格式 → 日期 → YYYY-MM-DD)

示例效果(假设当前日期:2025-07-28)

A列(原始数据) B列(年) C列(月) D列(日) E列(出生日期)
10岁1个月 10 1 0 2015-06-28
10个月 0 10 0 2024-09-28
54岁 54 0 0 1971-07-28
2岁2个月14天 2 2 14 2023-05-14

公式说明:

  1. 提取原理

    • FIND("岁",A2) 定位"岁"的位置
    • --LEFT() 将文本数字转为数值
    • IFERROR 处理不存在该单位的情况(如纯月份描述)
    • MID() 截取中间数字(处理年月/月日混合情况)
  2. 日期计算

    • DATE(Y,M,D) 自动处理跨年/跨月(如7月-10个月=去年9月)
    • TODAY() 动态获取当前日期(可替换为固定日期如DATE(2025,7,28)

⚠️ 注意:若遇"月"单独出现(非"个月"),需先用查找替换将"月"改为"个月"(Ctrl+H替换"月"→"个月")

进阶优化(单公式完成):

若需单单元格计算,使用此数组公式(Ctrl+Shift+Enter输入):

=DATE(YEAR(TODAY())-IFERROR(–LEFT(A2,FIND(“岁”,A2)-1),0),
MONTH(TODAY())-IFERROR(–MID(A2,IFERROR(FIND(“岁”,A2)+1,1),FIND(“个月”,A2)-IFERROR(FIND(“岁”,A2)+1,1)),0),
DAY(TODAY())-IFERROR(–MID(A2,MAX(1,FIND(“天”,A2)-2),2),0))

此方案自动兼容:10岁5个月15天3岁2个月1岁10天等组合格式。


网站公告

今日签到

点亮在社区的每一天
去签到