PowerBI可视化实战:商品销售动态ABC分析案例
在开始动手制作案例之前,大家首先跟随小黎子来一起了解商品销售中的ABC分析的定义。
1.商品销售ABC分析法是以商品销售为主线将商品划分为A、B、C类,商品销售从高到低,累计占比0至50%为A类商品,50%-90%为B类商品,90%-100%为C类商品
2.商品销售ABC分析法又称巴雷托分析法,它是根据事物在技术或经济方面的主要特征,进行分类排队,分清重点和一般,从而有区别地确定管理方式的一种分析方法。由于它把被分析的对象分成A、B、C三类,所以又称为ABC分析法。
3. 商品销售ABC分析法可以完成整体宏观分析要求,也可以满足单品的销售、毛利、成本、笔数等的分析和操作需求。
该模型是基于KSOA时空医药软件的数据库建立的销售ABC分析模型,本案例中无法提供给大家医药数据源。大家可以通过小黎子数据分析公众号回复【销售】获取销售数据源进行学习了解。我们首先来看一下商品动态ABC分析中的构成元素:
1、分析指标、分析维度、元素名称都是我们可以自由选择的要被分析的对象,可以动态选择在右下角显示分析曲线
2、动态设置ABC参数的相对大小,可以通过调节ABC的参数大小来结合企业实际的分类占比进行分析商品
3、ABC分类总价值占比和全动态ABC分析都是展现最终结果的图表
接下来我们来看看是如何制作的。
一、处理需要的维度表和事实表
1、维度表:商品档案、日期
2、事实表:销售数据
二、处理需要分析的维度和指标公式信息
商品档案维度:商品类型、商品一级分类、商品二级分类、剂型、生产厂商、主治功能
销售指标:销售笔数、销售成本、销售金额、销售毛利
动态设置ABC参数
ABC元素价值指标处理
1、商品档案维度信息处理
实现动态ABC分析,就需要从商品档案中动态提取ABC元素。具体公式如下:
维度_ABC元素 =
VAR Products1 = SELECTCOLUMNS( ADDCOLUMNS( DISTINCT( '维度_商品档案'[主治功能] ) , "元素类型" , "主治功能" ) , "元素名称" , [主治功能] , "元素类型" , [元素类型] )
VAR Products2 = SELECTCOLUMNS( ADDCOLUMNS( DISTINCT( '维度_商品档案'[商品一级分类] ) , "元素类型" , "商品一级分类" ) , "元素名称" , [商品一级分类] , "元素类型" , [元素类型] )
VAR Products3 = SELECTCOLUMNS( ADDCOLUMNS( DISTINCT( '维度_商品档案'[商品二级分类] ) , "元素类型" , "商品二级分类" ) , "元素名称" , [商品二级分类] , "元素类型" , [元素类型] )
VAR Products4 = SELECTCOLUMNS( ADDCOLUMNS( DISTINCT( '维度_商品档案'[商品类型] ) , "元素类型" , "商品类型" ) , "元素名称" , [商品类型] , "元素类型" , [元素类型] )
VAR Products5 = SELECTCOLUMNS( ADDCOLUMNS( DISTINCT( '维度_商品档案'[剂型] ) , "元素类型" , "剂型" ) , "元素名称" , [剂型] , "元素类型" , [元素类型] )
VAR Products6 = SELECTCOLUMNS( ADDCOLUMNS( DISTINCT( '维度_商品档案'[生产厂商] ) , "元素类型" , "生产厂商" ) , "元素名称" , [生产厂商] , "元素类型" , [元素类型] )
RETURN UNION( Products1,Products2,Products3,Products4,Products5,Products6 )
2、销售指标信息处理
销售指标是直接填写的ABC指标分类,在表中直接输入指标信息和排序即可
销售金额公式:销售金额 = SUM('事实_销售数据'[实收金额])
销售毛利公式:销售毛利 = SUM('事实_销售数据'[毛利])
销售笔数公式:销售笔数 = DISTINCTCOUNT('事实_销售数据'[单据编号])
销售成本公式:销售成本 = SUM('事实_销售数据'[成本金额])
销售指标自动选择切换
销售 指标 自动 =
SWITCH( TRUE() ,
SELECTEDVALUE( '维度_ABC指标分类'[指标名称] ) = "销售金额" , [销售金额] ,
SELECTEDVALUE( '维度_ABC指标分类'[指标名称] ) = "销售毛利" , [销售毛利] ,
SELECTEDVALUE( '维度_ABC指标分类'[指标名称] ) = "销售笔数" , [销售笔数] ,
SELECTEDVALUE( '维度_ABC指标分类'[指标名称] ) = "销售成本" , [销售成本] ,
[销售金额] // as default
)
3、动态ABC参数设置
首先我们需要输入ABC分类表
在通过公式生成参数A\B\C
参数 ABC A = GENERATESERIES(0, 100, 1)
参数 ABC B = GENERATESERIES(0, 100, 1)
参数 ABC C = GENERATESERIES(0, 100, 1)
4、ABC元素指标价值处理
ABC 元素 价值 =
VAR ItemRelationOfCustomer1 = TREATAS( VALUES( '维度_ABC元素'[元素名称] ) , '维度_会员'[性别] )
VAR ItemRelationOfCustomer2 = TREATAS( VALUES( '维度_ABC元素'[元素名称] ) , '维度_会员'[年龄 (组)] )
VAR ItemRelationOfProduct = TREATAS( VALUES( '维度_ABC元素'[元素名称] ) , '维度_商品档案'[商品类型] )
VAR ItemRelationOfProduct2 = TREATAS( VALUES( '维度_ABC元素'[元素名称] ) , '维度_商品档案'[主治功能] )
VAR ItemRelationOfProduct3 = TREATAS( VALUES( '维度_ABC元素'[元素名称] ) , '维度_商品档案'[商品一级分类] )
VAR ItemRelationOfProduct4 = TREATAS( VALUES( '维度_ABC元素'[元素名称] ) , '维度_商品档案'[商品二级分类] )
VAR ItemRelationOfProduct5 = TREATAS( VALUES( '维度_ABC元素'[元素名称] ) , '维度_商品档案'[剂型] )
VAR ItemRelationOfProduct6 = TREATAS( VALUES( '维度_ABC元素'[元素名称] ) , '维度_商品档案'[生产厂商] )
RETURN
SWITCH( TRUE() ,
SELECTEDVALUE( '维度_ABC元素'[元素类型] ) = "性别" ,
CALCULATE( [销售 指标 自动] , ItemRelationOfCustomer1 ) ,
SELECTEDVALUE( '维度_ABC元素'[元素类型] ) = "年龄 (组)" ,
CALCULATE( [销售 指标 自动] , ItemRelationOfCustomer2 ) ,
SELECTEDVALUE( '维度_ABC元素'[元素类型] ) = "商品类型" ,
CALCULATE( [销售 指标 自动] , ItemRelationOfProduct ) ,
SELECTEDVALUE( '维度_ABC元素'[元素类型] ) = "主治功能" ,
CALCULATE( [销售 指标 自动] , ItemRelationOfProduct2 ) ,
SELECTEDVALUE( '维度_ABC元素'[元素类型] ) = "商品一级分类" ,
CALCULATE( [销售 指标 自动] , ItemRelationOfProduct3 ) ,
SELECTEDVALUE( '维度_ABC元素'[元素类型] ) = "商品二级分类" ,
CALCULATE( [销售 指标 自动] , ItemRelationOfProduct4 ) ,
SELECTEDVALUE( '维度_ABC元素'[元素类型] ) = "剂型" ,
CALCULATE( [销售 指标 自动] , ItemRelationOfProduct5 ) ,
SELECTEDVALUE( '维度_ABC元素'[元素类型] ) = "生产厂商" ,
CALCULATE( [销售 指标 自动] , ItemRelationOfProduct6 ) ,
BLANK()
)
ABC 元素 价值 占比 =
VAR Items = CALCULATETABLE( DISTINCT( '维度_ABC元素'[元素名称] ) , ALLSELECTED( '维度_ABC元素'[元素名称] ) )
VAR Total = CALCULATE( [ABC 元素 价值] , Items )
VAR CurrentItemValue = [ABC 元素 价值]
RETURN DIVIDE( CurrentItemValue , Total )
ABC 元素 价值 占比 按分类 =
IF( SELECTEDVALUE( '维度_ABC分类'[ABC分类名称] ) = [ABC 元素 所属分类] , [ABC 元素 价值 占比] , BLANK() )
ABC 元素 价值 累计占比位 =
VAR Items = CALCULATETABLE( DISTINCT( '维度_ABC元素'[元素名称] ) , ALLSELECTED( '维度_ABC元素'[元素名称] ) )
VAR Total = CALCULATE( [ABC 元素 价值] , Items )
VAR CurrentItemValue = [ABC 元素 价值]
VAR CumulativeValue = CALCULATE(
[ABC 元素 价值] , FILTER( Items , [ABC 元素 价值] >= CurrentItemValue )
)
RETURN DIVIDE( CumulativeValue , Total )
ABC 元素 价值 累计占比位 按分类 =
IF( SELECTEDVALUE( '维度_ABC分类'[ABC分类名称] ) = [ABC 元素 所属分类] , [ABC 元素 价值 累计占比位] , BLANK() )
ABC 参数 A = [参数 ABC A 值] / ( [参数 ABC A 值] + [参数 ABC B 值] + [参数 ABC C 值] )
ABC 参数 B = ( [参数 ABC A 值] + [参数 ABC B 值] ) / ( [参数 ABC A 值] + [参数 ABC B 值] + [参数 ABC C 值] )
ABC 参数 占比 =
SWITCH( TRUE() ,
SELECTEDVALUE( '维度_ABC分类'[ABC分类名称] ) = "A" , [参数 ABC A 值] / ( [参数 ABC A 值] + [参数 ABC B 值] + [参数 ABC C 值] ) ,
SELECTEDVALUE( '维度_ABC分类'[ABC分类名称] ) = "B" , [参数 ABC B 值] / ( [参数 ABC A 值] + [参数 ABC B 值] + [参数 ABC C 值] ) ,
SELECTEDVALUE( '维度_ABC分类'[ABC分类名称] ) = "C" , [参数 ABC C 值] / ( [参数 ABC A 值] + [参数 ABC B 值] + [参数 ABC C 值] ) ,
BLANK()
)
ABC 元素 所属分类 =
VAR CurrentItemCumulativePrecent = [ABC 元素 价值 累计占比位]
RETURN SWITCH( TRUE() ,
CurrentItemCumulativePrecent >= [ABC 参数 B] , "C" ,
CurrentItemCumulativePrecent >= [ABC 参数 A] , "B" ,
"A"
)
ABC 类别 价值 =
VAR CurrentABCCategory = SELECTEDVALUE( '维度_ABC分类'[ABC分类名称] )
VAR Items = CALCULATETABLE( DISTINCT( '维度_ABC元素'[元素名称] ) , ALLSELECTED( '维度_ABC元素'[元素名称] ) )
RETURN CALCULATE( [ABC 元素 价值] , FILTER( Items , [ABC 元素 所属分类] = CurrentABCCategory ) )
ABC 类别 价值 占比 = DIVIDE( [ABC 类别 价值] , CALCULATE( [ABC 元素 价值] , ALLSELECTED( '维度_ABC元素'[元素名称] ) ) )
三、制作前端可视化报告
1、分析指标切片器:直接勾选维度_ABC指标分类中的指标名称即可,切片器样式选择下拉
2、动态设置ABC参数的相对大小切片器:直接分别勾选参数ABC A、参数ABC B或者参数ABC C。切片器样式上开启滑块
3、分析维度切片器:直接勾选维度_ABC元素中的元素类型,切片器样式选择下拉
4、元素名称切片器:直接勾选维度_ABC元素中的元素名称,切片器样式选择列表
5、ABC分类总价值占比:选择条形图,勾选维度_ABC分类中的ABC分类名称
6、全动态ABC分析是本文核心的展现区域,它主要通过折线和柱状图来实现的效果。
四、总结
本文中制作商品动态销售ABC分析法的关键就是在于滚动计算要分析的指标,也可以灵活的使用要分析的维度信息。当然本文中还缺少了时间维度的切片设置,大家可以根据实际的情况进行加上时间切片器即可。文中的小黎子并没有非常仔细的去描述细节,对于学习的新手来说可能比较复杂一点。当然大家在制作过程中遇到任何问题欢迎联系小黎子,我们一起成长。该项目使用的用友时空的数据源,涉及用户信息不方便分享。大家如果手上没有数据源可以通过回复客户分析报告获取示例数据源练手。最终我们实现的效果如下:
PowerBI可视化实战:商品销售动态ABC分析案例相关推荐
- 数据挖掘实战—商品零售购物篮分析
文章目录 引言 一.数据探索性分析 1.数据质量分析 1.1 缺失值分析 1.2 异常值分析 1.3 重复数据分析 2.数据特征分析 2.1 描述性统计分析 2.2 分布分析 2.2.1 商品热销情况 ...
- python数据分析与挖掘实战(商品零售购物篮分析)
一.引言 购物篮分析是商业领域最前沿.最具挑战性的问题之一,也是许多企业重点研究的问题.购物篮分析是通过发现顾客在一次购买行为中放入购物篮中不同商品之间的关联,研究顾客的购买行为,从而辅助零售企业制定 ...
- 基于LVD、贝叶斯模型算法实现的电商行业商品评论与情感分析案例
文章目录 一. 项目需求 1.1 语言处理相关库(snownlp,jieba,gensim) 1.2 LDA主题模型 1.3 相关模型的比较 二.代码: 2.1 导入数据-评论提取-文本去重 2.2 ...
- es实战-Monitoring原理讲解及kibana可视化实战
实战结合官方文档进行学习效果更佳,可以参考本人另一篇简书-官方文档-监控集群(Monitor)翻译. Monitoring学习方法:在官方文档与源码阅读基础之上进行实战操作. 1 Monitoring ...
- 用户行为分析案例——天池数据集User Behavior Data from Taobao
用户行为分析过程 说明 一.数据集与分析目的 1.数据集 2.分析目的 二.数据处理 1.数据预览 2.数据处理 三.数据提取与分析 1.网站流量分析 2.用户分析 3.商品销售分析 四.总结 1.关 ...
- python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
一.项目介绍 python商品评论数据采集与分析可视化系统 Flask框架.MySQL数据库. requests爬虫.可抓取指定商品评论.Echarts可视化.评论多维度分析.NLP情感分析.LDA主 ...
- 数据分析实战二:爬取淘宝商品详情页进行分析
对淘宝商品信息进行数据分析 项目流程: 1.数据获取 2.数据清洗 3.数据分析与可视化 数据获取(爬虫) 淘宝数据是通过动态加载的方式显示的,所以采用selenium模拟浏览器操作爬取商品页详情信息 ...
- 基于 Python 的大型超市商品销售关联度分析系统
温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目背景 本项目通过对数据挖掘领域中的关联规则经典算法Apriori,运用关联规则对某大型超市超市的部分数据进 ...
- 基于Power BI的终端产品销售ABC分析
一.原理 ABC分析,是由帕累托法则演化而来,一般认为A类产品带来70%的收入,B类产品带来20%的收入,C类产品带来10%的收入,所以ABC分析又称70/20/10分析. 二.数据源 某终端< ...
- python爬取淘宝商品做数据挖掘_Python 3爬虫 数据清洗与可视化实战 Python数据抓取技术 python3网络爬虫教程书籍 运用Python工具获取电商平台页面数据挖掘书籍...
A8 书 名:Python 3爬虫 数据清洗与可视化实战 作 译 者:零一,韩要宾,黄园园 出版时间:2018-03 千 字 数:200 版 次:01-01 页 数:212 开 ...
最新文章
- mysql 的select语句_MySQLSELECT语句_MySQL
- POJ1466 最大点权独立集
- 【机器学习基础】Self-Supervised Learning入门介绍
- 组成原理----存储管理
- Java正则之Unicode属性匹配的那些事
- 【Modelsim】下载安装教程
- Ubuntu环境下远程调试Android手机设备
- Java中抽象类和接口的区别
- mysql 参照完整性规则_mysql数据的完整性约束(完整)
- 编程求E1+E2+…+E100的值​
- HTML中的botton type=reset标签失效(不起作用)的可能原因。
- linux同步clock和date,liunx时钟与同步
- 2021正睿noip十连day2
- Java 五子棋(一)绘制棋盘、棋子
- latex里图片大小如何调整_怎样用latex修改插入图形的大小,使图形大小一致。...
- Mac 如何在终端打开文件.md
- el-table 怎么合并相同单元格
- java的mysql语句规范_mysql 规范
- 最全的博客、网站提交入口(备用)
- 晨风机器人发送图片_晨风机器人基本使用说明