对于刚进事务所的审计小朋友来说,固定资产折旧测算总是避免不了的。
看着企业固定资产清单上茫茫多的资产,如果要一个一个算,估计得算到项目结束时才能算完。如果学会了这个公式,几分钟就能搞定。是的,几分钟就能把折旧测算搞定!
很久之前就想写这篇文章了,由于各种乱七八糟的原因,迟迟未能完成。
最近,有几个朋友问我固定资产折旧怎么测算。想教他们,可是工作忙,实在是抽不出时间。当时就想,如果我早点把这篇文章写出来,发个链接给他们就行了。
可惜没有如果。
虽不能“授之以渔”,但能“授之以鱼”。我把之前写好公式的excel模板发给他们,说把固定资产的几个信息粘贴进去,本期应计提的折旧就出来了。模板是这个样子的:

只要把“原值”、“开始使用日期”、“使用月限”、“残值率”这四个要素粘贴上去,黄色区域是公式,结果自动出来。
废话少说,上干货!
首先,函数是这样子的:

=IF(E4>=$I$2,0,IF(DATEDIF(E4,$I$2,"m")>F4,D4*(1-G4),DATEDIF(E4,$I$2,"m")*D4*(1-G4)/F4))
别看它长,其实也就两个函数,一个是DATEDIF,一个是IF,很容易理解。
先从DATEDIF开始。
以它为例,DATEDIF(E4,$I$2,"m"),这个函数有三个参数,第一个是开始时间,第二个是结束时间,第三个是你要获取的结果。它的具体含义是,从E4单元格到 i2 单元格“相隔”的月数。E4单元格表示2016年12月,i2单元格表示2017年12月,它们两之间相隔了12个月。“m”是month的缩写,月的意思,公式中一定要带双引号。当然了,你要获取两个日期相隔多少天,你可以把“m”改成“d”(date,“日”的英文),要获取相隔多少年,就改成“y”。最后,需要注意一下“相隔”这个词,比如1到7,相隔的是6。固定资产计提折旧的政策是,当月增加当月不提,当月减少当月照提。如果用这个函数来算两个日期相隔的月数,刚好是应当计提折旧的月数,与折旧政策相匹配。可以说,这个函数是为固定资产量身定做的。如果不用它,是不是可惜了?
求两个日期相隔多长时间的函数学会了,离目标就不远了。我们算出了相隔月数,再用月数乘以月折旧额,不就得到应计提的折旧了吗?简单!
然而,事实没那么简单。如果这样,上面的函数就不会这么长了,可对?
如果两个日期相隔超过一年怎么办?我们要测的折旧,只是一个会计年度的。
如果固定资产已经提足折旧了怎么办?
把各种可能性考虑进去,函数就变长了。
函数虽长,不过是多加一个IF函数而已。
IF函数专门解决“如果......怎么办”的问题。不会用IF函数的,可以先去加强一下excel基础。出门左转,我上期的文章后面有个免费学习excel基础的链接,内容很给力。
在介绍这个长长的函数之前,先来理清整体思路。要想求本期应计提的折旧,就要知道本期有多少个月需计提折旧,再用月数乘以月折旧额即可。以17年为例,固定资产16年11月开始使用,求17年应计提的折旧,我们可以这样算:假设开始使用时间到本期期初(也就是上期期末:16年12月31日)相隔a个月,开始使用时间到本期期末相隔b个月,那么b-a就是本期计提折旧的月数。16年11月到16年12月31日,相隔1个月,到17年12月31日则相隔13个月,13-1=12,应计提12个月折旧。用12乘以月折旧额,就可以得出本年应计提的折旧。这么简单?
没这么简单。如果固定资产是17年内开始使用的呢?可去试试用DATEDIF计算从17年5月4日到16年12月31日相隔多少个月,不会出现负数,而是公式出错!怎么解决?
这就轮到我们刚才说到的IF函数出场了。做一个比较即可:如果开始使用日期大于或期初,则返回0,否则正常计算。还是上面那个例子,17年5月4日开始使用,由于17年5月4日大于16年12月31日,返回0,5月4日到17年12月31日相隔7个月,7-0=7,本期应计提7个月的折旧。函数的前半部分“IF(E4>=$I$2”就是用来判断开始使用时间是否大于或等于期初的,如果大于,就返回0,否则继续执行函数。到了这一步,大功告成!
当然没有!
如果该固定资产早就已经提足折旧了呢?又出现了一个bug。
解决办法,还是用IF函数,再嵌套一个IF即可。接着上面的例子,假如它是08年8月开始使用,折旧月限60个月。08年8月大于或等于16年12月31日的判断不成立,函数继续执行,接下来我们再加入一个函数,用来判断它是否已经提足折旧,还是用DATEDIF函数,计算开始使用时间到16年12月31日相隔的月数是否大于折旧月限,如果大于,那么截止期初的折旧月数只能是60(计提足折旧就不再提了),如果小于,则截止期初的折旧月数是两个时间相隔的月数。说起来有点绕口,简单说就是:谁小就选谁。比如上面,08年8月开始使用,折旧月限60个月,而用DATEDIF计算出来的月数是100,60小于100,所以返回的月数是60。再计算截止期末(17年12月31日)累计计提的月数,也是60。60-60=0,所以本期不计提折旧。考虑到了这一步,就圆满了,把公式往下一拉,所有情况下的折旧都能测算出来!
现在我们再来回顾一下上面的公式。
=IF(E4>=$I$2,0,IF(DATEDIF(E4,$I$2,"m")>F4,D4*(1-G4),DATEDIF(E4,$I$2,"m")*D4*(1-G4)/F4))
D列是原值,F列是使用月限,G列是残值率,D4*(1-G4)计算的是总的折旧额,意思是从开始使用时间到17年12月31日,相隔月数大于或等于使用月限,那截止17年12月31日的累计折旧等于总折旧额,也就是月数乘以月折旧额。D4*(1-G4)/F4算的是月折旧额,当相隔月数小于使用月限时,累计折旧等于相隔月数乘以月折旧额。先计算期初累计折旧,再计算期末累计折旧,期末减去期初,就是本期计提的!
到了这里,大功告成,只要把公式往下一拉,本期应计提的折旧就出来了,不管企业有一千个固定资产,还是一万个,几分钟就能算出来。最后,用测算出来的数和企业实际计提的数相比较,看差额是多少,再找出差异的原因!这就是折旧测算的整个过程!
解释一下,$I$2跟I2是一样的,都表示第I列,第2行,唯一的区别在于,两个美元符号把I给锁死了,不能动了,它的功能是,把公式往下拉,往左拉,往四个方向拉,它都不会变,被钱锁死了。这就是绝对引用。对于不懂什么是绝对引用和相对引用的,建议去巩固一下Excel基础。
还有一点需要注意的,我们接触到的固定资产清单,往往是从系统中导出来的。从系统中导出来的数据,往往是文本类型,而文本是不能进行比较运算的, 也就没法比较两个日期谁大谁小。解决办法是把文本类型改成数值类型。操作:点击“数据”——“分列”——“下一步”——“下一步”,选择“日期”,再点击完成。这就完成了从文本到数值的转换,当然也能通过这种方式把文本转换成数值。是这样子的:

注意:以上方法只适用于“平均年限法”的折旧测算,如果某些企业使用的是“双倍余额递减法”或者“年总和法”,就不行了。不过用这两种折旧方法的企业比较少。
DATEDIF函数还可以用来测算短期借款利息,无形资产摊销,长期待摊费用摊销等。
知乎不常上,最新内容会在微信公众号上第一时间更新,大家有什么疑问也可以在微信公众号对话框中跟我留言,我会第一时间回复。
还有很多很多干货,欢迎大家关注我的微信公众号,在微信公众号查找框中输入我的公众号ID:wssg1114
也可以扫描图中二维码加关注。
