Power BI(二十)power pivot之Earlier函数 - DAX进阶的里程碑

Power BI(二十)power pivot之Earlier函数 - DAX进阶的里程碑

Earlier函数之累计求和、累计百分比

帕累托法则往往称为二八原理,即百分之八十的问题是百分之二十的原因所造成的。在帕累托图中,不同类别的数据根据其频率降序排列的,并在同一张图中画出累积百分比图。帕累托图可以体现帕累托原则:数据的绝大部分存在于很少类别中,极少剩下的数据分散在大部分类别中。这两组经常被称为“至关重要的极少数”和“微不足道的大多数”。帕累托图能区分“微不足道的大多数”和“至关重要的极少数”,从而方便人们关注于重要的类别。

拥有的数据如下:(销售金额必须是降序排列)

假如不使用Earlier函数,客户使用传统的方法

累积=SUM($B$2:B2)

累计百分比==E2/MAX(E:E)

生成帕累托图

但是我们知道这些都是手动的,源数据一变动往往需要重新弄一遍,所以我们使用Earlier函数

为什么使用Earlier函数呢?大家可以看一下原excel表中,每一列的计算公式都是不一样的,然而power

 pivot的计算列是写好直接就应用到整列,所以不使用Earlier函数就做不到不同行不同计算公式的效果

 

累计销售金额=SUMX(FILTER('产品销售表2',EARLIER('产品销售表2'[销售金额])<='产品销售表2'[销售金额]),'产品销售表2'[销售金额])

理解:

EARLIER('产品销售表2'[销售金额])<='产品销售表2'[销售金额])

可以理解成筛选原表这一行的销售金额小于等于虚拟表(与产品销售表2一样的表)的销售纪录的所有记录

累积百分比='产品销售表2'[累积销售金额]/SUMX('产品销售表2','产品销售表2'[销售金额])

%='产品销售表2'[累积销售金额]/SUMX(ALL('产品销售表2'),'产品销售表2'[销售金额])

生成帕累托图

 

Earlier函数进行排名

数据必须为升序或则降序

计算列

训练的排名=COUNTROWS(FILTER('产品销售表',EARLIER('产品销售表'[销售金额])<'产品销售表'[销售金额]))+1

我们也可以使用rankx函数

=RANKX('产品销售表','产品销售表'[销售金额])

 

Earlier函数区分新老客户

我们的思路就是假如这笔订单下单日期之前客户有存在过消费金额,则这条客户就是老客户

新增计算列

区分新老客户=IF(SUMX(FILTER('销售记录',EARLIER([下单日期])>'销售记录'[下单日期]&&EARLIER([客户ID])='销售记录'[客户ID]),'销售记录'[金额])>0,"老客户","新客户")


版权声明:本文为LuYi_WeiLin原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。