【问题标题】:DAX Joint valueDAX 联合价值
【发布时间】:2018-03-15 20:32:26
【问题描述】:

我正在尝试在 DAX 中创建一个度量,通过过滤两个维度表以使其具有相同的列值来查找事实表的联合值(总和)。

这是关系的图像

Users 中的每个部门都链接到表 Registret。他们正在为项目提供资源。 Projects 表正在获取资源。我想要完成的是一个可以找到一个部门使用它自己资源的数量的度量。所以我想如果我可以过滤 Registret[Users]Registre[Project] 其中Users[Department] = Projects[Department] 我会得到价值。

我想使用Projects[Department] 作为基础。因此,下表将显示Projects 中每个Department 的内部部门注册量。

Department(Projects)   InternalRegistration
   A                           Value 
   B                           Value

到目前为止,我一直在尝试类似

CALCULATE(Registret[Registret]; FILTER(Users; Users[Department] IN ALLSELECTED(Projects[Departments])))

但是,如果我在切片器中从表 Projects 中挑出一个部门,这只会显示正确的值。解决方案是否可能是UsersProjects 之间的一些联合表?

编辑:

上面的表格显示了RegistretUsersProjects 之间的联合值矩阵。

编辑2:

我的表格数据的图像。

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    请注意,过滤器箭头仅指向下方。这意味着选择Projects[Departments] 不会过滤Users[Departments],因为没有连接它们的过滤器路径。您还缺少度量中的 SUM 函数。

    尝试将您的度量调整为以下:

    = CALCULATE(SUM(Registret[Registret]);
          FILTER(Users; Users[Department] = SELECTEDVALUE(Projects[Departments])))
    

    如果您在矩阵或表格中工作,SELECTEDVALUE 应从视觉对象中获取行/列过滤器上下文,而 ALLSELECTED 仅从切片器或报表/页面/视觉对象级别获取过滤器上下文过滤器。


    您也可以使用...IN VALUES(... 代替...= SELECTEDVALUE(...

    = CALCULATE(SUM(Registret[Registret]),
          FILTER(Users, Users[Department] IN VALUES(Projects[Department])))
    

    这两个都应该产生以下结果:

    【讨论】:

    • 感谢您的回答。我收到“函数需要参数 2 的表表达式,但使用了字符串或数字表达式”错误。由于 SELECTEDVALUE 中的第二个参数是可选的,因此不确定该怎么做?
    • 我忘了用= 替换ININ 需要一个表格,但SELECTEDVALUE 返回一个值)。
    • 你能把你的表格贴出来让我试着重现这个吗?
    • 这对于小桌子来说很好。如果您有更多数据,通常会以文本形式发布。
    • 啊,我错过了SUM 部分。尝试在实际环境之外编写代码的危险。请查看我的编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    相关资源
    最近更新 更多