我有一个简单的PowerPivot工作簿,在一个表中有一些SalesTargets,这些是按月...通常是每月的第1个,以及日期维度。
我已经写了(通过很多痛苦)DAX查询来分配我们为了月份间报告而收集的每月目标(否则将没有目标数据)...
然而,我发现我的查询存在一些问题,我不知道如何解决这个问题,如果我试图仅在日级显示分配的目标值,那一天是工作日的事情。有点错......基本上没有任何层次结构显示,我不知道为什么:(
不知道为什么,我无法修复它......这是我目前的代码:
Measure :=
CALCULATE (
SUMX (
VALUES ( Dates[Date] ),
CALCULATE (
CALCULATE (
SUM ( SalesTargets[Target] ),
ALL ( Dates[Date] ),
SUMMARIZE ( Dates, Dates[MonthName] )
)
/ CALCULATE (
DISTINCTCOUNT ( Dates[Date] ),
ALL ( Dates[Date] ),
Dates[IsWorkingDay] = 1,
SUMMARIZE ( Dates, Dates[MonthName] )
)
)
),
Dates[IsWorkingDay] = 1
)
代码试图在一个月级别对销售目标求和,然后将该数字除以IsWorkingDay = 1的日期总和
此过程是针对日期表的所有日期[日期](最低粒度)执行的,然后我尝试再次过滤IsWorkingDay = 1的日期。
如果我从代码中的两个区域删除工作日逻辑,一切正常......并且在几个月,几个季度和几年内卷起来没有问题..
我相信如果我明白这里的问题是什么,我就能解决它......我只是看不到它。
由于
答案 0 :(得分:1)
以下是我最终选择的内容:
SalesTarget :=
CALCULATE (
SUMX (
VALUES ( Dates[Date] ),
CALCULATE (
CALCULATE (
[Sum of Target],
ALL ( 'Dates' ),
SUMMARIZE ( Dates, Dates[MonthName], Dates[Year] )
)
/ CALCULATE (
[Sum of IsWorkingDay],
ALL ( 'Dates' ),
SUMMARIZE ( 'Dates', 'Dates'[MonthName] )
)
)
),
Dates[IsWorkingDay] = 1
)
请注意,此处唯一真正的区别是删除了IsWorkingDay = 1的独特天数
我注意到,当我将计算结果分成较小的一组时,这并没有给我正确的答案,因此在经过一段时间的游戏之后将其更改为其他内容。
在我的日期表中,IsWorkingDay是1或0的布尔字段,但您也可以使用以下内容执行此操作:
WorkingDays :=
CALCULATE (
COUNTROWS ( 'Dates' ),
ALL ( 'Dates' ),
SUMMARIZE ( 'Dates', 'Dates'[MonthName] ),
'Dates'[IsWorkingDay] = "Working Day"
)
希望这篇文章可以帮助某人:)