如何根据列值过滤DATESBETWEEN(计算一个月中的工作日数)

时间:2013-09-25 17:47:07

标签: ssas tabular dax

在Visual Studio 2010中处理SSAS表格项目;

我正在尝试创建一个计算一个月中工作日总数的指标:

我有Month Start DateMonth End Date指标以及DateIs Business Day列。

我可以使用Total Business Days创建COUNTROWS(FILTER(Dates,Dates[Is Business Day]=TRUE()))指标。这给了我上下文中的工作日数,但我想要当月的工作日数。

我尝试了FILTERCOUNTCOUNTXCOUNTROWSDATESBETWEENCALCULATE的各种组合,但没有成功。< / p>

我想要的是两个日期之间的天数,其中[Is Business Day]列为真,但我似乎无法获得正确的过滤组合。

我猜我会按照Total Business Days度量的方式过滤Dates表,但是FILTER会返回一个表而COUNTROWS需要一个列 - 是否有办法获取FILTER结果中的单列?

1 个答案:

答案 0 :(得分:0)

这是一个想法......

首先,创建一个名为MonthKey的计算列(如果您还没有):

=YEAR([Date]) * 100 + MONTH([Date])

然后创建另一个名为IsCurrentMonth的计算列

=IF(YEAR(TODAY()) * 100 + MONTH(TODAY()) = [MonthKey], 1, 0)

然后,您可以将计算出的度量创建为

COUNTROWS(FILTER(Dates,Dates[IsCurrentMonth] = 1))

那会做你需要的吗?