资产折旧与摊销的测算公式:解析DATEDIF函数的错误及提供解决方案和Excel测算模板

1. 问题描述

在资产折旧摊销计算中,我们常常需要计算两个日期之间的月份数,以便确定当期的折旧摊销月份数。虽然可以使用DATADIF函数来快速计算两个日期之间的折旧摊销月份数,但可能会出现一些未预料到的错误。

例如,如果我们假设上期末为2022年12月31日,本期末为2023年6月30日,那么这两个日期之间间隔的月份数应该是6个月。

然而,如果使用DATEDIF函数来计算这个月份数,却会得到5个月的结果。

在线文档示例: 点击查看

错误的计算结果示例,如下:

start_date end_date 公式 结果
2022-12-31 2023-06-30 =DATEDIF(start_date,end_date,"M") 5

 

2. 原因说明

DATADIF函数M参数对于“整月”的判断,既不是按30天也不是31天等,是变动的;中间的月份不影响,主要是看最后一个月数字与开始日期数字对比,

以上文数据为例,=DATEDIF("2022-12-31","2023-06-30","M")的算法为:

  • 中间的月份不看,只看年月

    • 2022-12-312023-01-31,满 1 个月;
    • 2022-12-312023-02-28,满 2 个月;
    • 2022-12-312023-03-31,满 3 个月;
    • 2022-12-312023-04-30,满 4 个月;
    • 2022-12-312023-05-31,满 5 个月;
  • 最后一个月看

    • 判断最后一个月是否完整,需要比较从 2023-05-312023-06-30 这个区间;
    • 开始日期( 2022-12-31 )的天数是 31
    • 结束日期(2023-06-30 )的天数是 30
    • 因为 30 < 31,结束日期的天数小于开始日期的天数,所以 DATEDIF 函数认为这最后一个月不是一个完整的月份。
  • 结果:

    • 函数只计算了5个完整的月份,所以结果为 5

然后,我们在计算折旧摊销时,其实是想得到结果6的,这与我们想要的结果不符。

 

3. 解决办法

3.1. 方法概述

由于 DATEDIF 是一个为了兼容旧版 Lotus 1-2-3 而保留的“隐藏”函数,它在某些边缘情况下可能存在问题。如果我们想计算月份的差异,更透明、更稳健的做法使用YEARMONTH函数的组合,来提取两个日期中的月份数,并手动计算它们之间的差值。这样可以确保计算结果的准确性和可靠性。

 

3.2. 在线文档示例

《【示例】固定资产(不含减值)年限平均法折旧测算公式》在线文档示例: 点击查看

 

3.3. 公式解析

3.3.1. 固定资产年限平均法折旧测算公式

项目 公式
累计折旧月份 =MIN([使用年限]*12,MAX(0,(YEAR([本期期末日期])-YEAR([开始使用日期]))*12+MONTH([本期期末日期])-MONTH([开始使用日期])))
本期折旧月份 =[累计折旧月份]-MIN([使用年限]*12,MAX(0,(YEAR(EOMONTH([本期期初日期],-1))-YEAR([开始使用日期]))*12+MONTH(EOMONTH([本期期初日期],-1))-MONTH([开始使用日期])))

 

3.3.2. 无形资产直线法摊销测算公式

项目 公式
累计摊销月份 =MIN([使用年限]*12,MAX(0,(YEAR([本期期末日期])-YEAR([开始使用日期]))*12+MONTH([本期期末日期])-MONTH([开始使用日期])+1))
本期摊销月份 =[累计摊销月份]-MIN([使用年限]*12,MAX(0,(YEAR(EOMONTH([本期期初日期],-1))-YEAR([开始使用日期]))*12+MONTH(EOMONTH([本期期初日期],-1))-MONTH([开始使用日期])+1))

 

3.3.3. 固定资产折旧与无形资产摊销的区别

固定资产应当按月计提折旧,当月增加的固定资产,当月不计提折旧,从下月起计提折旧;当月减少的固定资产,当月仍计提折旧,从下月起不计提折旧。使用寿命有限的无形资产,其应摊销金额应当在使用寿命内系统合理摊销。

企业摊销无形资产,应当自无形资产可供使用时起,至不再作为无形资产确认时止。企业选择的无形资产摊销方法,应当反映与该项无形资产有关的经济利益的预期实现方式。无法可靠确定预期实现方式的,应当采用直线法摊销。无形资产的摊销金额一般应当计入当期损益,其他会计准则另有规定的除外。

 

4. FAQ

4.1. 累计折旧月份数可不可以直接两个日期做差除以30天?

答:不可以。

分析:当资产可使用年限较大时,简单做差除以30太难会出现多计折旧月份数的错误;以“2012-12-31”与“2023-6-30”之间月份差计算为例,分析如下:

类型 公式 结果 说明
做差除以30天法 =(DATE(2023,6,30)-DATE(2012,12,31))/30 128 错误
本文示例(YEAR+MONTH法) =(YEAR(DATE(2023,6,30))-YEAR(DATE(2012,12,31)))*12+MONTH(DATE(2023,6,30))-MONTH(DATE(2012,12,31)) 126 正确

在线文档示例: 点击查看

 

4.2. DATEDIF 函数是什么?怎么用?

DATEDIF 函数用法: 点击查看

 

4.3. 我就想使用DATEDIF,有没有解决办法?有!使用 TEXT 函数对日期整形!

(1)解决办法概述

除了上述使用YEARMONTH函数组合的方式计算月份差,还可以使用TEXT对日期格式整形后,再使用DATEDIF,示例如下:

=DATEDIF(TEXT([开始日期],"YYYY-MM"), TEXT([结束日期],"YYYY-MM"), "M")

 

(2)解释说明

这个公式的核心在于 TEXT 函数。它先将原始日期转换成了文本。

DATEDIF 函数的参数是一个形如 "YYYY-MM" 的文本时,Excel会自动将其解析为该月份的第一天。如:"2022-12" 被当作 2022-12-01"2023-06" 被当作 2023-06-01

因此,这个公式实际上等同于: =DATEDIF(TEXT([开始日期],"YYYY-MM-01"), TEXT([结束日期],"YYYY-MM-01"), "M")

在这个新的计算中,开始日期的天数是 1,结束日期的天数也是 1;因为 1 >= 1,所以最后一个月会被计算在内。

 

(3)举例

类型 公式 结果 说明
不整形的计算公式 =DATEDIF("2022-12-31","2023-06-30","M") 5 错误
TEXT整形后的计算公式 =DATEDIF(TEXT("2022-12-31","YYYY-MM"),TEXT("2023-06-30","YYYY-MM"),"M") 6 正确
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇