ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: lytton_lee

[讨论]DATEDIF函数计算月数的疑问

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-11-13 23:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:DATEDIF
领教了 mark一下 后面慢慢看!

TA的精华主题

TA的得分主题

发表于 2016-9-24 11:53 | 显示全部楼层
Public Function datedif_Year(date1 As Date, date2 As Date) As Long   
  '计算两个日期之间的整年数,功能同表格函数datedif(d1,d2,"Y")
    date3 = DateSerial(Year(date2), Month(date1), Day(date1))
    H = Year(date2) - Year(date1) - 1
    If date3 <= date2 Then
       datedif_Year = H + 1
    Else
       datedif_Year = H
    End If
End Function

TA的精华主题

TA的得分主题

发表于 2017-5-8 11:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我探索了半天,用datedif这个函数,无法计算月份,我用了其他的方法,经测试应该没问题,欢迎提问,
=(YEAR("2017/4/30")-YEAR(H2)-1)*12+ABS(MONTH(H2)-12)+MONTH("2017/4/30")+1
H2单元格是要计算月份差的日期。

TA的精华主题

TA的得分主题

发表于 2017-7-10 16:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
gdliyy 发表于 2006-5-16 00:47
既然楼主想用月末来判断整月,何不用月初来判断呢?这样可能就好处理了:)

确实,我一直都用月末来判断,完全忽略可以用月初减一天来解决,太好了,谢谢

TA的精华主题

TA的得分主题

发表于 2017-10-18 17:12 | 显示全部楼层
chrisfang 发表于 2006-5-13 20:24
guo兄由Edate来联系的想法没有问题,应该说两者大体上的算法是一致的。但datedif是由天数推算整月数,而eda ...

你好!我有一个疑问,就是关于Datedif和edate的。如你在3楼上说的,当前后日期之间的差值大于或等于整月天数,函数结果是(终止月-初始月);如果差值小于整月天数,函数结果是(终止月-初始月-1)。套用你在6楼中举的edate的例子,由于1月29、30、31日到2月28日的差值都小于1月的整月天数,所以当起始日期是1月29-31日时,到2月28日,datedif的结果应该是0才对,而edate的结果如你所说当起始日期是1月28-31日时,向后推算一个月才是2月28日,所以我觉得是不是两个函数的计算逻辑还是有一些不一样。或者是我的理解有一些问题。

TA的精华主题

TA的得分主题

发表于 2019-8-13 16:13 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-2-27 23:57 | 显示全部楼层
刚学到这个函数,有点绕,有点晕,感谢大佬们的分析

TA的精华主题

TA的得分主题

发表于 2020-5-28 14:20 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-8-1 15:45 | 显示全部楼层
anotherxd 发表于 2020-5-28 14:20
直到2020年这个问题缠绕了14年的问题还在继续。。。

哈哈哈,时至今日正正18年过去了,当年的楼主如果是个精神小伙儿,现在都是油腻大叔了。小龙女也和杨过冲锋了都,然而微软仍然没有解决这个问题,甚至都把这个函数雪藏了,不能直接调用。

TA的精华主题

TA的得分主题

发表于 2024-8-1 15:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
dsjt 发表于 2008-9-12 13:03
QUOTE:以下是引用lytton_lee在2006-5-9 9:40:32的发言:各位大侠:我用datedif("2006/3/31","2006/4/30","M ...

16楼的大哥总结的最简洁明了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 02:35 , Processed in 0.037181 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表