Power BI:用于查找日期之间天数的 DAX 公式给出 "an invalid numeric representation of a date value was encounted" 错误
Power BI: DAX formula to find number of days between dates gives "an invalid numeric representation of a date value was encounted" error
我最近才开始在我的新工作中使用 Power BI 和 DAX,所以如果这是一个超级简单或愚蠢的修复,我深表歉意。
我正在尝试创建一个列 (NumDays) 来计算日期范围内的天数,以及一个列 (NumWorkDays) 来计算日期范围之间的工作日数。我有一个 table (日历),其中包含一个日期列表,并用 1 或 0 指示它是否是工作日(周一至周五)。在一个单独的 table(发货)中,我有两个日期值,我试图找到它们之间的工作日数:DateOfDelivery 和 DateOfSale。
这是我的两列 DAX 公式...
天数:
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])))
每当我尝试 运行 任一公式时,我都会收到此错误:
An invalid numeric representation of a date value was encountered.
就是这样。我已经检查了两个 table 寻找奇怪的值,并且我已经仔细检查了数据类型以确保它们是日期时间而不是时髦的东西。老实说,我在这里很困惑,所以我们将不胜感激。提前致谢!
**编辑:我尝试分解每个公式的各个部分,以尝试查明导致错误的位置。它似乎源自 DATESBETWEEN() 函数,但我无法将其缩小到导致问题的特定列或 table。这只是该功能的一个已知问题吗?
从 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)))
这是他们网站上 post 的 link:http://community.powerbi.com/t5/Desktop/DATESBETWEEN-gives-quot-Invalid-Numeric-Representation-of-a-Date/m-p/42604#M16306
请检查 table 后的日期。
根据我的经验,当我在 table 中放置行时,我收到了相同的错误,并且在一行中有一个错误的日期,年份等于 9999。奇怪的是日期列没有已在任何 DAX 公式中使用。
我最近才开始在我的新工作中使用 Power BI 和 DAX,所以如果这是一个超级简单或愚蠢的修复,我深表歉意。
我正在尝试创建一个列 (NumDays) 来计算日期范围内的天数,以及一个列 (NumWorkDays) 来计算日期范围之间的工作日数。我有一个 table (日历),其中包含一个日期列表,并用 1 或 0 指示它是否是工作日(周一至周五)。在一个单独的 table(发货)中,我有两个日期值,我试图找到它们之间的工作日数:DateOfDelivery 和 DateOfSale。
这是我的两列 DAX 公式...
天数:
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])))
每当我尝试 运行 任一公式时,我都会收到此错误:
An invalid numeric representation of a date value was encountered.
就是这样。我已经检查了两个 table 寻找奇怪的值,并且我已经仔细检查了数据类型以确保它们是日期时间而不是时髦的东西。老实说,我在这里很困惑,所以我们将不胜感激。提前致谢!
**编辑:我尝试分解每个公式的各个部分,以尝试查明导致错误的位置。它似乎源自 DATESBETWEEN() 函数,但我无法将其缩小到导致问题的特定列或 table。这只是该功能的一个已知问题吗?
从 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)))
这是他们网站上 post 的 link:http://community.powerbi.com/t5/Desktop/DATESBETWEEN-gives-quot-Invalid-Numeric-Representation-of-a-Date/m-p/42604#M16306
请检查 table 后的日期。
根据我的经验,当我在 table 中放置行时,我收到了相同的错误,并且在一行中有一个错误的日期,年份等于 9999。奇怪的是日期列没有已在任何 DAX 公式中使用。