Power BI能否做帕累托分析
帕累托分析是一种将帕累托原则应用于数据的统计技术,通常被称为二八规则。帕累托原则基于这样的假设:相对较少的投入(20%)对结果/产出(80%)影响最大。例子包括:
• 其中20%的产品占销售额的80%
• 其中20%的客户占利润的80%
虽然它被称为二八规则,但结果通常不会完全以二八的比例出现。接近这个比例的任何东西都被认为是正常的。有了这些结果,我们可以将业务重点放在影响80%结果的20%的事情上。
在Power BI中,我们可以使用组合线和柱形图组成帕累托图。
在本文中,我将使用12%的产品贡献了业务总利润的80%的数据来测试。
帕累托图的度量
首先,我在Sales表中创建了3个度量。
• 总成本= SUM(销售额[TotalProductCost])
• 总销售额= SUM(销售额[ExtendedAmount])
• 总利润= [总销售额] - [总成本]
接下来,我需要编写一个度量标准来计算从最佳产品到最差产品的累计销售额百分比。这是一个比较难写的公式,我们在下面将会解释它的逻辑是怎么样的。
Cumulative % =
VAR thisProductMargin = [Total Margin]
VAR TotalMarginAllProducts =
CALCULATE ( [Total Margin], ALL ( Products ) )
RETURN
CALCULATE (
[Total Margin],
FILTER ( ALL ( Products ), [Total Margin] >= thisProductMargin )
) / TotalMarginAllProducts
在了解此公式的工作原理前,我们先参考下面显示的结果表,下图显示了产品代码,每种产品的总利润金额以及利润的累积百分比。请注意,该表按从最高利润到最低利润的降序排序。
第一行产品312,它的利润约为474,151美元,占所有产品总利润的4%。
现在,让我解释一下如何计算单行,查看选种红色突出显示的行 - ProductKey 363。
下表中突出显示的行将针对产品363进行过滤。这是表的行部分 - 它在计算度量之前过滤数据。
上述DAX中的第2行是变量。
上述DAX中的第4行非常简单。它使用CALCULATE删除产品363上的过滤器,以便计算所有产品的总利润。ALL功能删除产品上的所有过滤器。
该DAX主要还是看第10行。
• Filter是一个迭代器,它将逐步浏览产品表。
• 363上有一个过滤器,FILTER需要单步执行所有(产品)而不是产品。
• 然后,FILTER逐步检查产品表的未过滤副本,并逐个检查每个产品,以查看哪些产品的利润大于当前产品。当前产品是363。
• 如果FILTER到达利润大于产品363的产品,则保留该产品。
• FILTER继续根据此标准过滤每个产品。
• 在过滤过程结束时,仅保留总余量大于或等于被比较产品(在这种情况下为产品363)的产品。
• 然后计算所有这些产品的总利润。
• 最后,这个总数除以所有产品的总数。
然后,对于视觉中的每一行,一遍又一遍地重复该过程。
在Power BI中创建帕累托图表
如上所述,我们可以使用直线和柱形图来显示帕累托图。
• 将ProductKey放在共享轴上的Products表中。
• 将产品表中的累计放在行值上。
• 将总利润度量放在列值上。
• 根据总利润,降序排序对图表进行排序。
如上所示,这将按降序对图表中的列进行排序。
然后,我继续编写了一项措施来计算构成利润80%的产品数量。该DAX如下。
产品数量占利润的80%=
CALCULATE (DISTINCTCOUNT(Sales [ProductKey]),
FILTER(Products,[Cumulative %]<=0.8))
在图表中就显示80%的红色直线了。
技术交流
1.Power BI免费下载:http://www.yeacer.com/
Microsoft Power BI Desktop中文最新版:下载地址
2.欢迎加入的Power BI技术群,目前正在学习阶段,有兴趣的朋友可以一起学习讨论。
Power Data技术交流群:702966126 (验证注明:博客园Power BI)
更多精彩内容请关注微信公众号:悦策PowerBI
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,作者博客:https://www.cnblogs.com/yeacer/