Excel提取指定格式日期报错求助:从Wed Aug 04 00:00:00 WIB 2021转04-Aug-21
Excel日期文本转换:Wed Aug 04 00:00:00 WIB 2021 → 04-Aug-21
你的DATE组合公式出错,核心原因是Excel系统区域与英文月份缩写不兼容——如果当前Excel的区域设置非英文,MONTH(1 & Aug)无法识别为有效日期,导致公式报错。以下是几种可靠的解决方法:
方法1:用DATEVALUE+TEXT快速转换
先拼接提取的日、月、年为标准日期文本,再转成日期值后格式化:
=TEXT(DATEVALUE(MID(A1,9,2)&" "&MID(A1,5,3)&" "&RIGHT(A1,4)),"dd-mmm-yy")
逻辑:把04、Aug、2021拼接成04 Aug 2021,通过DATEVALUE转为Excel可识别的日期序列号,最后用TEXT函数输出04-Aug-21格式。
方法2:手动映射月份(适配所有区域)
如果DATEVALUE仍失效,用MATCH函数将英文月缩写映射为数字,再生成日期:
=TEXT(DATE(RIGHT(A1,4),MATCH(MID(A1,5,3),{"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"},0),MID(A1,9,2)),"dd-mmm-yy")
逻辑:通过MATCH把Aug匹配为数字8,传入DATE函数生成日期,再用TEXT格式化。
方法3:直接文本拼接(最简便)
不需要任何日期函数,直接提取对应部分拼接:
=MID(A1,9,2)&"-"&MID(A1,5,3)&"-"&RIGHT(A1,2)
逻辑:直接提取日(04)、月缩写(Aug)、年份后两位(21),用-连接成目标格式,完全避开日期函数的区域限制。
内容的提问来源于stack exchange,提问作者Toya Tanaj
相关产品推荐
相关产品推荐

