2019-05-19

Excel+MySQL制作某餐饮公司销售分析仪

一,原始数据一共有3张表:

bill.png

order.png

shop.png

二,按照所给字段在MySQL中创建对应的表,并导入数据

use db2;
#创建Bill表
create table Bill(
    billdate date not null,
    billnumber varchar(20) not null default '-',
    shopname varchar(20) not null default '-',    
    billdiscount float not null default 0,
    paytime time not null,
    tablenumber int not null default 0,
    peoplecount int not null default 0
);
#导入对应数据
load data local infile 'D:/data/-bill.csv' 
into table Bill
fields terminated by ',';

其余OrderDetail,ShopDetail两张表方法一样

三,数据加工

#创建单汇总金额表OrderGroup,得到订单号以及对应的订单总消费金额
Create table OrderGroup as
select billnumber, sum(pay) as pay from OrderDetail
group by billnumber
#创建新单号详细表,在原Bill表中增加订单总金额,订单总折扣金额列
Create table NewBill as
select b.*, o.pay, b.billdiscount * o.pay as rebate
from bill as b left join ordergroup as o 
on b.billnumber = o.billnumber
#创建新店面情况表,在原ShopDetail表中添加总座位数列
create table NewShopDetail as
select *, (twotable * 2 + threetable * 3 + fourtable * 6) as allseats 
from shopdetail as s
#创建新点菜明细表
create table neworderdetail(
select b.shopname,o.* from orderdetail as o left join bill as b 
on o.billnumber = b.billnumber
);
#创建店汇总信息表ShopTotal
create table ShopTotal as
select b.shopname as 店名, count(b.billnumber) as 单数, 
sum(b.peoplecount) as 人数,sum(b.rebate) as 折扣总金额,sum(b.pay) as 店汇总金额, 
sum(b.pay)/count(b.billnumber) as 单均消费, 
sum(b.pay)/sum(b.peoplecount) as 人均消费, 
s.alltable as 总台数,
s.allseats as 总座位数,
count(b.billnumber)/s.alltable as 翻台率,
sum(b.peoplecount)/s.allseats as 上座率,
sum(b.rebate)/sum(b.pay) as 折扣率
from newbill as b left join newshopdetail as s 
on b.shopname = s.shopname
group by b.shopname

至此MySQL中操作完毕,转战至Excel

四,MySQL数据导入Excel,并进行适当处理

1-打开Excel,正常xlsx即可
2-在数据选项卡下,获取数据,连接至MySQL
3-正常:127.0.0.1,选择对应库即可,选择NewBill ,NewShopDetail,ShopTotal三张表
4-可在Power Query中适当调整数据类型等处理,关闭并上载
5-打开Power Pivot管理数据模型,再次调整数据类型(有时候从Power Query转过来数据类型会不一样)
6-在关系图视图中,将各表形成连接
7-为了在分析仪中显示KPI,需要计算出单独一个门店销售平均值与所有门店销售平均值的比值结果:店面销售情况:=average('db2 shoptotal 2'[店汇总金额])/CALCULATE(average('db2 shoptotal 2'[店汇总金额]),all('db2 shoptotal 2'))
8-然后点击创建KPI选项,将绝对值设置为1.5,红黄绿临界值设置为1.2,1.0

NewBill ,NewShopDetail,ShopTotal:


newbill.png

neworder.png

shoptotal2.png

至此Power Query,Power Pivot中操作完毕

五,创建数据透视表/透视图

1-将店名作为行标签,其余需要的字段作为列标签显示形成准备区sheet


total.png

2-将各项指标通过复制-链接图片的形式粘贴至分析仪sheet
3-光标在透视表区任意位置,点击插入切片器,将shoptotal中的店名作为切片器并右击选择关联相关表,调节至合适大小

4-由于需要统计不同小时下的销售额和销售量,在Power Pivot中,用hour函数取出paytime的小时数据,命名为hour
5-在NewBill中选取相应数据制作透视图,展示不同小时下的销售额和销售量,更改图标类型选择组合图(柱形图+折线图,次坐标轴)

6-右侧的饼图和透视表,制作原理类似,不再赘述
7-稍加调整和点缀,提高美观度


fenxiyi.png

欢迎批评指正!

你可能感兴趣的:(2019-05-19)