Excel提取字符串日期后无法转日期格式的解决方法
解决Excel提取日期后无法转换为日期格式的问题
方法1:用DATEVALUE直接转换文本日期
你的公式已能正确提取日期文本,只需在外层嵌套DATEVALUE函数将文本转为日期格式,同时保留错误处理:
=IFERROR(DATEVALUE(TRIM(MID(" "&A1,FIND("/"," "&A1,1)-2,8))),"")
输入公式后,选中C列,设置单元格格式为「短日期」或你需要的日期样式即可。
方法2:拆分日期组件强制转换(适配区域格式差异)
如果方法1出现#VALUE!,大概率是系统日期格式和提取的日期格式不匹配(比如系统用DD/MM/YYYY,但提取的是MM/DD/YYYY)。可以用DATE函数拆分年、月、日强制构建日期:
=IFERROR( DATE( RIGHT(TRIM(MID(" "&A1,FIND("/"," "&A1,1)-2,8)),4), LEFT(TRIM(MID(" "&A1,FIND("/"," "&A1,1)-2,8)),2), MID(TRIM(MID(" "&A1,FIND("/"," "&A1,1)-2,8)),4,2) ), "" )
- 上述公式假设提取的日期是
MM/DD/YYYY格式,若你的日期是DD/MM/YYYY,调换LEFT和MID的位置即可:把LEFT(...,2)和MID(...,4,2)交换参数。
方法3:用文本转数值快速转换
也可以用--运算符将格式化后的文本日期转为数值(Excel日期本质是数值),结合TEXT函数指定格式:
=IFERROR(--TEXT(TRIM(MID(" "&A1,FIND("/"," "&A1,1)-2,8)),"mm/dd/yyyy"),"")
同样,根据实际日期格式调整TEXT里的格式字符串(比如"dd/mm/yyyy")。
计算天数差
C列转为日期格式后,D列直接用截止日期减去提取的日期即可:
=B1-C1
设置D列为「常规」格式就能显示天数差。
内容的提问来源于stack exchange,提问作者peter
相关产品推荐
相关产品推荐

