前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何计算两个日期的间隔月份?这个年月处理方法,一定要get到! | Power Query实战

如何计算两个日期的间隔月份?这个年月处理方法,一定要get到! | Power Query实战

作者头像
大海Power
发布2022-05-25 14:30:02
2.8K0
发布2022-05-25 14:30:02
举报
文章被收录于专栏:用户8950297的专栏

前天我发了文章《被问了无数次!6个日期时间常见问题总结 | Power Query实战》,里面有一个关于计算两个日期的间隔天数以及计算年龄(两个日期的间隔年数)的问题,但却没有关于两个日期的间隔月份数的情况。

那么,怎么计算间隔的月份呢?实际上,对于月份数的情况,是没有办法按天数折算的,毕竟每个月的天数都不一样,所以,Power Query里也没有Duration.TotalMonths之类的函数。

那么,难道要先计算间隔多少年,然后再加上月份差异?而且,计算年的时候,就要同时考虑月和日的大小问题,具体可以参考《如何计算年龄》;

然后,还得再计算月份的差,又要考虑后面跟着的“日”是否大于前面日期的日的问题,才能确定满多少个月——如果按照这个方法,的确是挺复杂的!有兴趣的朋友可以自己动手试试。

这个时候,就可能可以考虑是不是数学算法上能有所改善了。

对于年月这个问题来说,虽然年+月组成的6位数字(如202204……202212,202301……),并不是连续的,但是,每年都是12个月,这是个很有规则的情况,根据这个规律,我们其实可以将它们转换成连续的数字:年*12+月——这个叫12进制,嘿嘿!

示例如下图所示:

经过转换成连续的数字,要算两个日期之间的月份数,就相对简单了,只要对“日”进行比较即可:如果后面(大的)日期中的“日”大于前面(小的)日期中的“日”,则直接用年月序列相减;如果小于,则再减个1即可。

代码语言:javascript
复制
= Date.Year([日期2])*12 + Date.Month([日期2])
-(Date.Year([日期1])*12 + Date.Month([日期1]))
-Number.From(Date.Day([日期1])>= Date.Day([日期2]))

对于年月的处理,使用“年*12+月份”的计算方法,转换为连续的序列,是在数据处理过程中经常用到的一个方法,建议大家一定要get到,记住——当然,动手练一下,是最好的记忆途径!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel到PowerBI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档