计算两列之间的差异 - Power BI 中的矩阵表

时间:2021-06-22 07:53:05

标签: powerbi

我有一个只能下载 YTD 的数据源。我想展示它们之间的比较差异。

我的数据如下所示:

Data Source Imported on Power BI

我正在设计的矩阵表是这样的。我正在尝试添加方差列,这是在 Power BI 上添加的列之间的差异。 DAX 能解决这个问题吗?

Matrix Table

1 个答案:

答案 0 :(得分:0)

假设这是带有 add column for month 的原始数据集(我只是根据您的值给出一些随机值):

Enter image description here

为了产生预期的Matrix table,首先需要创建类别,例如sale, cost, GP(我只创建了一个示例,但没有创建完整列表)

Table 2 = {"Sale", "Cost", "GP"}

接下来,根据每个类别为 Jun 值创建一个新列:

June = IF('Table 2'[Categories]="Sale",CALCULATE(SUM(Vendor[Sale]),
        FILTER(Vendor,Vendor[Header]="Jun")),
            IF('Table 2'[Categories]="Cost",CALCULATE(SUM(Vendor[Cost]),
                FILTER(Vendor,Vendor[Header]="Jun")),
                    IF('Table 2'[Categories]="GP",CALCULATE(SUM(Vendor[GP]),
                        FILTER(Vendor,Vendor[Header]="Jun")),0)))

后跟July,逻辑相同:

July = IF('Table 2'[Categories]="Sale",CALCULATE(SUM(Vendor[Sale]),
        FILTER(Vendor,Vendor[Header]="Jul")),
            IF('Table 2'[Categories]="Cost",CALCULATE(SUM(Vendor[Cost]),
                FILTER(Vendor,Vendor[Header]="Jul")),
                    IF('Table 2'[Categories]="GP",CALCULATE(SUM(Vendor[GP]),
                        FILTER(Vendor,Vendor[Header]="Jul")),0)))

然后根据新列创建计算Delta

Delta = CALCULATE(SUM('Table 2'[July]),
            FILTER('Table 2','Table 2'[Categories]=EARLIER('Table 2'[Categories]))) -
                CALCULATE(SUM('Table 2'[June]),
                    FILTER('Table 2','Table 2'[Categories]=EARLIER('Table 2'[Categories])))

这是完整的新表(表 2):

Enter image description here

最后,您可以使用 Matrix table 中的所有列创建预期的 Table 2,如下所示(序列可以通过索引解决;我不会在这里解决)。

Enter image description here