148_赠送300家门店260亿销售额的零售企业Power BI实战示例数据
一背景
2022年即将到来之际,笔者准备在Power BI中做一个实战专题,作为实战专题最基础的就是demo数据,于是我们赠送大家一个300家门店,260亿+销售额,360万行+的零售企业Power BI实战示例数据作为开胃菜。后续我们围绕这个数据展开Power BI实战的交流,请关注后续文章。先看看数据规模。
附件下载地址:https://jiaopengzi.com/1435.html
demo展示链接(用户名:pbirs,密码:pbirs):https://jiaopengzi.com/go/148/
二、Power BI demo data介绍
Ⅰ、数据表
如下每个表其实都是一个非常重要的点,在后续的专题中会展开来讲。
00_Measure
管理度量,我习惯用pq生成,没有那一列需要隐藏,看起来更清爽。想知道怎么做的吗。
01_Calendar
日期表在Power BI中是非重要的存在之一,同样如何构建一张符合自身业务的日期表是非常重要的。
想知道透视表中的FY字段有什么用吗?请查阅 https://jiaopengzi.com/996.html
02_Unit
单位表;如何设置好一个符合国人习惯的“万亿”为单位的切片器。
注意观察全局的单位显示,特别是工具提示中的单位显示。
单位:万亿,符合万就显示单位万,符合亿就是显示单位亿,万以下不显示单位。
单位:KMB,符合国际上通用的计数单位,K表示千,M表示百万,B表示10十亿。
单位:常规,按照最初写度量的时候的格式显示。
单位:万,所有单位都用万表示,万以下的不显示单位。
03_Hour
小时分段表,在本案例中暂时没有用到,在业务对时间有比天更细粒度中有使用,参考:https://jiaopengzi.com/244.html
04_MQHY
月度、季度、半年度、年度四个维度同时展示出来,参考:https://jiaopengzi.com/996.html
05_RefreshTime
刷新时间,这在报表展示中非常重要且必要。那个圆圈的刷新符号知道怎么写吗?
D00_大区表、D01_省份表、D02_城市表
大区,在很多业务场景中都有,同时也要结合城市和省份一起应用。我们把34个省级单位的数据都整理好了,可以直接拿来应用。同时给大家科普一下,我们拿到的坐标虽然是可以在地图上应用,但是不是实际的坐标,要防坏人哦。
大区
省份
城市
T00_产品表
产品表很好理解了,当然我们这的是demo数据,只截取了一部分字段。一般成本价是不会给到一线的,所以成本价的管理需要单独管理,在做BI的各位朋友要注意这些细节,别一个不小心你企业的核心机密就泄漏了。
T01_门店表
门店表,主要注意城市和门店的的匹配,在后续我们去研究日期的应用。
T02_客户表
客户表,我们这主要把客户分类和客户的生日拿出来了,后续做客户的相应分析客户用到,当然客户信息还有很多,以后在这方面一定要注意符合已经实施的《个人信息保护法》。这很重要。
T03_入库信息表
本来不想加入库信息,后来还是加进来了,库存在零售行业的也是非常重要的,同时在做Power BI的时候,我们要兼顾到功能和性能,给大家准备了139万行+数据,可以好好的玩一下。
T04_订单主表、T05_订单子表
订单主表40万行+主要围绕订单信息,订单子表142万行+主要围绕产品信息。
T06_销售目标表
销售目标表,或者说是销售预算表,按照基本逻辑是要细化到每个产品、每个店的粒度的,模拟写起来比较繁琐,索性在这里就简化到省一级,实际应用中是要结合业务的特性来做预算,是分析中很重要的一个分水岭。
Ⅱ、数据关系
有了一张张的数据表后,我们需要理顺最基本的的业务逻辑和数据逻辑,数据的关系连线就能很好的体现。同时一些特殊的关系连线也关系到后续的业务转化的DAX重要的支撑。
比如本文案例的销售模型里面,维度表、事实表、辅助表加起来就有15张。一张图来识别关系确实比较麻烦,所以我们把各个逻辑板块分开来间关系就很有必要。如下是我们分别按照几个业务逻辑来建立关系。
所有表
产品
组织
组织和时间的关系往往会有在筛选的重叠,这里需要特别主要到底谁是实线关系,谁是虚线关系。也要结合业务特性来定。
客户
日期
其他
MQHY已经在前文中介绍到了。
Ⅲ、编号的使用
不知道各位朋友是否注意到,为大家准备的这个数据,从表格名称到字段名称都是加了编号来命名的。在这里单独拿出来讲一下,从日常的工作中总结出来的,实际业务中的DAX度量多则上百个甚至更多。如果没有一个很好的命方式的话查找起来非常麻烦,同时在写新度量及应用的时候会非常痛苦。个人总结后更倾向于字母加编号来管理;这个好处谁用谁知道。当然文件夹这些根据自身的需求对管理DAX度量也是很有帮助的。
Ⅳ、数据如何构建的
虽然看到名字很唬人,几百个亿的销售额。其实这个数据是笔者根据自身工作经历抽象业务然后生成的模拟数据。以上数据如有雷同纯属巧合。数据用VBA写的,依赖Access完成,VBA的bas文件我也放在附件中赠送个大家。大家拿到可以修改相应参数,在非常短的时间就能生成一个demo数据,演示的时候很方便。
Attribute VB_Name = "demo_jiaopengzi_data"
Option Compare Database
Option Explicit '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'1、作者:焦棚子
'2、邮箱:jiaopengzi@qq.com
'3、博客:www.jiaopengzi.com
'4、CPU:Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz 2.21 GHz
'5、内存:RAM 24.0 GB
'6、电脑配置 + N1=300的配置:大约需要800秒,每秒按照业务逻辑生成约4500行数据;构成360+万行demo数据,基本满足实战学习所用。
'===================================================================================== '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'数据配置,代码行数1850行。
Public Const N1 As Long = 5 '门店数量;建议N1∈[5,390]。
'01、NewData 配置好上述三个参数后,调用所有函数生成demodata数据,建议第一次尝试按照 N1=5,大约20秒。
'02、TableNameN 所有表的命名管理。
'03、SqlCN 创建所有的sql。
'04、SqlDN 删除所有表的sql。
'05、TableADO ADO创建表。
'06、DataTableD0 生成大区表。
'07、DataTableD1 生成省份表。
'08、DataTableD2 生成城市表。
'09、DataTableT0 生成产品表。
'10、DataTableT1 生成客户表,与N1相关。
'11、DataTableT2 生成客户表。
'12、DataTableT345 生成入库表、订单主表、订单子表。
'13、DataTableT6 生成销售目标表。
'14、FirstName 生成随机姓名的名。
'17、LastName 生成随机姓名的姓
'16、AddressProvince 所有省区数据,包含名称,坐标等。
'17、AddressCity 所有地市数据,包含名称,坐标等。
'===================================================================================== Public Function NewData() Dim t As Double
t = Timer
Dim i As Long For i = 0 To 9
Call TableADO(TableNameN(i), SqlDN(i), SqlCN(i))
Next Call DataTableD0
Call DataTableD1
Call DataTableD2
Call DataTableT0
Call DataTableT1
Call DataTableT2
Call DataTableT345
Call DataTableT6 Application.RefreshDatabaseWindow
MsgBox "完成,用时:" & Round(Timer - t, 2) & "秒!" End Function
源码地址:https://jiaopengzi.com/1435.html
三、彩蛋
Ⅰ、赠送官方文档pdf文件
最近微软的官方文档都取消了pdf下载功能,笔者在10月份的时候已经下载了:DAX官方文档(621页)和Power Query官方文档(997页),在附件中一并送给大家,也可以在微信公众号中回复:demo148获取。
Ⅱ、免版权图片
关于免版权的图片,大家可以在这个网站(https://generated.photos/)上去找一下。本案例的头像也会随附件送个大家。也可以引用我放在网站上的地址,把数字更换成1到6即可。记住他们的名字哦。
https://jiaopengzi.com/pbirsdemo/idphoto/1.png
by焦棚子
148_赠送300家门店260亿销售额的零售企业Power BI实战示例数据的更多相关文章
- 自动贩卖机VS无人门店:谁是真正的零售新风口?
原本在线上不断发力,让实体店几乎凋敝的电商,却忽然对线下兴趣大增.阿里疯狂入股.收购线下商超:京东要在全国范围内开设百万家便利店,仅在农村就将开设50万家--这一股浪潮,或将直接改变整个百货零售 ...
- 【RPA之家转载】苏桦 华为RPA 企业财务实践:RPA与AI结合,实现百万级票据、合同处理自动化
[RPA之家转载]苏桦 华为RPA 企业财务实践:RPA与AI结合,实现百万级票据.合同处理自动化 看到大会的主题,说每一位开发者都了不起,说白了我也非常的感触,因为我自己本身也是一个开发者,我从01 ...
- (转)Salesforce的440亿美金并购宣告企业软件市场进入3.0互联网化时代
导语:Salesforce代表着“移动+云”时代企业软件领域新的架构和商业模式的颠覆者.企业软件转向“移动+云”架构,将极大改变传统企业IT市场的格局…… 近期一则新闻极大的刺激了企业软件市场的神经, ...
- 市值3万亿的facebook再出丑闻,你的数据,到底应该归谁?
最近一则<Facebook隐私泄露事件继续发酵,黑客明码标价出售聊天信息>的新闻被爆出,一个用户的信息被标价10美分.让人不禁感慨,3万亿市值的facebook,用户数据竟然如此便宜. 在 ...
- BI案例:BI在连锁零售业应用(ZT)【转】
第一部分:连锁零售企业上BI的必要性. 目前国内的连锁零售行业的发展趋势,呈现出产业规模化,经营业态多样化,管理精细化的特点.所谓管理精细化就是"精耕细作搞管理,领先一步订系 统" ...
- BI案例:BI在连锁零售业应用(ZT)
第一部分:连锁零售企业上BI的必要性. 目前国内的连锁零售行业的发展趋势,呈现出产业规模化,经营业态多样化,管理精细化的特点.所谓管理精细化就是"精耕细作搞管理,领先一步订系统". ...
- BI在连锁零售业应用
BI案例:BI在连锁零售业应用(ZT) Posted on 2015-08-25 09:31 xuzhengzhu 阅读(42) 评论(0) 编辑 收藏 第一部分:连锁零售企业上BI的必要性. 目前国 ...
- O2O外卖玩众包 开放平台难解标准之痛
开放平台难解标准之痛" title="O2O外卖玩众包 开放平台难解标准之痛"> 有一种怪现象一直是国内互联网企业摆脱不了的附骨之疽--不管规模大小,总是削尖了脑 ...
- SQL Server 2016五大优势挖掘企业用户数据价值
SQL Server 2016五大优势挖掘企业用户数据价值 转载自:http://soft.zdnet.com.cn/software_zone/2016/0318/3074442.shtml 3月1 ...
随机推荐
- C++ | 虚函数表内存布局
虚表指针 虚函数有个特点.存在虚函数的类会在类的数据成员中生成一个虚函数指针 vfptr,而vfptr 指向了一张表(简称,虚表).正是由于虚函数的这个特性,C++的多态才有了发生的可能. 其中虚函数 ...
- html 元素 强制不换行
html 中 nowrap是用来强制不换行的 在排版中 对包裹plain text的标签使用nowrap属性即刻实现强制不换行. 如:<p nowrap>强制不换行</p>&l ...
- python-你好
你的程序会读入一个名字,比如John,然后输出"Hello John". 输入格式: 一行文字. 输出格式: 一行文字. 输入样例: Mary Johnson 输出样例: Hell ...
- python-使用函数求余弦函数的近似值
本题要求实现一个函数,用下列公式求cos(x)近似值,精确到最后一项的绝对值小于eps(绝对值小于eps的项不要加): cos(x)=0!x0−2!x2+4!x4−6!x6+... 函数接口定 ...
- 《头号玩家》AI电影调研报告(三)
[AR市场正在迅猛增长] 据<工业增强现实现状2017>报告中所述,AR不再只是值得期待的新兴技术.2018年,投资此类技术已成为很多组织机构的关键战略,尤其是对于涉及复杂的制造和运营流程 ...
- python安全脚本
漏洞及渗透练习平台 WebGoat漏洞练习平台: https://github.com/WebGoat/WebGoat webgoat-legacy漏洞练习平台: https://github.com ...
- Jquery_HTML-对HTML内容删除添加、操作CSS改变样式、遍历定位元素
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...
- marginStart marginEnd就关于上述两个用法展开讨论
在我还在手动调整两个控件距离时,第一次见识到了marginStart marginEnd两个用法, 但是,只知道它俩能够调整控件距离,但是不知道具体用法,老师也没细说,就这样开启了我对于这两个用法&q ...
- 攻防世界-MISC:can_has_stdio?
这是攻防世界MISC高手进阶区的题目,题目如下: 点击下载附件一,解压后得到一个txt文件,打开后内容如下: 根据百度搜索的结果可知这是一种叫做BrainFuck的语言,BrainFuck是由Urba ...
- 攻防世界-MISC:坚持60s
这是攻防世界新手练习区的第六题,题目如下: 点击附件1下载,是一个java文件,点击运行一下: 绿帽子满天飞不知道是怎么回事(还是老老实实去看WP吧),WP说这是编译过的Java代码,但我手里没有反编 ...