我有一个只能下载 YTD 的数据源。我想展示它们之间的比较差异。
我的数据如下所示:
我正在设计的矩阵表是这样的。我正在尝试添加方差列,这是在 Power BI 上添加的列之间的差异。 DAX 能解决这个问题吗?
答案 0 :(得分:0)
假设这是带有 add column for month
的原始数据集(我只是根据您的值给出一些随机值):
为了产生预期的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):
最后,您可以使用 Matrix table
中的所有列创建预期的 Table 2
,如下所示(序列可以通过索引解决;我不会在这里解决)。