如何使用LOOKUPVALUE和USERELATIONSHIP进行CALCULATE

问题描述 投票:0回答:1

我有三个表,一个名为“ISO_ccy”的昏暗表只显示货币的ISO缩写,一个显示实体(“实体”)的“本国货币”的暗表和显示外国的另一个(事实)表(“交易”)交易所(FX)交易。外汇交易的事情是,它们总是涉及两种货币(ccy),因此后一种表有两列货币ISO代码(和相应的金额)。两个暗淡的表都只有一列具有ISO ccy代码(表“ISO_ccy”仅具有不同的值)。

我现在在“ISO_ccy”和“交易”表之间有货币1(ccy1)的一个(有效)关系和一个对货币2(ccy2)无效的关系。 “ISO_ccy”和“实体”表之间也存在活动关系。

我需要计算每种货币和货币不等于该实体的“本国货币”的每个实体的总和。

对于有积极关系的ccy来说似乎很直接(ccy1):

    Sum_Hedges_activeRelation:=
    CALCULATE(
    SUM([Amount_ccy1]);
    FILTER(trades;trades[ccy1]>LOOKUPVALUE(entities[ccy];entities[name];trades[name]))
    )

过滤器表达式确保仅显示交易的ccy不等于实体的“home”ccy的金额。

在这里,我得到了理想的结果。

现在我需要对非活动关系(ccy2)做同样的事情。

这是我试过的:

Sum_Hedges_in-activeRelation:=
CALCULATE(
SUM([Amount_ccy2]);
USERELATIONSHIP(trades[ccy2];ISO_ccy[ccy]);
FILTER(trades;trades[ccy2]<>LOOKUPVALUE(entities[ccy];entities[name];trades[name]))
) 

但是,我只得到一个“空”的结果。

我还尝试将“ALL(交易)”添加到CALCULATE函数中。那里也没有结果。

所以,我现在有点不知所措,我怎么能做到这一点。你能帮忙吗?

relationship lookup powerpivot
1个回答
0
投票

2019年4月8日更新解决方案:

我在这里找到了解决问题的方法:

sqlbi: USERELATIONSHIP in a Measure

现在我的forumlar看起来像这样:

Sum_Hedges_in-activeRelation:=
CALCULATE(
 CALCULATE(
 SUM([Amount_ccy2]);
 FILTER(trades;trades[ccy2]
 <>LOOKUPVALUE(entities[ccy];entities[name];trades[name]))
 );
USERELATIONSHIP(trades[ccy2];ISO_ccy[ccy])
)

这与引用文章中提供的解决方案(对于列相关的上下文)略有不同,因为我省略了外部CALCULATE()中的ALL()指令。我无法解释,但......

© www.soinside.com 2019 - 2024. All rights reserved.