Google Sheets中DATEVALUE公式返回错误日期的技术咨询
解决DATEVALUE解析带"Mmm YY"格式日期的错误
问题本质
DATEVALUE函数的作用是将文本格式的日期字符串解析为日期序列号,它读取的是单元格的显示文本,而非底层存储的实际日期值。当单元格设置为"Mmm YY"格式时,显示文本是类似"Feb 23"的形式,DATEVALUE会把它识别为「2月23日」,并自动补充当前年份,因此出现返回2/23/2024的错误。
而YEAR、MONTH、DAY函数是直接读取单元格底层的日期序列号(比如你示例中的44985),不受显示格式影响,所以能返回正确的年、月、日信息。
解决方案
1. 直接引用单元格(最优方案)
如果目标单元格本身就是日期格式(存储的是日期序列号),完全不需要使用DATEVALUE,直接引用单元格即可:
=A1
结合你的INDEX-MATCH场景:
=INDEX(日期区域,MATCH(查找值,查找区域,0))
直接返回的就是正确的日期值,后续可按需设置显示格式。
2. 转换为标准日期文本后再解析
如果必须使用DATEVALUE(比如处理的是文本型日期),先通过TEXT函数将底层日期值转换为标准的"mm/dd/yyyy"格式文本,再用DATEVALUE解析:
=DATEVALUE(TEXT(A1,"mm/dd/yyyy"))
针对你的示例,TEXT(A1,"mm/dd/yyyy")会生成"02/28/2023",DATEVALUE就能正确解析为原日期。
3. 用DATE函数组合年、月、日
利用YEAR、MONTH、DAY能正确取值的特性,直接组合成日期:
=DATE(YEAR(A1),MONTH(A1),DAY(A1))
这个公式会直接读取A1的年、月、日信息,重新生成正确的日期值,不受显示格式干扰。
内容的提问来源于stack exchange,提问作者Ameera Cheeks
相关产品推荐
相关产品推荐

