如何从Excel中mmm-YY格式的日期文本正确获取DATEVALUE值
错误原因
Excel解析May-20这类短文本时,默认优先匹配「月-日」格式规则,会把末尾两位数字识别为日期,年份自动取当前系统年份,因此才会返回错误的2021/5/20结果。你设置的单元格格式仅作用于日期值的展示效果,不会改变文本转日期的底层解析逻辑,所以无法解决识别错误的问题。
解决方法
- 方法1(可修改表头内容时使用):直接给所有表头文本后缀拼接
-01,比如将May-20修改为May-20-01,Excel会自动识别为2020年5月1日,再把单元格格式设置回mmm-YY,视觉上和原来的表头完全一致,不影响现有排版。 - 方法2(不能修改原表头时使用):用公式直接转换得到目标日期值,不用改动原有表头内容:
系统区域为英文时直接用:=DATEVALUE("1-"&[表头单元格位置])
比如表头在A1就写=DATEVALUE("1-"&A1),公式会给原文本拼接1-前缀,变成1-May-20格式,Excel就能正确识别为对应月份的1号。
如果系统是中文区域无法识别英文月份缩写,用兼容公式:=DATE(RIGHT([表头单元格位置],2)+2000,MONTH(LEFT([表头单元格位置],3)&"1"),1)
该公式直接拆分文本里的月份缩写和年份后缀,手动拼接生成日期,不受系统语言设置影响。
内容的提问来源于stack exchange,提问作者Gary Z
相关产品推荐
相关产品推荐

