暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

两种方法教你在Power BI中实现不同类别下的TOPN产品的计算

PowerBI Home 2021-08-19
1915

小伙伴,大家好!今天给大家分享的是如何在Power BI中实现不同类别下的TOPN产品的计算,这类计算并不复杂,也有很多博主写过文章,今天小编给大家介绍两个方法来实现,顺便对比下两个方法的performance。


首先,还是看下最后的实现效果吧,话不多说,直接上图!

解决方案一:只需要用一个度量值即可实现,先用ISINSCOPE对产品名称进行判断,如果True则计算排名。ALLSELECTED在这作为筛选调节器,规避product name的筛选。返回的结果还需要在筛选器对度量值进行筛选(具体如下图)

    销售排名 =
    IF (
    ISINSCOPE ( 'Product'[Product Name] ),
    RANKX (
    CALCULATETABLE (
    VALUES ( 'Product'[Product Name] ),
    ALLSELECTED ( 'Product'[Product Name] )
    ),
    [Sales Amount]
    )
    )


    解决方案二:需要用到多个判断和两个度量值(注意:第二种方法的汇总值是有问题的,这里未作优化处理,并不是计算有问题,大家可以考虑下如何优化,作为一个思考题。)

      销售额= 
      IF (
      IF (
      HASONEVALUE ( 'Product'[Product Name] ),
      RANKX ( ALL ( 'Product'[Product Name] ), [Sales Amount] ),
      BLANK ()
      ) <= 3,
      [Sales Amount],
      BLANK ()
      )




      销售额排名=


      IF
      ( IF (
      HASONEVALUE ( 'Product'[Product Name] ),
      RANKX ( ALL ( 'Product'[Product Name] ), [Sales Amount] ),
      BLANK ()
      )<=3,
      IF(HASONEVALUE('Product'[Product Name]),RANKX ( ALL ( 'Product'[Product Name] ), [Sales Amount] ),BLANK())


      ,BLANK())


      至于两个方案的performance,由于数据量不大看不到很明显的差异,

      如下分别是方案1和方案2的性能测试。

      红色是方案1,绿色方案2

      需要演示案例可以私信:18923468365

      文章转载自PowerBI Home,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论