我有一个包含两个日期列的案例事实表:startDate和endDate以及一个unitCount。我有一个不相关的日期维度,其中包含所有日期。
这样,我可以将案例数计算为:
Number of cases (Beginning of month) :=CALCULATE(
sum('Fact'[unitCount]),
FILTER('Fact',
'Fact'[endDate]>=MIN(Date[Date]) &&
'Fact'[startDate]<=MIN(Date[Date])
))
这很好,可以生成一个不错的列表:
Year-Month Number of cases(Beginning of month)
2018-01 2
2018-02 5
2018-03 3
... etc
我想添加一列,以衡量每个月初的案件平均持续时间。
我尝试过采取措施:
Average duration (Beginning of month):=calculate(AVERAGEX('Fact',
datediff('Fact'[startDate],
MIN('Date'[Date]),
MONTH)),
FILTER('Fact',
'Fact'[endDate]>=MIN('Date'[Date]) &&
'Fact'[startDate]<=MIN('Date'[Date])
))
但是,此代码失败并出现错误:在Datediff函数中,“开始日期”不能大于“结束日期”。这不是问题,因为过滤器阻止了这种情况的发生。我该如何解决?
答案 0 :(得分:0)
我想我可能已经找到了解决方案:
Average duration :=
CALCULATE (
AVERAGEX (
'Fact',
DATEDIFF (
'Fact'[startDate],
MINX ( FILTER ( 'Date', Date[Date] >= 'Fact'[startDate] ), 'Date'[Date] ),
MONTH
)
),
FILTER (
'Fact',
'Fact'[endDate] >= MIN ( Date[Date] )
&& 'Fact'[StartDate] <= MIN ( Date[Date] )
)
)
此代码似乎运行良好。太好了!