Dax 基于 Top N 转置 table - Power BI

Dax to Transpose a table based on Top N - Power BI

在 POWER BI DAX 中寻求帮助 - 我创建了一个 DAX table,它采用名称并将各种结果及其可能性转换为以下格式:

目前,我有一个措施来确定前 3 个不同的输出,其形式如下:

Most Likely = 
LOOKUPVALUE(
    'Test'[Result],
    'Test'[Expected Percentage],
    MINX(
        TOPN(
            1,
            'Test', 
            'Test'[Expected Percentage],
            desc),
        'Test'[Expected Percentage])
    )

我用它在我的仪表板中显示,以根据预期输出的最高百分比显示最有可能的结果。

但是,现在我想将此数据转换为以下静态 table 格式:

我遇到的问题是 DAX table 添加语句没有按名称拆分,因此我正在检索整个 table 的最高预期百分比并且它没有按名称拆分- 这是我目前正在使用的:

Outcomes Summary = (
SELECTCOLUMNS('Test', "Most Likely",
LOOKUPVALUE(
    'Test'[Result],
    'Test'[Expected Percentage],
    MINX(
        TOPN(
            1,
            'Test',
            'Test'[Expected Percentage]&'Score Outcomes'[Name],
            desc),
        'Score Outcomes'[Expected Percentage])
    ), "Name", 'Test'[Name], "Result", 'Test'[Expected Percentage]
)
)

如有任何帮助,我们将不胜感激!

如果您先将排名列添加到 table,这会变得更容易一些。

Summary =
VAR AddRank =
    ADDCOLUMNS (
        Test,
        "@Rank",
            RANKX (
                FILTER ( Test, Test[Name] = EARLIER ( Test[Name] ) ),
                Test[Expected Percentage]
            )
    )
RETURN
    SUMMARIZE (
        AddRank,
        Test[Name],
        "Most Likely",
            MAXX (
                FILTER ( AddRank, [@Rank] = 1 && Test[Name] = EARLIER ( Test[Name] ) ),
                Test[Result]
            ),
        "2nd Most Likely",
            MAXX (
                FILTER ( AddRank, [@Rank] = 2 && Test[Name] = EARLIER ( Test[Name] ) ),
                Test[Result]
            ),
        "3rd Most Likely",
            MAXX (
                FILTER ( AddRank, [@Rank] = 3 && Test[Name] = EARLIER ( Test[Name] ) ),
                Test[Result]
            )
    )