SUMX DISTINCT PowerPivot未按预期工作



我有这样的数据从SQL查询返回:

REF   ORDER   R_UNITS   R_STOCK   COMPONENT
-------------------------------------------
TOY1   SP1      500       350      BLISTER
TOY1   SP2      400       350      BLISTER    
TOY1   SP3      100       350      BLISTER    
TOY2   SP1      200       200      BLISTER   
TOY2   SP4      300       200      BLISTER    
TOY3   SP1      600       300      BLISTER     
TOY3   SP1      400       300        BOX

我想把它透视到Excel数据透视表中:

FILTER ORDER: ALL
COMPONENT   R_UNITS   Σ R_STOCK
BLISTER      2100        850  
BOX          400         300    

R_STOCK应该遍历数据,并根据唯一的REF值总结结果。

我尝试了这个DAX公式:

Σ R_STOCK:=SUMX(DISTINCT(Table6[REF]),AVERAGE(Table6[REF STOCK]))

但是,它不是汇总BLISTER的每个唯一值(300+350+200=850),而是对所有行的总数进行平均,然后将结果乘以唯一值的数量:(350+350+350+200+200+300)/6*3=875

我如何修正我的DAX公式?

Thank you very much

我认为我们需要使用SUMMARIZE来获得REF和REF STOCK的不同对,然后添加REF STOCK。我还将添加一个过滤器修饰符,以删除除COMPONENT

上的过滤器之外的任何可能的过滤器。
R_STOCK :=
CALCULATE(
    SUMX( SUMMARIZE( Table6, Table6[REF], Table6[REF STOCK] ), Table6[REF STOCK] ),
    ALLEXCEPT( Table6, Table6[COMPONENT] )
)

你可以尝试这样做

Σ R_STOCK :=
VAR __WithAverages =
    ADDCOLUMNS (
        DISTINCT ( Table6[REF] ),
        "@AverageStock", CALCULATE ( AVERAGE ( 'Table6'[R_STOCK] ) )
    )
RETURN
    SUMX ( __WithAverages, [@AverageStock] )

最新更新