求助:DAX计算列未正确计算两日期间工作日差值问题
计算DAX中排除非工作日与银行假日的日期差
你的代码问题在于:VAR DTE 已经算出了两个日期的总天数差,后续的CALCULATE仅筛选了DimDate的上下文,但并没有对DTE这个固定变量做任何统计调整,所以结果始终是总天数,不会排除非工作日和假日。
正确的思路应该是统计DimDate表中,位于反馈接收日期和确认日期之间(含边界,可按需调整)、同时满足工作日标记为1且银行假日标记为0的日期数量。以下是修正后的计算列代码:
Working Days to Ack = VAR StartDate = FactComplaints[Feedback receipt date] VAR EndDate = FactComplaints[Acknowledgment Date] RETURN CALCULATE( COUNTROWS(DimDate), DimDate[Date] >= StartDate, DimDate[Date] <= EndDate, DimDate[WorkingDayFlag] = 1, DimDate[BankHolidayFlag] = 0 )
代码说明:
- 定义
StartDate和EndDate变量分别对应投诉表的两个日期字段,提升代码可读性。 - 用
COUNTROWS(DimDate)统计符合筛选条件的日期行数,也就是有效工作日的数量。 - 通过日期范围筛选结合两个标记,精准锁定需要统计的工作日。
如果业务需求是排除开始或结束日期,只需将>=或<=改为>或<即可。
内容的提问来源于stack exchange,提问作者Jubed96
相关产品推荐
相关产品推荐

