赠送 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[[[[@](https://pbihub.cn/users/14459)](https://pbihub.cn/users/2220)](https://pbihub.cn/users/1661)](https://pbihub.cn/users/1293)qq.com
'3、博客:www.jiaopengzi.com
'4、CPU:Intel(R) Core(TM) i7-8750H CPU [[[[@](https://pbihub.cn/users/14459)](https://pbihub.cn/users/2220)](https://pbihub.cn/users/1661)](https://pbihub.cn/users/1293) 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 焦棚子
焦棚子的文章目录