如果“开始日期”在切片器中选择“日期”之前,则 DAX 对行进行计数

DAX Count Rows if Start Date is before selected Date in slicer

提问人:Daniélle Truter 提问时间:11/16/2023 最后编辑:egleaseDaniélle Truter 更新时间:11/16/2023 访问量:19

问:

我有一组示例 HR 数据,我使用它们在 Power BI 中进行练习。其中一项要求是说明在选定期间填补的空缺数目。没有指标可以使用或筛选已填补的空缺,因此我想构建一个度量值,如果与空缺关联的开始日期较小/在切片器中筛选用户的日期之前,则通过计算行来计算已填补的空缺 - 基本上假设该职位已在开始日期被填补。

这是我尝试使用的公式。它只返回切片器中选择的当天的空缺数,不返回任何先前的空缺数。我注意到,如果我删除“=”运算符,该公式将不起作用,因此基本上它只显示彼此相等的日期,而不是更小的日期。如果我删除“=”,那么我会得到一个空白结果。

那么,当过滤月份而不是日期时,我如何让它工作?如果我不筛选日期,那么我也会得到一个空白结果。

Vacancies Filled = 
CALCULATE(
    COUNT(EmployeeVacancies[ObjectID]),
    FILTER(
        EmployeeVacancies, 
        EmployeeVacancies[Start date] <= SELECTEDVALUE('Date'[Date])
    )
)

My Date 表被标记为 Date 表,并且它通过 Date 字段与 EmployeeVacancies 表具有活动的一对多关系。

我真的很感激任何帮助!

PowerBI DAX

评论


答:

0赞 Amira Bedhiafi 11/16/2023 #1

当您选择使用 SELECTEDVVALUE 时,您忘记了您只将职位空缺的开始日期与切片器中的单个选定日期进行比较,而不是将日期范围进行比较。因此,您的度量值仅计算切片器中选择的特定日期的空缺,而不是计算截至该日期(包括该日期)的所有日期的空缺。请尝试以下操作:

 Vacancies Filled = 
    CALCULATE(
        COUNT(EmployeeVacancies[ObjectID]),
        FILTER(
            EmployeeVacancies, 
            EmployeeVacancies[Start date] <= MAX('Date'[Date])
        ),
        ALLSELECTED('Date'[Date])
    )