功效 Bi/Dax:使用过滤器总结 table

Power Bi/Dax: Summarize table with filters

我有这个table:

IP  Technology  Status
IP1 T1  Passed
IP1 T1  Passed
IP1 T1  Failed
IP1 T2  Failed
IP1 T2  Failed
IP1 T2  Passed
IP2 T3  Passed
IP2 T3  Failed
IP3 T4  Passed
IP3 T4  Passed
IP3 T5  Passed
IP3 T5  Passed
IP3 T5  Passed
IP3 T5  Passed
IP3 T5  Passed
IP2 T6  Passed
IP2 T6  Passed
IP2 T6  Passed
IP2 T6  Passed

我必须删除一些技术(T2 和 T6)并显示以下摘要 table: (我只对“通过”结果感兴趣,但留下“失败”一栏供参考)

IP   Failed Passed  100% Passed
IP1  33%    67%     No
IP2  50%    50%     No
IP3  0%     100%    Yes

这就是我所做的: 我创建了两个临时的 tables 来计算通过的测试数和测试总数:

Table1 =
CALCULATETABLE (
    GROUPBY (
        'Table',
        'Table'[IP],
        'Table'[Status],
        "#Passed", COUNTAX ( CURRENTGROUP (), ( 'Table'[Status] = "Passed" ) )
    ),
    'Table'[Technology] = "T1"
        || 'Table'[Technology] = "T3"
        || 'Table'[Technology] = "T4"
        || 'Table'[Technology] = "T5"
)
Test2 =
CALCULATETABLE (
    GROUPBY (
        'Table',
        'Table'[IP],
        "#scan", COUNTAX ( CURRENTGROUP (), ( 'Table'[IP] ) )
    ),
    'Table'[Technology] = "T1"
        || 'Table'[Technology] = "T3"
        || 'Table'[Technology] = "T4"
        || 'Table'[Technology] = "T5"
)

在表 1 中,我使用 LOOKUPVALUE 添加了表 2 中的测试总数,并计算了“通过百分比”。

当我想使用 IF 语句获取“100% 通过”标志 (Yes/No) 时:

100% Passed = IF(%'Table Test1'[%Passed]=1,"Yes","No")

我收到此错误消息:

The following syntax error occurred during parsing: invalid token, Line1, Offset 4, %

是不是因为‘%Passed’是计算字段?你知道绕路吗?我已经为此工作了好几天,我感到很沮丧。有没有更有效的方法来得到这个结果?

在此先感谢您的帮助。

我个人更喜欢 SUMMARIZE 而不是 GROUPBY,尽管它们非常相似。您可以使用 ADDCOLUMNS 添加附加逻辑,引用您在汇总中计算的列以获得 100% Passed 列。

Summary =
CALCULATETABLE (
    ADDCOLUMNS (
        SUMMARIZE (
            'Table',
            'Table'[IP],
            "% Passed", DIVIDE (
                CALCULATE ( COUNTROWS ( 'Table' ), 'Table'[Status] = "Passed" ),
                COUNTROWS ( 'Table' )
            )
        ),
        "100% Passed", IF ( [% Passed] = 1, "Yes", "No" )
    ),
    NOT ( 'Table'[Technology] IN { "T2", "T6" } )
)