Excel的底层设计之美-日期和逻辑值系统

Excel海量的数据记录,简单的单元格式的记录方式使其广泛地应用于各行各业。而高效精确的数据计算又把大众对数据的处理运用提升到新的高度。

Excel数据计算中有两个设计可以用精妙绝伦来形容,一个是1900日期系统,另一个是逻辑值。

1900日期系统

试想,产品的生产日期2025年10月9日,保质期180天,哪天到期呢?

反正我是按照6个月大概推算到2026年4月9日。如果要精确计算,放到Excel中就很简单:

=B2+180

Excel能做到快速计算的秘诀就在于其内置的1900日期系统,它把1900年1月1日作为日期的起点,并将其对应数字1,依次类推1900年1月2日就是2……2025年10月9日就是数字45939,你可以在单元格中输入这个数字再把格式设置为日期,或输入日期再设置为数字来实现日期和数字之间的转换。

时间也是相同的道理,输入数字1把格式设置为"时间"得到"00:00:00"对应一整天,0.5则对应"12:00:00"对应半天。

45939.5转换成日期+时间格式"2025/10/9 12:00:00",反过来,要从这样一个日期+时间中提取出日期信息,等同于从45939.5中提取整数,对45939.5或者"2025/10/9 12:00:00"INT函数取整都能实现:

=INT(45939.5)
=INT(A2)

所以Excel日期系统的精髓在于把日期和时间对应为数字,才能进行加减运算,以及日期时间相关的函数也是建立在这个基础上。

逻辑值

Excel逻辑值TRUE用于表示成立,FALSE表示不成立,其精妙之处也在于数字的转换。加减乘除这些数学运算只能运用于数字,文本参与进去返回个报错也就说得过去了:

=GOOD+1

但TRUE和FALSE例外:

=TRUE+1

<图片>

=FALSE+1

从计算结果反推:

TRUE=1
FASLE=0

这就是逻辑值与数字的关系。

换个方式来理解,TRUE和FASLE并不是单纯的文本,而是数字1和0的外壳,当它们参与数学运算(加,减,乘,除,幂)的时候才会露出真面目。

比如要把60以下的数字转换为0来显示,>=比较运算不成立时返回FALSE,FASLE参与乘法运算时等于0,0乘以任何数都为0:

=(A1>=60)*A1

对于想要进一步提高Excel水平的用户来说,这是两个必备知识点。