DAX:区分工作日,你就跟我这么做(续)

本文介绍了在Power BI中计算两列日期时间格式数据工作时间差的方法,包括扩展日期表为小时计算小时差的两种策略。通过创建小时表并利用笛卡尔积,结合DATEDIFF函数,实现灵活的工作日时间差计算。测试表明,直接扩展日期表的公式在性能上优于分段计算的公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在之前的文章《 区分工作日,你就跟我这么做 》中讲过关于工作时间差的相关计算方法,今天我们要介绍的是如何计算两列日期时间格式数据的工作时间差。

1 计算思路

首先我们思考一下,如果不考虑工作日的话,计算两列值的时间差怎么计算呢?
按照之前文章的思路是判断开始时间和结束时间区间内日期表的行数,如果我们要改成小时,那么可以考虑把日期表扩展成小时就可以计算了。

想到这个,问题就转换为如何将日期表扩展为按小时的时间序列。这是第一种计算方式,这种方式公式比较简单。但是如果日期年份比较多,那么日期时间表行数一年就要8000多行,而且这种方式计算如果要计算更小的单位比如分钟和秒的话,性能就比较低了。

有些其实还有另外一种方式,我们想一下,日期时间差的计算只有开始时间和结束时间的日期不是完整的一整天,中间区间的天数都是完整的,那么我们可以分段计算小时差了,下面我们具体看下两种计算方式。

2 扩展日期表为小时计算小时差

首先,我们来看下如何将日期表扩展按小时的时间序列。需要准备一张Hour的表,存储的数据为一天24小时,可以使用输入数据的方式进行录入。结果如下:

file

接着就需要考虑如何将日期表扩展为每天的24小时,这就用到了笛卡尔积的方式,这里不是本文的重点,就不再具体介绍了,详细步骤参考文章《 在Power BI中生成笛卡尔积 》中Power Query计算方法部分。这里给出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值