【问题标题】:Group members in Power BiPower Bi 中的组成员
【发布时间】:2026-01-15 20:15:02
【问题描述】:

请考虑这张表:

 Year        Amount
 -------------------
 2010        10000
 2011        12300
 2012        14000
 2013        13000
 2014        22000
 2015        10000

我想像这样在Power BI 中创建一个表:

 Year        Amount
 -------------------
 2010        10000
 2011        12300
 2012        14000
 2013        13000
 2014        22000
 2015        10000
 Last2Years  32000

我有两个问题:

1)如何将两个成员分组并将其放置在原始维度中?

2) 过去几年每两年一次的小组会是动态的吗?例如,如果 2016 添加到维度,那么我的组是 2015+2016

谢谢

【问题讨论】:

    标签: powerbi ssas dimensions


    【解决方案1】:

    在 DAX 中,无法将行添加到现有表中,您必须使用并集来复制该表,其中包含您的度量的行。

    衡量过去两年的金额:

    AmountLastTwo = SUMx(TOPN(2;'Table';'Table'[Year]);[Amount])

    TOPN(2.. 将确保度量始终包含过去两年。

    然后您可以在原始表和包含度量的行之间使用UNION 创建一个新表,如下所示:

    UnionTable = UNION('Table'; ROW("Year";"LastTwoYears";"Amount";[AmountLastTwo]))

    Year            Amount
    2010            10000
    2011            12300
    2012            14000
    2013            13000
    2014            22000
    2015            10000
    LastTwoYears    32000
    

    您从这个按钮添加一个表格,然后粘贴上面的代码:

    另一种选择是在 Power Query 中执行此操作。

    1. 复制您的表并将其命名为 SUM_LAST_TWO
    2. 按年份排序,然后选择保留最上面的行(使用 UI)
    3. 合计金额(使用 UI)
    4. 创建一个空查询(新源 > 空查询)并将其添加到公式字段:= #table({"Year", "Amount"}, {{"Last2Years",#"SUM_LAST_TWO"}})。这将创建一个包含过去两年总和的单行表。
    5. 在您的原始表格中,附加您刚刚创建的单行表格(使用 UI)

    但是,如果确实没有必要在表中添加这一额外行(这会破坏数据类型),我建议仅使用度量 AmountLastTwo

    【讨论】:

    • 谢谢。你太棒了。我认为你的答案有误。您写了两次AmountLastTwo = SUMx(TOPN(2;'Table';'Table'[Year]);[Amount]),但没有在答案中添加Union 命令
    • 你能在你的答案中添加一些图片吗?对于第一个解决方案。
    • @Arian 对不起!贴错代码sn-p。你还想要什么照片?
    • 谢谢亲爱的@Karl Anka。如果可能来自解决方案 1 步骤的图片。
    最近更新 更多