我想创建一个基于多个表的自定义矩阵
给定这样的数据集:
Counterparty Product Deal Date Value
foo bar Buy 01/01/24 10.00
foo bar Buy 01/01/24 10.00
foo bar Sell 01/01/24 10.00
foo bar Sell 01/01/24 10.00
fizz bar Buy 01/01/24 10.00
fizz bar Buy 01/01/24 10.00
fizz buzz Sell 01/01/24 10.00
fizz buzz Sell 01/01/24 10.00
我创建了一个这样的矩阵:
Counterparty Bar Buzz Total
foo 40 0 40
fizz 20 20 40
Total 60 20 80
使用Counterparty
作为行、Product
作为列和TotalValue
作为值:
--Create Table in model
Combinations =
CROSSJOIN(
VALUES('table1'[Counterparty]),
VALUES('table1'[Product])
)
--Create Measure for calculated totals
TotalValue =
VAR CurrentCounterparty = SELECTEDVALUE(Combinations[Counterparty])
VAR CurrentProduct = SELECTEDVALUE(Combinations[Product])
VAR TotalValue = CALCULATE(
SUM('table1'[Value]),
'table1'[Counterparty] = IF(HASONEVALUE(Combinations[Counterparty]), CurrentCounterparty, 'table1'[Counterparty]),
'table1'[product] = IF(HASONEVALUE(Combinations[Product]), CurrentProduct, 'table1'[Product])
)
RETURN IF(ISBLANK(TotalValue), FIXED(0, 0), TotalValue)
我还有一个具有不同值的类似表,我需要用它创建自定义列:
Counterparty Product Deal Date Value
foo bar Buy 01/01/24 11.00
foo bar Buy 01/01/24 09.00
foo bar Sell 01/01/24 09.00
foo bar Sell 01/01/24 10.00
fizz bar Buy 01/01/24 12.00
fizz bar Buy 01/01/24 08.00
fizz buzz Sell 01/01/24 09.00
fizz buzz Sell 01/01/24 10.00
最终矩阵应如下所示:
Counterparty Bar Buzz Total col1 col2
foo 40 0 40 39 1
fizz 20 20 40 39 1
Total 60 20 80 78 2
我认为我必须从这两个表中创建一个新表,以便使用正确的值来填充我的列,然后相应地创建度量值,但我不确定如何继续。或者我愿意听取有关不同方法的建议。
编辑:我使用它作为参考,但在示例中,他们在 Excel 中创建所有内容,而我不想那样做,因为我需要Products
使用我的表格动态填充。
该
Combinations
表需要包含Table2
值但删除所有重复项:您的
c1
测量结果将反映该TotalValue
测量结果,但指向Table2
:然后,该
c2
措施将从c1
中减去TotalValue
:然后可以将
c1
和c2
添加到Values
矩阵的中。(我建议将其移动
Product
到Rows
矩阵的部分,以获得更清晰的外观。)编辑:将 Bar 和 Buzz 保留为列
为每个产品添加 x 个度量值:
将矩阵转换为表格并将产品度量添加到表格中: