Это то, что я предлагал, где нижние отношения находятся в столбцах Index
.
![Relationship Diagram](https://i.stack.imgur.com/LzNue.png)
Для этого мойТаблица #Brand x Region
была такой:
#Brand x Region =
VAR CrossProduct =
ADDCOLUMNS (
CROSSJOIN ( '#product', '#region' ),
"Target",
CALCULATE (
SUM ( Budget[target] ),
FILTER (
Budget,
Budget[product] = EARLIER ( '#product'[product] ) &&
Budget[region] = EARLIER ( '#region'[region] )
)
)
)
RETURN
ADDCOLUMNS(
CrossProduct,
"IsTarget", IF ( [Target] > 0, "Yes", "No" ),
"Index", RANKX(CrossProduct, '#product'[product] & '#region'[region])
)
(Примечание: фильтрация должна быть явной, так как я не использую отношения, которые у вас были изначально.)
Оттуда я остановился наиндекс для FactTableSales
и Budget
с поиском:
Index =
LOOKUPVALUE (
'#Brand x Region'[Index],
'#Brand x Region'[product], [product],
'#Brand x Region'[region], [region]
)
Обратите внимание, что создание столбца индекса часто проще в редакторе запросов, чем попытка сделать это в DAX, но вы не можете изменитьвычисляемая таблица в редакторе запросов.