Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 小计行的总和_Powerbi_Dax_Ssas Tabular - Fatal编程技术网

Powerbi 小计行的总和

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

我是DAX的新手,所以请容忍我。简单地说,我想将所有非欧洲地区的测量值加倍,然后将结果相加。以下是一些DAX示例:

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的表名的目的是什么。