Powerbi 小计行的总和
我是DAX的新手,所以请容忍我。简单地说,我想将所有非欧洲地区的测量值加倍,然后将结果相加。以下是一些DAX示例:Powerbi 小计行的总和,powerbi,dax,ssas-tabular,Powerbi,Dax,Ssas Tabular,我是DAX的新手,所以请容忍我。简单地说,我想将所有非欧洲地区的测量值加倍,然后将结果相加。以下是一些DAX示例: DEFINE measure Fact[test] = CALCULATE (IF(SELECTEDVALUE('Dim'[Region]) = "Europe", Fact[Revenue],Fact[Revenue] * 2)) EVALUATE( SUMMARIZECOLUMNS( ROLLUPADDISSUBTOTAL
DEFINE
measure Fact[test] = CALCULATE (IF(SELECTEDVALUE('Dim'[Region]) = "Europe", Fact[Revenue],Fact[Revenue] * 2))
EVALUATE(
SUMMARIZECOLUMNS(
ROLLUPADDISSUBTOTAL('Dim'[Region], "RegionSubtotal"),
"Original Measure", Fact[Revenue],
"New Measure", Fact[test]
)
)
区域
区域次总计
原始测量
新措施
亚洲
错误的
200
400
美洲
错误的
500
1000
欧洲
错误的
300
300
符合事实的
1000
2000
对于小计行,选定的值不是Europe,因此它是该值的两倍 要解决此问题,您需要迭代度量中的区域。大概是这样的:
test =
SUMX (
VALUES ( 'Dim'[Region] ),
IF (
'Dim'[Region] = "Europe",
[Revenue],
[Revenue] * 2
)
)
对于小计行,选定的值不是Europe,因此它是该值的两倍 要解决此问题,您需要迭代度量中的区域。大概是这样的:
test =
SUMX (
VALUES ( 'Dim'[Region] ),
IF (
'Dim'[Region] = "Europe",
[Revenue],
[Revenue] * 2
)
)
另一种选择是创建一个计算列,其中,如果是regionEurope,则为amount*2 else amount。
然后取计算列的总和,但这就像有一个额外的数据。另一种选择是创建一个计算列,如果是regionEurope,则为amount*2 else amount。
然后取计算列的和,但这就像有一个额外的数据。这是有意义的,单独计算每一行并对结果求和,但不幸的是,我得到的结果与以前相同。我认为应删除SELECTEDVALUE,因为在SUMX中,我们在“Dim”[区域]上有一行上下文。谢谢,看起来是这样的。谢谢@sergiom。我已经编辑了答案。请告诉我使用值而不是不带VALIES的表名的目的是什么。这是有意义的,单独计算每一行并对结果求和,但不幸的是,我得到的结果与以前相同。我认为应删除SELECTEDVALUE,因为在SUMX中,我们在“Dim”上有一个行上下文[Region]谢谢,看起来是这样。谢谢@sergiom。我已经编辑了答案。请告诉我使用值而不是不带VALIES的表名的目的是什么。