如何用最短Excel公式将文本日期转为标准格式,解决函数失效问题
针对你遇到的"17 Jan,2023"这类文本日期无法用常规日期函数处理的问题,以下是几种更简洁的实现方法:
方法1:直接使用DATEVALUE(推荐,系统区域支持英文月份时)
公式:=DATEVALUE(A1)
说明:Excel的DATEVALUE函数可直接识别该格式的文本日期,转换为标准日期序列号,后续只需将单元格格式设置为所需日期样式即可。方法2:移除逗号后用DATEVALUE(兼容更多场景)
公式:=DATEVALUE(SUBSTITUTE(A1,",",""))
说明:若系统区域对带逗号的格式识别异常,先用SUBSTITUTE去除逗号,将文本转为"17 Jan 2023"格式后,DATEVALUE即可正常识别转换。方法3:精简拆分提取法(兼容旧版Excel)
公式:=DATE(RIGHT(A1,4),MATCH(MID(A1,FIND(" ",A1)+1,3),{"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"},0),LEFT(A1,FIND(" ",A1)-1))
说明:对比你原有的公式,去掉了冗余的-1+1运算和DAY()函数(直接提取的数字可被DATE函数识别),大幅缩短公式长度的同时保留了兼容性。方法4:Excel 365专属简化写法
利用动态数组函数TEXTSPLIT拆分文本,结合LET函数让公式更简洁易读:=LET(split_result,TEXTSPLIT(A1,{" ",","}),DATE(split_result[3],MATCH(split_result[2],{"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"},0),split_result[1]))
说明:TEXTSPLIT按空格和逗号拆分文本后,直接提取年、月、日对应片段进行转换,逻辑更清晰。
内容的提问来源于stack exchange,提问作者Abdul Hanan

