首页 文章

Power BI - 引用结果集中的其他行以确定是否显示一行

提问于
浏览
0

我有一张账户表和另一张租约表 . 我们不销售我们的产品;你可以一次租赁一年 . 在Leases表中,我们记录这些租约,每行都有一个返回Account表的链接 . 因此,对于给定的帐户,Leases表中可以有任意数量的行 . 当然,对于某些帐户,租约表中没有行 - 它们是从未向我们租赁过产品的帐户 .

租赁可以具有多种状态 - 活动,过期,非活动(当客户提前交出产品时)等等 .

我在Power BI中有一个可视化表格,其中显示了所有帐户的完整列表,并为每个帐户显示了每个租约 . 因此,某些帐户有多行,每个租约与该帐户相关联 . 我有切片器,以便用户可以选择仅显示活动租约,或仅显示过期租约,等等 . 因此,对于特定帐户,如果存在今年的租约(活动)和去年的租约(已过期),则该帐户将显示我是否选择了“活动”切片器选项或“过期”切片器选项,每次只显示符合切片机标准的租约 .

这一切都很好 . 但现在用户已经表示他们希望有一个切片器,向他们展示所有没有租约的账户,另一个切片器会向他们显示所有没有租约的账户 . 这就是我遇到问题的地方 .

显示所有没有租约的账户很容易 - 这样的账户只有一行,所以我可以过滤一行的租约ID是否为空 .

但是如何为没有Active租约的Accounts进行切片器?我可以说'向我显示没有租约或租约不活跃的行 - 但所有可能做的就是淘汰任何当前租约的结果集 - 它仍会显示具有当前租约的账户,只要它们也是有一些过期的租约(它只会显示包含过期租约的行,而不是包含当前租约的行) . 这导致了线程的 Headers . 有没有办法查看其他行,并决定是否显示其他行是否包含某些值?就像是:

FOR (each row in the result set)
    IF (any other row in the result set has the same Account ID as this row and contains a current lease)
        Do not show this row
    ELSE
        Show this row
    END IF 
END FOR

1 回答

  • 0

    由于我不知道你的数据是什么样的,我只能指出你正确的方向 .

    我将创建计算列以确定每个活动租约(历史或现在)的MAX ID(数据中的行ID) . 然后我会创建一个计算列来比较每行的MAX ID是否大于上次活动租约的MAX ID . 如果租约当前未激活,这将为您提供指示 .

    查看此主题以获取类似示例:

    https://community.powerbi.com/t5/Desktop/DAX-Create-column-LAST-status-based-on-MAX-date/td-p/461331

相关问题