【问题标题】:Power BI calculate the difference between two columns in a multi level matrixPower BI 计算多级矩阵中两列之间的差异
【发布时间】:2020-04-30 12:13:21
【问题描述】:

这里是源数据:

列:[版本、单位、客户、季度、销售额)

以下是潜在价值:

*注意:我们可能有 10 个不同的版本和 20 多个不同的季度组合。

这是 Power BI 中的输出矩阵:

*用户可以选择一个版本和两个季度进行比较。

以下是 Power BI 可视化和字段:

我想创建一个度量来计算版本 1 和 2 之间的差异,如下所示(E 列和 H 列):

我可以创建一个新表,其中包含版本 1、2、3 的销售列,然后计算差异。问题是我需要版本和季度是动态的。任何想法如何在 Power BI 中执行此操作?

【问题讨论】:

    标签: powerbi dax dashboard powerbi-desktop


    【解决方案1】:

    你可以这样做

        Delta = IF (HASONEVALUE('Table'[Version]),
                       SUM('Table'[Sales]), 
                        CALCULATE(sum('Table'[Sales]), LASTNONBLANK('Table'[Version], sum('Table'[Sales]))) 
                      - CALCULATE(sum('Table'[Sales]), FIRSTNONBLANK('Table'[Version], sum('Table'[Sales])))
    )
    

    因此,当您在过滤器上下文中有两个版本时,它会从最后一个中减去第一个版本,并且只要过滤器上下文中只有一个版本,它就会传递该值。

    【讨论】:

    • 当我这样做时,我的值最终为 0。有什么想法吗? CALCULATE(sum('Table'[Sales]), LASTNONBLANK('Table'[Version], sum('Table'[Sales]))) = 238 CALCULATE(sum('Table'[Sales]), LASTNONBLANK('Table '[版本], sum('表'[销售额]))) = 238
    【解决方案2】:

    添加到这里。

    如何修复每个子类别中的重复列。

    我使用了下面的 DAX,但不知何故,它在所有子类别中重复了计算列“Delta TMCGP%”。当我只想在矩阵表(Power BI)的末尾显示它时

    Delta TMCGP% = CALCULATE([TMCGP%], FILTER( ALL(BC_Dashboard_V4_Standard[TYPE (groups)]), BC_Dashboard_V4_Standard[TYPE (groups)]="4_CWV") ) - CALCULATE([TMCGP%], FILTER( ALL(BC_Dashboard_V4_Standard[TYPE (groups)]), BC_Dashboard_V4_Standard[TYPE (groups)]="5_POR" ) )

    【讨论】:

    • Delta TEST = VAR TMCGPpctCWV = DIVIDE(SUM(BC_Dashboard_V4_Standard[CWV_TMCGP]), SUM(BC_Dashboard_V4_Standard[CWV_REVENUE])) VAR TMCGPpctPOR = DIVIDE(SUM(BC_Dashboard_V4_Standard[POR_TMCGP]), SUM(BC ])) VAR Result = TMCGPpctCWV - TMCGPpctPOR RETURN 结果@@@@@ 我试过了,但结果仍然重复其他子类别中的列。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多