2016-11-15 62 views
0

我有一个比较谷物类型问题。 我有2项措施的事实表 - 量和Share_amountDAX - 不同的粒度

EG

Name Location Amount Share_amount 
John Ireland  100  50 
John UK   100  50 
fred USA   200  200 
Bob  france  300  150 
Bob  spain  300  150 

我想用Share_amount

显示金额小计,但/总在支点,我想看:

John  100 
John Total 100 
fred  200 
Fred total 200 
Bob   300 
Bob Total 300 

我知道我可以空白()的金额,如果ISFILTERED()的位置 但我想显示的金额(非共享),但保持个Ë总计正确

有没有办法做到这一点在DAX

感谢

+1

为什么你不使用SUM(事实[Share_Amount])?即使该地点未被过滤,您也将得到每个名称的share_amount总和,该总和等于该金额。你能否更好地解释你的过滤请求以帮助你? –

+0

这是一个非常好的点 - 我应该澄清 - 我实际上想要显示金额,即使该位置被选中,但总和基于share_amount。您指出我的DAX不正确。 –

回答

0

我认为你需要的是这样的:

DEFINE MEASURE 'Fact'[RealAmount] = 
    IF (
     COUNTROWS (VALUES (Fact[Location])) = 1, 
     SUM (Fact[Amount]), 
     SUM (Fact[Share_amount]) 
    ) 

它没有测试,但应该工作,乐我知道它是否适合你。

+0

谢谢 - 这就是我以后的。 –

0

这里我在想什么 - 任何人都可以评论这是否会工作或没有:

DEFINE MEASURE 'Fact'[RealAmount] = 
IF (
    NOT (
     ISFILTERED ('Fact'[Location]) 
     ) 
    , 
    SUM (Fact[Amount]) 
    , 
    SUM (Fact[Share_Amount]) 
)