You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

技术求助:如何在Power BI中计算销售表内两个日期的差值并排除周末(含示例数据场景)

在Power BI中计算日期差值并排除周末的解决方案

嘿,这个需求我之前帮不少朋友处理过,在Power BI里计算销售表中两个日期的工作日差值(排除周六周日)其实很顺手,我给你配示例数据和具体步骤,你跟着操作就行~

先看示例销售表数据

假设你的销售表结构和数据如下:

销售ID订单日期发货日期
12024-05-202024-05-24
22024-05-222024-05-23
32024-05-252024-05-28

方法1:用DAX内置函数NETWORKDAYS(最简便)

Power BI的DAX语言里专门有个NETWORKDAYS函数,就是用来计算两个日期之间的工作日数量,默认会排除周六和周日。

步骤:添加计算列

  1. 打开你的销售表,点击「建模」选项卡 → 「新建列」
  2. 输入以下DAX公式:
工作日差值 = NETWORKDAYS('销售表'[订单日期], '销售表'[发货日期])
  1. 按回车确认,就能看到每一行的工作日差值了。

对应示例的计算结果:

  • 销售ID1:5天(5.20周一到5.24周五,全是工作日)
  • 销售ID2:2天(5.22周三到5.23周四)
  • 销售ID3:2天(5.25周六、5.26周日排除,实际计算5.27周一到5.28周二)

进阶:排除自定义节假日

如果你的业务需要排除特定节假日(比如国庆、春节),可以先建一个包含节假日日期的表,然后给NETWORKDAYS加第三个参数:

工作日差值(含节假日排除) = NETWORKDAYS('销售表'[订单日期], '销售表'[发货日期], '节假日表'[节假日日期])

处理日期顺序问题

如果存在「发货日期早于订单日期」的异常数据,函数会返回负数,你可以用ABS函数取绝对值:

工作日差值 = ABS(NETWORKDAYS('销售表'[订单日期], '销售表'[发货日期]))

方法2:用度量值计算(适合汇总场景)

如果你需要对整个销售表的工作日差值做汇总计算,可以新建度量值:

总工作日差值 = SUMX('销售表', NETWORKDAYS('销售表'[订单日期], '销售表'[发货日期]))

这个度量值会遍历每一行销售数据,计算单条记录的工作日差值后求和。

注意事项

  • 确保你的「订单日期」和「发货日期」列是日期/时间格式,要是文本格式的话,函数会报错,记得先转格式哦~
  • NETWORKDAYS默认包含开始日期和结束日期,如果不需要包含其中某一天,可以对日期做±1调整,比如NETWORKDAYS('销售表'[订单日期]+1, '销售表'[发货日期])就会排除订单当天。

内容的提问来源于stack exchange,提问作者Jeje

火山引擎 最新活动