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 ...
随机推荐
- mian中的argv调用时为什么不是*argv
c++main函数char * argv[]是个指针数组,元素是指针,为何argv[1]得到不是地址? 照我的理解char *argv[]保存的应该是一组指针,即地址,每个地址中保存的是char类型变 ...
- 推荐简约漂亮的小程序插件 calendar
公司团队制作,主要用于内部使用,觉得这个感觉不错,所以推荐出来,让大家试试~ 日历功能 日历基本功能,自定义样式 先睹为快 使用方法: 1. 在微信小程序管理后台--设置--第三方服务,按 AppID ...
- MEVN 架构(MongoDB + Express + Vue + NODEJS)搭建
一个完整的网站服务架构包括:1.web frame ---这里应用express框架2.web server ---这里应用nodejs3.Database ---这里应用monggoDB4.前端展示 ...
- ajax遍历list数据解决方法
在使用ajax遍历后台传来的list的时,总是遍历不出来,明明在控制台可以打印出来,但就是遍历不出来 之后发现是忘了加一个 dataType: "json" 导致遍历不出来
- Native方法的使用
Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能. 可以将 ...
- DWRUtil.addOptions
DWRUtil.addOptions有5种模式 数组: DWRUtil.addOptions(selectid, array) 会创建一堆option,每个option的文字和值都是数组元素中的值. ...
- 支付宝小程序中“<”号写法
今天遇到一个小问题,记录一下 "<"号在h5页面都是可以直接显示的,但是在运行支付宝小程序时报错,找了一个解决办法 <text> {{char_lt}} 18.5 ...
- 【.NET 6】使用EF Core 访问Oracle+Mysql+PostgreSQL并进行简单增改操作与性能比较
前言 唠嗑一下.都在说去O或者开源,但是对于数据库选型来说,很多人却存在着误区.例如,去O,狭义上讲,是去Oracle数据库.但是从广义上来说,是去Oracle公司产品或者具有漂亮国垄断地位和需要商 ...
- [ Skill ] 为什么 Lisp 语言如此先进
https://www.cnblogs.com/yeungchie/ 网上看到一个应该是 2002 年的文章 译文转自:为什么Lisp语言如此先进?(译文) - 阮一峰的网络日志 原文地址:Reven ...
- Windows 10搭建FTP服务器
1 开启FTP服务 控制面板 -> 程序和功能 -> 启用或关闭Windows功能 找到下面选项的勾选 2 添加FTP站点 在开始菜单里面输入 IIS 搜索并打开 IIS管理器 展开左侧菜 ...

