【问题标题】:How to filter DATESBETWEEN based on column value (to calculate number of business days in a month)如何根据列值过滤 DATESBETWEEN(计算一个月的工作日数)
【发布时间】:2013-09-25 17:47:07
【问题描述】:

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

我正在尝试创建一个计算一个月内总工作日数的度量:

我有Month Start DateMonth End Date 度量,以及DateIs Business Day 列。

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

我尝试了FILTERCOUNTCOUNTXCOUNTROWSDATESBETWEENCALCULATE 的各种组合,但均未成功。

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

我想我会按照 Total Business Days 度量的方式过滤 Dates 表,但是 FILTER 返回一个表并且 COUNTROWS 需要一个列 - 有没有办法从 @987654337 中获取单个列@结果?

【问题讨论】:

  • 如果你的日期维度是分层的,试试Children函数怎么样?

标签: ssas tabular dax


【解决方案1】:

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

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

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

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

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

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

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

这能满足你的需要吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多