我有这样的数据从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] )