这个函数微软都藏起来,不想太早给你知道

JaryYuan
JaryYuan
JaryYuan
40
文章
0
评论
2020-04-1710:05:00 评论 226 993字
摘要

在 Excel 中有一类函数叫隐藏函数,在帮助和插入公式里面没有,输入函数时也不会智能填充。计算两个日期之间间隔的函数DATEDIF,就是这种函数之一。

至于为什么微软要将这类函数藏起来,官方并没有给出正式的解释。一说是与同是电子表格软件的 Lotus 1-2-3 存在版权之争。 Lotus 1-2-3 出现时间早于 Excel ,但是在后面的竞争中逐渐被淘汰。

这个函数微软都藏起来,不想太早给你知道

一、Excel 中的 DATEDIF

Excel 中 DATEDIF 的函数语法为:

DATEDIF(start_date,end_date,unit)

其中第三个参数用于控制间隔单位 — 天(D)、月(M)、年(Y)

第三个参数选择 「 Y 」 可以计算员工年龄:

这个函数微软都藏起来,不想太早给你知道

第三个参数选择 「 D 」 可以计算员工工龄(具体到天):

这个函数微软都藏起来,不想太早给你知道

二、Power BI 中的 DATEDIFF

DAX 函数中也有计算时间间隔的函数 DATEDIFF。相比 Excel ,DAX 的 DATEDIFF 函数包含的 DAX 的帮助系统中,且输入时可智能填充,并且它的适用范围更广,功能更完善。

当我们的日期列包含时间(时、分、秒)的话,DATEDIFF还能计算出日期在这三个维度上的差。

语法如下:

DATEDIFF(<start_date>, <end_date>, <interval>)

其中第三个参数 <interval> 包含比较日期时要使用的间隔。 该值可以为以下任一值:

- SECOND

- MINUTE

- HOUR

- DAY

- WEEK

- MONTH

- QUARTER

- YEAR

可以看到 DAX 的 DATEDIFF 比较两个日期时,提供了更多的比较维度给我们。

给定以下两个时间

这个函数微软都藏起来,不想太早给你知道

分别新建列计算以下间隔,计算的结果都为 1

间隔日=DATEDIFF("时间表"[呼入时间],"时间表"[挂断时间],DAY)

间隔小时=DATEDIFF("时间表"[呼入时间],"时间表"[挂断时间],HOUR)

间隔分钟=DATEDIFF("时间表"[呼入时间],"时间表"[挂断时间],MINUTE)

间隔秒=DATEDIFF("时间表"[呼入时间],"时间表"[挂断时间],SECOND)

其实,因为 PowerPivot 中日期部分存储为整数,时间部分存储成小数。所以当我们直接将两个日期相减时得到两个日期之间的天数之差。

因此间隔日和间隔小时还可以按以下公式计算,计算结果为 1

间隔日= ROUNDUP("时间表"[挂断时间]-"时间表"[呼入时间],0)

间隔小时=ROUNDUP(24*("时间表"[挂断时间]-"时间表"[呼入时间]),0)

End.

作者:JaryYuan

来源:公众号JaryYuan

本文均已和作者授权,如转载请与作者联系。

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: