Ian需要在第一列中输入学生的年龄,格式为9.11九年零十一个月,在下一列中输入阅读年龄(例如,十年零六个月为10.6),然后计算第三列中的“月”,在这种情况下为7。始终需要以月为单位显示差异,因此应显示为14个月而不是1.2或24个月而不是2.0的差距。

伊恩(Ian)不知道如何组合这样的公式。

诀窍是简单地转换为一组通用单位(在这种情况下为几个月)。因此,例如10.6将为12 * 10 + 6,即126个月。如果您同时进行按时间顺序和阅读年龄的转换,那么您可以进行数以千计的减法以确定差值。

但是,这里有一个很大的警告:在工作表中输入非标准日期的方式将对如何处理该数据有很大的影响。通过考虑日期值(例如10.10)(代表年龄为10年零10个月)可以最好地说明该问题。如果直接将此值输入到单元格中,Excel会将其解析为数字值并自动将其更改为10.1,因为结尾的0(对于Excel)是微不足道的。不幸的是,这个值与10.1是无法区分的,即10年零一个月。

有两种可能的解决方案。如果要输入数值,则应确保在月份中始终输入前导0。

因此,您将输入10.01或10.06,而不是10.1或10.6。

但是,在伊恩(Ian)的问题陈述中,他特别使用了10.6作为示例,这意味着未输入前导零。在这种情况下,必须确保Excel将输入的内容解析为文本。换句话说,请确保您将开始输入日期的日期输入列的格式设置为_before_文本。这样,Excel将显示10.10并带有零。

用于进行计算的所有解决方案都假定您输入的日期以前导零开头代表几个月,或者您以文本值形式输入日期。在所有情况下,我们假定年代年龄在A列中,而阅读年龄在B列中。如果日期格式设置为文本,则可以在C列中使用以下公式:

=INT(B1)12+MID(B1,FIND(".",B1)+1,2)-(INT(A1)12+MID(A1,FIND(".",A1)+1,2))

如果阅读年龄大于时间年龄,则返回正值;如果阅读年龄小于时间年龄,则返回负值。如果将日期输入为数值,则不能使用该公式,因为如果将年龄输入为10.00(表示10年零0个月),Excel仍会将其解析为10。然后,该公式将返回#VALUE!错误,因为FIND函数无法找到不存在的小数点。

如果您使用的是数字格式的日期(同样,前导零为几个月),则可以依赖以下两个公式之一:

关键是要保持日期值的格式一致,如果以数字格式输入,请在月份中使用前导零,并根据要使用的是文本还是数值使用正确的公式。

=12(INT(A1)-INT(B1))+100(MOD(A1,1)-MOD(B1,1))

=(DOLLARDE(A1,12)-DOLLARDE(B1,12))*12

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(10095)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。