我刚刚开始在我的新工作中使用Power BI和DAX,所以如果这是一个超级简单或愚蠢的修复我道歉。
我正在尝试创建一个列(NumDays)来计算日期范围内的天数,以及一个列(NumWorkDays)来计算日期范围之间的工作天数。我有一个表(日历),其中包含一个日期列表,并指示1或0是否是工作日(周一至周五)。在另一个表(发货)中,我有两个日期值,我正在尝试查找:DateOfDelivery和DateOfSale之间的工作日数。
以下是两列的DAX公式......
NUMDAYS:
NumDays = IF(ISBLANK('Shipments'[DateOfDelivery]), -1, CALCULATE(COUNTROWS('Calendar'),DATESBETWEEN('Calendar'[Dates],'Shipments'[DateOfSale], 'Shipments'[DateOfDelivery])))
NumWorkDays:
NumWorkDays = IF(ISBLANK('Shipments'[DateOfDelivery]), -1, CALCULATE(SUM('Calendar'[IsWorkDay]),DATESBETWEEN('Calendar'[Dates],'Shipments'[DateOfSale], 'Shipments'[DateOfDelivery])))
每当我尝试运行任何一个公式时,我都会收到此错误:
遇到日期值的无效数字表示。
就是这样。我已经通过两个表寻找奇怪的值,我已经仔细检查了数据类型,以确保它们是日期时间而不是时髦的东西。老实说,我在这里很难过,所以任何帮助都会受到赞赏。提前致谢!
**编辑:我已尝试分解每个公式的各个部分,以尝试确定导致错误的位置。看起来它起源于DATESBETWEEN()函数,但我无法将其缩小到导致问题的特定列或表。这只是该函数的已知问题吗?
答案 0 :(得分:0)
得到了Power BI社区论坛上某人的回答......原来使用DATESBETWEEN()并不是正确的方法。
更新了NumDays:
NumDays = IF(ISBLANK('Shipments'[DateOfDelivery]), -1, CALCULATE(COUNTROWS('Calendar'),filter('Calendar', 'Calendar'[Dates]>('Shipments'[DateofSale]) && 'Calendar'[Dates]<=(''[Delivered]))))
更新了NumWorkDays:
NumWorkDays = IF(ISBLANK('Shipments'[DateOfDelivery]), -1, CALCULATE(COUNTROWS('Calendar'), filter('Calendar', 'Calendar'[Dates]>('Shipments'[DateofSale]) && 'Calendar'[Dates]<=('Shipments'[DateOfDelivery])&& 'Calendar'[WorkDay]=1)))