使用 "AND" 按多个条件进行 Power BI 筛选

Power BI Filter By Multiple Criteria using "AND"

背景

我有一个存储员工及其技能的数据库。我想做的是能够使用切片器 select 多项技能,并向员工展示拥有所有技能的员工 selected。

问题

当我 select 多个标准并应用 "OR" 时,向我显示具有 任何 技能的员工 selected。 (见截图)

问题

在上面的示例中,我如何修改我的报告以便只有史蒂夫出现?

我试过的

我已经添加了 Tab Alleman 提议的基于 DAX 的新措施,但我仍然看到正在实施 "OR" 逻辑。这是 DAX:

Employees with all skills = 
COUNTROWS (
FILTER (
    ADDCOLUMNS (
        VALUES ('dw Employee'[ADUserId]),
        "Skills", 
        CALCULATE (
            COUNTROWS ( VALUES ( 'dw Skill'[SkillName] ) ),
            CALCULATETABLE ( 'dw EmployeeSkill' )
        )
    ),
    [Skills] = COUNTROWS ( VALUES ( 'dw Skill'[SkillName] ) )
)
)

衡量具备所有技能的员工 基本上是正确的,但未按您预期的方式行事。

它是一个度量,因此它本身不会改变 table 的过滤方式,除非在 table 中使用该度量(通过将度量添加到 table 作为列或使用度量作为过滤器)。

如果您创建一个 table 仅包含员工 [全名] 和您的度量,您将只看到史蒂夫出现。

既然你不想让measure出现,你也可以把它放在Visual Level Filter里面,也能达到同样的效果:

但是,您正在做的事情中一个棘手的部分是您还想显示技能名称。只要您将 技能名称 拖到 table 上,Joshua、Eric 和其他拥有这两种技能的员工就会重新出现(因为它扰乱了度量所依赖的行数上)。

为了解决这个问题,您正在使用的度量需要更新以在计算行数时忽略技能名称:

Employees with all skills =
CALCULATE (
COUNTROWS (
    FILTER (
        ADDCOLUMNS (
            VALUES ( 'dw Employee'[ADUserId] ),
            "Skills", CALCULATE (
                COUNTROWS ( VALUES ( 'dw Skill'[SkillName] ) ),
                CALCULATETABLE ( 'dw EmployeeSkill' )
            )
        ),
        [Skills] = COUNTROWS ( ALLSELECTED( 'dw Skill'[SkillName] ) )
    )
),
ALLSELECTED ( 'dw Skill'[SkillName] )
)

我真正改变的只是第一行和最后一行。我将整个度量包装在一个新的 CALCULATE 语句中,然后在最后更改了过滤器上下文以包括来自 'dw Skill' table.

的所有 SkillNames

这样您就可以创建一个包含 FullName 和 SkillName 的 table,并且仍然只返回 Steve:

注意:我并不是说我上面的 DAX 修改是解决这个问题的最有效或最好的方法。