Quero criar uma matriz personalizada com base em várias tabelas
Dado um conjunto de dados como este:
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
Eu crio uma matriz como esta:
Counterparty Bar Buzz Total
foo 40 0 40
fizz 20 20 40
Total 60 20 80
usando Counterparty
como linhas, Product
como colunas e TotalValue
como valores:
--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)
Também tenho uma tabela semelhante com valores diferentes que preciso usar para criar as colunas personalizadas:
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
A matriz final deve ficar assim:
Counterparty Bar Buzz Total col1 col2
foo 40 0 40 39 1
fizz 20 20 40 39 1
Total 60 20 80 78 2
Acho que tenho que criar uma nova tabela a partir das duas tabelas para que tenha os valores corretos para preencher minhas colunas e então criar medidas de acordo, mas não tenho certeza de como proceder. Ou estou aberto a ouvir sugestões para uma abordagem diferente.
EDIT: Eu estava usando isso como referência, mas no exemplo eles estão criando tudo no Excel e eu não quero abordar dessa forma, pois preciso preencher dinamicamente Products
usando minhas tabelas.
A
Combinations
tabela precisaria incluirTable2
valores, mas remover quaisquer duplicatas:Sua
c1
medida refletiria aTotalValue
medida, mas apontaria paraTable2
:A
c2
medida então subtrairiac1
deTotalValue
:Então
c1
ec2
pode ser adicionado àValues
da sua matriz.(Recomendo mover
Product
para aRows
seção da sua matriz, para ter uma aparência mais limpa.)Editar: Mantendo Bar e Buzz como colunas
Adicione x quantidade de medidas para cada produto:
Converter matriz em tabela e adicionar medidas de produto à tabela: