value能将日期2004-1-1转换为数值吗,计算过程怎样来的
浅谈出口账务和excel函数 在 Excel 中,VALUE 函数能把文本形式的日期转换成数值,但具体结果取决于单元格格式和系统日期系统。
=VALUE("2004-1-1") 返回 37987(Windows 默认 1900 日期系统)
· 第 1 天 = 1900 年 1 月 1 日(序列号 1)
所以 2004-1-1 的序列号就是:从 1900-1-1 到 2004-1-1 一共经过了多少天。
1900~2003 整年 104 年 104×365 = 37960
加上闰年多出的天数 1904,1908,…,2000 共 25 个闰年 +25
2004 年 1 月 1 日 当年第 1 天 +1
减去起始日重复 1900-1-1 本身算第 1 天 −1(已在闰年逻辑外调整)
37960 + 25 + 1 - 1 = 37985
注:Excel 有个著名的 1900 闰年 bug——它误把 1900 年当成闰年,多算了 1 天,所以最终结果是 37987(比真实天数多 1)。
37987 = 37960(104年)+ 25(闰年)+ 1(1月1日)+ 1(1900 bug)
1. VALUE 只对"文本"生效:如果 2004-1-1 已经是日期格式,VALUE 会直接返回其序列号;如果是文本,先解析再转数值。
· Windows 默认 1900 日期系统 → 37987
· Mac 旧版 1904 日期系统 → 比 1900 系统小 1462,即 36525
3. 显示为日期还是数字:VALUE 返回的是数值,但若单元格格式是日期,会显示成 2004-1-1,需把格式改成"常规"才能看到 37987。
VALUE 把日期转数值,就是算出该日期距离 1900-1-1 的天数(含 1900 闰年 bug 的 +1),2004-1-1 对应 37987。