首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算生成表- DAX的列和

计算生成表- DAX的列和
EN

Stack Overflow用户
提问于 2019-06-26 14:24:29
回答 1查看 191关注 0票数 0

我一直在尝试使用DaxStudio获取下表的列DaxStudio的和,以便将其放在PowerBI上是可以的,因为如果测试大型计算表的代码,则PBI可能会变慢。

来自DaxStudio的表

代码语言:javascript
复制
   BU              VALUE    
   ------------------------
   FOODS            0.0000
   FIBI             0.0000
   GEOS/CIS         0.7300
   CASC 
   S_S  
   SGS  
   COCOA    
   COCOA/SSSA   
   CORPORATE    
   N/A  
   CIS  

其背后的代码:

代码语言:javascript
复制
DEFINE
    VAR TOTAL =
        CALCULATE (
            SUMX (
                PACKAGING_POWERBI_YEARLY_2;
                PACKAGING_POWERBI_YEARLY_2[QUANTIDADE_ANTERIOR]
            );
            FILTER (
                PACKAGING_POWERBI_YEARLY_2;
                PACKAGING_POWERBI_YEARLY_2[DATE] = "2018"
                    && PACKAGING_POWERBI_YEARLY_2[CODIGO] = "43130"
            )
        )
EVALUATE
SUMMARIZE (
    CALCULATETABLE (
        FILTER (
            PACKAGING_POWERBI_YEARLY_2;
            PACKAGING_POWERBI_YEARLY_2[PRECO_PONDERADO] <> BLANK ()
                && PACKAGING_POWERBI_YEARLY_2[PRECO_PONDERADO] <> 0
        )
    );
    PACKAGING_POWERBI_YEARLY_2[BU];
    "VALUE"; FORMAT (
        (
            CALCULATE (
                SUMX (
                    PACKAGING_POWERBI_YEARLY_2;
                    PACKAGING_POWERBI_YEARLY_2[QUANTIDADE_ANTERIOR]
                );
                FILTER (
                    PACKAGING_POWERBI_YEARLY_2;
                    PACKAGING_POWERBI_YEARLY_2[DATE] = "2018"
                        && PACKAGING_POWERBI_YEARLY_2[CODIGO] = "43130"
                        && PACKAGING_POWERBI_YEARLY_2[PRECO_PONDERADO] <> BLANK ()
                )
            ) / TOTAL
        )
            * (
                CALCULATE (
                    SUMX ( PACKAGING_POWERBI_YEARLY_2; PACKAGING_POWERBI_YEARLY_2[PRECO_PONDERADO] );
                    FILTER (
                        PACKAGING_POWERBI_YEARLY_2;
                        PACKAGING_POWERBI_YEARLY_2[DATE] = "2018"
                            && PACKAGING_POWERBI_YEARLY_2[CODIGO] = "43130"
                            && PACKAGING_POWERBI_YEARLY_2[PRECO_PONDERADO] <> BLANK ()
                    )
                )
            );
        "0.0000"
    )
)

我不想生成表,我想要对列的结果进行求和,但是,绘制一个没有错误的结果的唯一方法是通过一个“计算表”(上面)。

我尝试的每一个过滤器都会导致错误。

这样做的目的是得到计算出的列之和。

代码语言:javascript
复制
   0.7300

但是我尝试的每一个简单的过滤器或SUMX条件,都会弹出一个错误。

EN

回答 1

Stack Overflow用户

发布于 2019-06-26 18:59:10

我想你可以把它清理干净,看上去像这样:

代码语言:javascript
复制
CALCULATE (
    SUMX (
        VALUES ( PACKAGING_POWERBI_YEARLY_2[BU] ),
        SUM ( PACKAGING_POWERBI_YEARLY_2[QUANTIDADE_ANTERIOR] )
            / CALCULATE (
                SUM ( PACKAGING_POWERBI_YEARLY_2[QUANTIDADE_ANTERIOR] ),
                ALL ( PACKAGING_POWERBI_YEARLY_2[BU] )
            )
            * SUM ( PACKAGING_POWERBI_YEARLY_2[PRECO_PONDERADO] )
    ),
    FILTER (
        PACKAGING_POWERBI_YEARLY_2,
        PACKAGING_POWERBI_YEARLY_2[DATE] = "2018"
            && PACKAGING_POWERBI_YEARLY_2[CODIGO] = "43130"
            && PACKAGING_POWERBI_YEARLY_2[PRECO_PONDERADO] <> BLANK ()
            && PACKAGING_POWERBI_YEARLY_2[PRECO_PONDERADO] <> 0
    )
)

它使用SUMX迭代每个BU值,并计算每个值。

代码语言:javascript
复制
(QUANTIDADE_ANTERIOR / Total QUANTIDADE_ANTERIOR ) * PRECO_PONDERADO

其中过滤器被重复使用而不是重复使用。

我不能保证这段代码完全按照预期工作,但是它应该为您指明一个更好的方向。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56775103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档