Excel自动化数据报表制作

  • 一、基本概念
  • 二、基础操作
  • 三、理解数据
    • 1.数据量级
    • 2.数据类型
    • 3.数据含义
      • 环比
      • 同比
  • 四、常用函数
  • 五、自动化报表开发
    • 1.报表框架
      • 1)整体分布
      • 2)时间信息
    • 2.指标梳理
      • 1)结果指标
      • 2)过程指标
    • 3.联动筛选
    • 4.条件求和
      • 1)if、sumif、sumifs函数嵌套逻辑
      • 2)条件求和函数实现
      • 3)总计计算
    • 5.迷你图
    • 6.同比/环比计算
    • 7.进度条
    • 8.图标指示
    • 9.突出显示
    • 10.细节美化

一、基本概念

1.表格组成:工作簿-工作表-行/列-单元格
2.功能区
(空闲时可逐一进行了解)鼠标悬停在功能区某一按钮上即会出现该功能注释

二、基础操作

  • 源数据备份
    拿到一份数据之后,第一步操作进行备份,以免对数据造成不可还原的修改。
    操作:选中源数据工作表-【右键】选择【移动或复制工作表】-选中【移至最后】并勾选【创建副本】-选中副本-【右键】【重命名】为“源数据备份”

三、理解数据

1.数据量级

  • 选中整行:整个数据一共24列

  • 选中整列:整个数据一共562行,除去表头数据实际一共521行

2.数据类型

注:该报表使用的数据为线上外卖门店的数据

  • 日期:指的是一家外卖门店当天所有营业额所归属的日期;
  • 品牌ID:相当于品牌身份证号
  • 品牌名称:门店所在品牌名称
    Ctrl+Shift+L快速筛选,可以快速了解门店品牌数、排序、筛选等;
  • 门店ID:相当于门店的身份证号
  • 门店名称
  • 城市
  • 平台:平台的拼音格式
  • 平台i:平台的中文格式
  • 平台门店名称
    注:同样一家店,存在不一样的格式(如:拌客干拌麻辣烫(武宁路店)→拌客干拌麻辣烫(武宁路店)→拌客·干拌麻辣烫(武宁路店),以增加空格、点的形式区分店名),原因是该门店存在关店重开的情况,每次关店重开后会更换平台门店名称以此与之前的门店做区分,更方便的收集数据。
  • GMV:全称为GrossMerchandiseVolume即商品交易总额,是一段时间内的成交总额的意思,多用于电商行业,一般包含拍下未支付订单金额(未刨除各项补贴的表面金额)。
  • 商家实收:去除平台补贴、商家补贴、红包、满减、配送费、平台抽成等等后,当天实际可以进入银行卡/平台账户收入里的金额
  • 门店曝光量:指的是该门店在外卖平台被用户看到的次数
  • 门店访问量:用户进入该门店的次数
  • 门店下单量
  • 无效当订单
  • 有效订单
  • 曝光人数:对应去重的曝光量
  • 进店人数:对应去重的访问量
  • 下单人数:对应去重的下单量
  • cpc总费用:CPC(Cost Per Click)每产生一次点击所花费的成本。在这个报表中cpc总费用指的是当天广告投放的总花费
  • cpc曝光量:广告投放为门店带来的曝光量
  • cpc访问量:广告投放为门店带来的访问量
  • 商户补贴:商家补贴金额
  • 平台补贴:平台补贴金额

3.数据含义

环比

环比=(本期数/上期数)/上期数=本期数/上期数-1

1)年环比

2020年环比=(2020年数据-2019年数据)/2020年数据=2020年数据/2019年数据-1

2)月环比

2020年7月环比=2020年7月数据/2020年6月数据-1

3)日环比

2020年7月1日环比=2020年7月1日数据/2020年6月30日数据-1

同比

同比=(本期数-同期数)/本期数=本期数/同期数-1

1)月同比

2020年7月同比=2020年7月数据/2019年7月数据-1

2)日同比

2020年7月1日的月同比=2020年7月1日数据/2020年6月1日数据-1
2020年7月1日的周同比=2020年7月1日数据/2020年6月24日数据-1

四、常用函数

1.sum:可以对整行、整列、一个区域进行求和

2.sumif:单条件求和

sumif(range,criteria,[sum_range])
sumif(条件判断所在的区域,条件,[用来求和的数值区域])

3.sumifs:多条件求和

sumifs(sum_range,[criteria_range1],[criteria1],[criteria_range2],[criteria2],..)
sumifs(用来求和的数值区域,条件1判断所在的区域1,条件1,条件2判断所在的区域1,条件2,...)

例:求整月美团平台的GMV

=sumifs(GMV列,平台列,"美团",日期列,">="&每月第一天,日期列,"<="&每月最后一天)

注:条件参数直接引用单元格或者使用函数不需要英文双引号,若使用如"美团"这样的字符串做条件参数,需要加英文双引号;以及大于等于号也需要添加英文双引号,并且使用&才能与后面的条件值相连。

4.subtotal:根据筛选求和、平均等等(11个函数,以数字区分,9为sum函数)

subtotal(function_num,ref1,[ref2],...)
subtotal(指定函数,选择区域1,[选择区域2],...)

例如:

subtotal(9,GMV列)=sum(GMV列) 仅当全选时该等式成立。

5.Year:提取日期的年,以数字格式显示

YEAR(serial_number) YEAR(日期)

6.Month:提取日期的月

MONTH(serial_number) MONTH(日期)

7.DAY:提取日期的天

DAY(serial_number) DAY(日期)

8.DATE:组合年月日

DATE(year,month,day) DATE(代表年份的数值,代表月份的数值,代表日份的数值)

与YEAR()、MONTH()、DAY()组合,可用来求得上一年、上月、上周、昨天、下一年、下个月、下周、明天等对应日期。例如:

每个月的第一天=DATE(year(日期),month(日期),1);
每个月的最后一天=下个月的第一天-1=DATE(year(日期),month(日期)+1,1) -1

注:不要使用excel里的日期格式存储日期,建议使用字符串形式存储日期,否则将表格导入数据库会出现其他问题

8.if:逻辑判断

if(logical_test,value_if_true,[value_if_false])
if(逻辑比较条件,结果成立时返回的值,[结果不成立时返回的值])
[value_if_false]:该参数选填,没有该参数时,返回False

例:利用if函数嵌套,判断A、B是否为0

if(A=0,if(B=0,"AB都为0","A等于0,B不等于0"),if(B=0,"A不等于0,B等于0","AB都不等于0"))
#mermaid-svg-PJMk3IZuG4FJLWNP {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-PJMk3IZuG4FJLWNP .error-icon{fill:#552222;}#mermaid-svg-PJMk3IZuG4FJLWNP .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-PJMk3IZuG4FJLWNP .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-PJMk3IZuG4FJLWNP .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-PJMk3IZuG4FJLWNP .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-PJMk3IZuG4FJLWNP .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-PJMk3IZuG4FJLWNP .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-PJMk3IZuG4FJLWNP .marker{fill:#333333;stroke:#333333;}#mermaid-svg-PJMk3IZuG4FJLWNP .marker.cross{stroke:#333333;}#mermaid-svg-PJMk3IZuG4FJLWNP svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-PJMk3IZuG4FJLWNP .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-PJMk3IZuG4FJLWNP .cluster-label text{fill:#333;}#mermaid-svg-PJMk3IZuG4FJLWNP .cluster-label span{color:#333;}#mermaid-svg-PJMk3IZuG4FJLWNP .label text,#mermaid-svg-PJMk3IZuG4FJLWNP span{fill:#333;color:#333;}#mermaid-svg-PJMk3IZuG4FJLWNP .node rect,#mermaid-svg-PJMk3IZuG4FJLWNP .node circle,#mermaid-svg-PJMk3IZuG4FJLWNP .node ellipse,#mermaid-svg-PJMk3IZuG4FJLWNP .node polygon,#mermaid-svg-PJMk3IZuG4FJLWNP .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-PJMk3IZuG4FJLWNP .node .label{text-align:center;}#mermaid-svg-PJMk3IZuG4FJLWNP .node.clickable{cursor:pointer;}#mermaid-svg-PJMk3IZuG4FJLWNP .arrowheadPath{fill:#333333;}#mermaid-svg-PJMk3IZuG4FJLWNP .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-PJMk3IZuG4FJLWNP .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-PJMk3IZuG4FJLWNP .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-PJMk3IZuG4FJLWNP .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-PJMk3IZuG4FJLWNP .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-PJMk3IZuG4FJLWNP .cluster text{fill:#333;}#mermaid-svg-PJMk3IZuG4FJLWNP .cluster span{color:#333;}#mermaid-svg-PJMk3IZuG4FJLWNP div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-PJMk3IZuG4FJLWNP :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

TRUE
TRUE
FALSE
FALSE
TRUE
FALSE
输入
A=0
B=0
AB都等于
结束
A等于 B不等于
B=0
A不等于 B等于
AB都不等于

9.vlookup:连接匹配数据

VLOOKUP(lookup_value,table_array,col_index,[range_lookup])
VLOOKUP(要查找的数据,要查找的位置和要返回的数据的区域,要返回的数据在区域中的列号,返回近似匹配或精确匹配-1/true或0/false)
  • 要查找的位置必须在区域的第一列,否则会报错
  • VLOOKUP只会返回它查找到的第一个值
  • VLOOKUP的模糊匹配非通常的模糊匹配,使用VLOOPUP模糊匹配文本类型数据时可以配合通配符使用。
通配符:
*:代替不定数量的字符
?:(英文输入状态下)代替一个字符

配合通配符进行模糊匹配(第三个参数为0):

返回以A开头的数据对应的第二列的值=VLOOKUP("A*",区域,2,0)
返回以A开头的三个字符对应的第二列的值=VLOOKUP("A??",区域,2,0)

10.match:查找数值在区域中的位置

MATCH(lookup_value,lookup_array,[match_type])
MATCH(查找项,查找区域,0)

例:返回A在第几行

=MATCH("A",A所在列,0)

返回A在第几列

=MATCH("A",A所在行,0)

11.index:根据区域的位置返回数值

INDEX(array,row_num,column_num)
INDEX(区域,行号,列号)

12.match、index一起使用:自动根据列名查找数据
制作报表时,可以利用match函数在源数据中找到报表表头对应的数据列号或行号,结合Index函数找到对应的列/行进行后续计算。
例:图一为源数据表,图二为数据报表,根据表头信息在源数据中找到对应数据

过表头查找【蛙小辣·美蛙火锅杯(宝山店)】即【B112】单元格对应的门店ID:

  • 因为要查找的数据在源数据表中,所以INDEX函数第一个区域参数为源数据所有列,即
'源数据表'!A:X    (!表示非本工作表)
  • 【蛙小辣·美蛙火锅杯(宝山店)】的门店ID与该门店的平台店名称在同一行,所以查找门店ID的行号等同于查找【蛙小辣·美蛙火锅杯(宝山店)】在源数据表的行号。【蛙小辣·美蛙火锅杯(宝山店)】在【平台店名称】列,即I列,使用MATCH定位行号,即
MATCH(B112,'源数据表'!I:I,0)
  • 【蛙小辣·美蛙火锅杯(宝山店)】门店ID的列,即查找【门店ID】即【D111】单元格在源数据的列号,【门店ID】在第一行,使用MATCH定位列号,即
MATCH(D111,'源数据表'!1:1,0)
  • 完整函数格式为:
=INDEX('源数据表'!A:X,MATCH(B112,'源数据表'!I:I,0),MATCH(D111,'源数据表'!1:1,0))

编写好单个函数后,希望通过下拉、右拉可以自动查找对应的其他值。但是,下拉后会出现部分匹配不到数据的情况。

因为下拉的同时,单元格的选中区域【蛙小辣·美蛙火锅杯(宝山店)】、【门店ID】等会依次向下移动,因此需要固定部分选中区域,让我们在下拉、右拉的同时保持不变。使用美元符号"$"进行锁定操作。

1)源数据表各区域固定,均需锁住;
2)[B112]需根据下拉向下拉匹配其他平台门店名称数据,同时右拉时固定该列,因此只需锁定B列,即$B112;
3)[D111]需根据右拉匹配其他表头数据,同时下拉时固定该行,即 D$111
  • 完整函数格式为:
=INDEX('源数据表'!$A:$X,MATCH($B112,'源数据表'!$I:$I,0),MATCH(D$111,'源数据表'!$1:$1,0))

13.sumifs、match、index顶级用法:自动根据列名的数据和条件进行求和
INDEX函数中,当行号为0时,返回一整列,当列号为0时返回一整行,因此通过MATCH返回查找值在源数据表中时第几行/列,再通过INDEX定位整列区域,结合sumifs函数进行条件筛选求和计算。
GMV、进店人数、下单人数均用sumifs、match、index结合的方式计算。

求GMV

  • 利用INDEX、MATCH函数取得求和区域GMV列、取得条件判断区域平台店名称列:
GMV列=INDEX('源数据表'!$A:$X,0,MATCH(H$111,'源数据表'!$1:$1,0))
平台店名称列=INDEX('源数据表'!$A:$X,0,MATCH($B$111,'源数据表'!$1:$1,0))
  • 组合sumifs函数求出平台门店对应GMV总和
=SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH(H$111,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($B$111,'源数据表'!$1:$1,0)),$B112)
  • 通过向下拉动、向右拉动可自动得出门店下单人数总和、下单人数总和

五、自动化报表开发

1.报表框架

1)整体分布

一共分为四个部分:标题、小看板(含目标)、结果指标、过程指标

2)时间信息

①日期
日期只需填写一个,其他日期均再次日期的基础上引用,可以极大提升效率,更改一个日期可以联动更新整个工作表的数据。
过程指标中的日期也是通过引用该日期实现。

②星期
同样引用上一个日期,更改格式即可

③数据时间
同样进行日期的引用

2.指标梳理

1)结果指标

与商家收入的相关指数
GMV、商家实收、到手率(商家实收/GMV)、有效订单、无效订单、客单价(GMV/有效订单)

2)过程指标

商家经营情况的直观体现
曝光人数、进店人数、进店转化率(进店人数/曝光人数)、下单人数、下单转化率(下单人数/进店人数)、营销占比(cpc总费用/GMV)

3.联动筛选

1)下拉筛选器
在小看板中目标位置,设置了一个可供切换平台的筛选器,实际上它是一个条件验证,其他函数通过判断当前所选平台来计算对应数据。因此需要先设置该筛选器,后续判断一律引用该筛选器单元格,实现切换平台联动更新数据表。

对应操作:【数据】→【数据验证or数据有效性】→选择【序列】→输入【全部,美团,饿了么】注意使用英文逗号→【确定】

4.条件求和

1)if、sumif、sumifs函数嵌套逻辑

求和GMV指标,需判断当前平台以及日期筛选。
if函数判断当前平台是全部、美团还是饿了么,当平台为全部时,无需进行平台筛选,使用sumif函数按日期筛选GMV求和即可;当平台为美团或饿了么时,需使用sumifs函数同时进行平台筛选及日期筛选GMV求和。

#mermaid-svg-tsdIOJTqPTShL2gY {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-tsdIOJTqPTShL2gY .error-icon{fill:#552222;}#mermaid-svg-tsdIOJTqPTShL2gY .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-tsdIOJTqPTShL2gY .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-tsdIOJTqPTShL2gY .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-tsdIOJTqPTShL2gY .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-tsdIOJTqPTShL2gY .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-tsdIOJTqPTShL2gY .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-tsdIOJTqPTShL2gY .marker{fill:#333333;stroke:#333333;}#mermaid-svg-tsdIOJTqPTShL2gY .marker.cross{stroke:#333333;}#mermaid-svg-tsdIOJTqPTShL2gY svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-tsdIOJTqPTShL2gY .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-tsdIOJTqPTShL2gY .cluster-label text{fill:#333;}#mermaid-svg-tsdIOJTqPTShL2gY .cluster-label span{color:#333;}#mermaid-svg-tsdIOJTqPTShL2gY .label text,#mermaid-svg-tsdIOJTqPTShL2gY span{fill:#333;color:#333;}#mermaid-svg-tsdIOJTqPTShL2gY .node rect,#mermaid-svg-tsdIOJTqPTShL2gY .node circle,#mermaid-svg-tsdIOJTqPTShL2gY .node ellipse,#mermaid-svg-tsdIOJTqPTShL2gY .node polygon,#mermaid-svg-tsdIOJTqPTShL2gY .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-tsdIOJTqPTShL2gY .node .label{text-align:center;}#mermaid-svg-tsdIOJTqPTShL2gY .node.clickable{cursor:pointer;}#mermaid-svg-tsdIOJTqPTShL2gY .arrowheadPath{fill:#333333;}#mermaid-svg-tsdIOJTqPTShL2gY .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-tsdIOJTqPTShL2gY .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-tsdIOJTqPTShL2gY .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-tsdIOJTqPTShL2gY .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-tsdIOJTqPTShL2gY .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-tsdIOJTqPTShL2gY .cluster text{fill:#333;}#mermaid-svg-tsdIOJTqPTShL2gY .cluster span{color:#333;}#mermaid-svg-tsdIOJTqPTShL2gY div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-tsdIOJTqPTShL2gY :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

true
false
平台=全部
sumif 筛选日期求和
sumifs 筛选平台及日期求和

2)条件求和函数实现

if(平台=全部,sumif(日期列,日期,GMV列),sumifs(GMV列,日期列,日期,平台列,平台))

为了实现最大的灵活程度,使用index根据表头查找对应源数据列,只编写一此,通过向下向右拖拽即可自动填充其他求和项。

  • 日期列
INDEX('源数据'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0))
  • GMV列(求和列)
INDEX('源数据表'!$A:$X,0,MATCH(C$12,'源数据表'!$1:$1,0))
  • 平台列
INDEX('源数据表'!$A:$X,0,MATCH("平台i",'源数据表'!$1:$1,0))
  • 完整函数实现
=IF($H$5="全部",SUMIF(INDEX('源数据'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),$A13,INDEX('源数据表'!$A:$X,0,MATCH(C$12,'源数据表'!$1:$1,0))),SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH(C$12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),$A13,INDEX('源数据表'!$A:$X,0,MATCH("平台i",'源数据表'!$1:$1,0)),$H$5))

将该函数应用到过程指标中的【曝光人数】,只需将求和列中的GMV单元格修改为曝光人数对应的单元格即可,其他不变。

INDEX('源数据表'!$A:$X,0,MATCH(C$24,'源数据表'!$1:$1,0))
  • 【曝光人数】完整函数实现
=IF($H$5="全部",SUMIF(INDEX('源数据表'!$A:$X,0,MATCH($A$24,'源数据表'!$1:$1,0)),$A25,INDEX('源数据表'!$A:$X,0,MATCH(C$24,'源数据表'!$1:$1,0))),SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH(C$24,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$24,'源数据表'!$1:$1,0)),$A25,INDEX('源数据表'!$A:$X,0,MATCH("平台i",'源数据表'!$1:$1,0)),$H$5))
  • 商家实收、有效订单、无效订单均可通过GMV指标右拉实现数据自动填充;
  • 到手率=商家实收/GMV客单价=GMV/有效订单,这两个指标进行简单除法运算即可;
  • 进店人数、下单人数均可通过曝光人数指标右拉实现数据自动填充;
  • 进店转化率=进店人数/曝光人数下单转化率=下单人数/进店人数,这两个指标同样进行简单除法运算即可;
  • 营销占比=cpc总费用/GMV。但是当前数据报表中没有展示cpc总费用的数据,需要额外进行计算,计算方式同求GMV的函数实现完全一致,只需将GMV单元格C12修改为"cpc总费用"(注意中文字符串需加上英文格式双引号)即可,再引用结果指标中已经计算好的GMV数据即可。完整函数实现如下:
=IF($H$5="全部",SUMIF(INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),$A13,INDEX('源数据表'!$A:$X,0,MATCH("cpc总费用",'源数据表'!$1:$1,0))),SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH("cpc总费用",'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),$A13,INDEX('源数据表'!$A:$X,0,MATCH("平台i",'源数据表'!$1:$1,0)),$H$5))/C31

3)总计计算

  • GMV、商家实收、有效订单、无效订单指标的总计,使用sum函数计算即可;
  • 总计的到手率、客单价依旧使用简单除法计算;
  • 曝光人数、进店人数、下单人数指标的总计,同样使用sum函数计算即可;
  • 总计的进店转化率、下单转化率依旧使用简单除法计算;
  • 总计的营销占比=一周的cpc总费用总计/一周的GMV总计。GMV总计可以从结果指标中引用C20单元格,cpc总费用总计需额外进行计算。计算一周的cpc总费用,只需要再计算一天cpc总费用函数的基础上,将单个的日期筛选修改为两个日期的大小判断,大于等于当周的第一天,小于等于当周的最后一天,通过引用日期列的开始日期单元格A13、结束日期单元格A19即可。逻辑如下
if(平台=全部,sumifs(cpc总费用列,日期列,">="&开始日期,日期列,"<="&结束日期),sumifs(cpc总费用列,日期列,">="&开始日期,日期列,"<="&结束日期,平台列,平台))
  • cpc总费用总计完整函数实现
IF($H$5="全部",SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH("cpc总费用",'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&$A13,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A19),SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH("cpc总费用",'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A13,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A19,INDEX('源数据表'!$A:$X,0,MATCH("平台i",'源数据表'!$1:$1,0)),$H$5))
  • 总计的营销占比完整函数实现
=IF($H$5="全部",SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH("cpc总费用",'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&$A13,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A19),SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH("cpc总费用",'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A13,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A19,INDEX('源数据表'!$A:$X,0,MATCH("平台i",'源数据表'!$1:$1,0)),$H$5))/C20

5.迷你图

小看板中周累计的曝光人数、进店转化率、下单转化率直接引用过程指标数据即可。
插入迷你图操作
【选中整周数据】→菜单【插入】→功能区【折线】→选中迷你图放置区域→【确定】→勾选【标记】

6.同比/环比计算

周环比=本周数据/上周数据-1

小看板中周环比的本周有效订单、商家实收、到手率直接引用过程指标数据即可。
上周的数据可以通过日期偏移7天来求得,可以利用计算cpc总费用的总计来进行修改,逻辑如下:

if(平台=全部,sumifs(有效订单列,日期列,">="&开始日期-7,日期列,"<="&结束日期-7),sumifs(有效订单列,日期列,">="&开始日期-7,日期列-7,"<="&结束日期,平台列,平台))
  • 上周的有效订单(F12单元格)完整函数实现
IF($H$5="全部",SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH(F$12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&A13-7,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19-7),SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH(F$12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&A13-7,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19-7,INDEX('源数据表'!$A:$X,0,MATCH("平台i",'源数据表'!$1:$1,0)),$H$5))
  • 周环比有效订单完整函数实现(本周有效订单单元格A9):
=A9/IF($H$5="全部",SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH(F$12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&A13-7,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19-7),SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH(F$12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&A13-7,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19-7,INDEX('源数据表'!$A:$X,0,MATCH("平台i",'源数据表'!$1:$1,0)),$H$5))-1
  • 周环比商家实收的函数实现与周环比有效订单的函数实现逻辑一致,仅需把函数中的有效订单单元格A9改为商家实收单元格D12即可,完整函数实现如下(本周商家实收单元格C9):
=C9/IF($H$5="全部",SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH($D$12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&A13-7,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19-7),SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH(D12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&A13-7,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19-7,INDEX('源数据表'!$A:$X,0,MATCH("平台i",'源数据表'!$1:$1,0)),$H$5))-1
  • 上周的到手率需要通过上周的商家实收和上周GMV进行计算
到手率周环比=本周到手率/上周到手率-1
上周到手率=上周商家实收/上周GMV
>因此,
到手率环比=本周到手率/(上周商家实收/上周GMV)-1
  • 上周的商家实收已在周环比商家实收中计算过,可直接复制函数使用
IF($H$5="全部",SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH($D$12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&A13-7,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19-7),SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH(D12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&A13-7,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19-7,INDEX('源数据表'!$A:$X,0,MATCH("平台i",'源数据表'!$1:$1,0)),$H$5))
  • 上周的GMV与上周的商家实收的函数实现逻辑一致,仅需把函数中的商家实收单元格D12改为GMV单元格C12即可
IF($H$5="全部",SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH($C$12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&A13-7,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19-7),SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH($C$12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&A13-7,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19-7,INDEX('源数据表'!$A:$X,0,MATCH("平台i",'源数据表'!$1:$1,0)),$H$5))
  • 周环比到手率完整函数实现(本周到手率单元格E9):
=E9/(IF($H$5="全部",SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH($D$12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&A13-7,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19-7),SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH(D12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&A13-7,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19-7,INDEX('源数据表'!$A:$X,0,MATCH("平台i",'源数据表'!$1:$1,0)),$H$5))/IF($H$5="全部",SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH($C$12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&A13-7,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19-7),SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH($C$12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&A13-7,INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19-7,INDEX('源数据表'!$A:$X,0,MATCH("平台i",'源数据表'!$1:$1,0)),$H$5)))-1

7.进度条

1)添加目标
当平台等于全部时,目标为20W;当平台等于美团时,目标为15W;当平台为饿了么时,目标为5W。函数实现如下

=IF($H$5="全部",200000,IF($H$5="美团",150000,50000))

2)计算业务进度

业务进度=截至目前整个月的GMV/目标
截至目前整个月的GMV=本月的第一天至本周的最后一天的GMV/目标
  • 利用DATE、YEAR、MONTH函数求本月的第一天(本周第一天单元格A13)
DATE(YEAR($A$13),MONTH($A$13),1)
  • 求本月第一天至本周最后一天GMV与求上周GMV逻辑一致,将日期判断修改为大于等于本月第一天,小于等于本周最后一天即可,完整函数实现如下:
IF($H$5="全部",SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH($C$12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&DATE(YEAR($A$13),MONTH($A$13),1),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19),SUMIFS(INDEX('源数据表'!$A:$X,0,MATCH($C$12,'源数据表'!$1:$1,0)),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),">="&DATE(YEAR($A$13),MONTH($A$13),1),INDEX('源数据表'!$A:$X,0,MATCH($A$12,'源数据表'!$1:$1,0)),"<="&$A$19,INDEX('源数据表'!$A:$X,0,MATCH("平台i",'源数据表'!$1:$1,0)),$H$5))

3)添加进度条
菜单栏【开始】→功能区【条件格式】→【新建规则】→格式样式【数据条】→最小值/最大值【数字】→值【0】至【1】→选择填充类型、填充颜色→【确定】

8.图标指示

为小看板中的周环比添加图标指示。正数显示为绿色,同时绿色箭头向下;负数或零时显示为红色,同时红色箭头向下。设置条件格式如下:
菜单栏【开始】→功能区【条件格式】→【新建规则】→选择规则类型【只包含一下内容的单元格设置格式】→【单元格值】【大于】【=0】→【格式】→【字体】→【颜色】

  • 分别设置字体当数值大于0绿色、小于等于0黄色:
  • 设置图标
    菜单栏【开始】→功能区【条件格式】→【新建规则】→格式样式【图标集】→选择对应图标→值【>=】【0】→类型【数字】→【确定】

所有条件设置如下,利用格式刷使该条件格式应用在其他环比数据上

9.突出显示

  • 标记结果指标中GMV低于平均值的数据

    选中条件判断区域→菜单栏【开始】→功能区【条件格式】→【新建规则】→选择规则类型【使用公式确定要设置的单元格】→设置公式,判断C13-C19整列数据→【格式】→【字体】→下划线【单下划线】→字形【粗体】→【确定】

10.细节美化

1)标题居中、字体加粗放大
2)关键字、关键数据加粗
3)表头添加背景颜色、修改字体颜色
4)添加外框线

Excel自动化数据报表制作相关推荐

  1. 计算机应用EXCEL之数据看板制作

    计算机应用作业做一个教育运营数据看板,需要用到数据透视表,数据透视图,切片器. 要注意的点: 1.切片器:报表连接要求数据透视表的数据源最好一致才好一起连接 2.先选中表格区域,再插入数据透视表,然后 ...

  2. excel sql python_报表自动化,三流用Excel,二流用Python,一流用它

    从事数据工作的人都知道,企业每天都要做很多报表,这个过程当中会涉及到很多手工操作和常规性报表.为了减少人工介入,节省工作时间,我们会想办法将一部分操作用工具或代码来替代,这个过程就称为报表自动化. 报 ...

  3. 计算机excel上机实训指导,上机实训指导手册——利用Excel进行数据分组和制作统计图表...

    上机实训指导手册--利用Excel进行数据分组和制作统计图表 (15页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分 实训指导书课程名称 ...

  4. EXCEL自动化报表实操

    1.0 课程介绍 1.1 4种分析数据的方法 1.2.1 自动化报表中的数据如何设置定向标记 1.2.2 定向标记的命名写法和原则 1.2.2 定向标记的命名写法和原则 1.3.1 VBA(宏)在数据 ...

  5. Delphi控制Excel自动生成报表

    摘要:Excel是当前最流行的数据报表制作工具.本文介绍如何使用Delphi来控制Excel完成数据库与报表之间的数据交换,讨论了报表制作工程中的一些细节性问题. 关键字:Delphi,Excel,报 ...

  6. Excel实现数据可视化

    Excel实现数据可视化 文章目录 Excel实现数据可视化 制作气象站气温变化折线图 知识点: 新建文件夹及excel表格 制作气象站气温变化折线图 背景: 一天的天气变幻莫测,早晚温差也很大,因此 ...

  7. vue下载excel表格模板和导入excel表格数据

    vue下载excel表格模板和导入excel表格数据 vue制作excel表格模板给前端下载 vue制作excel表格模板给前端下载 最近有个需求,需要导入excel表格,并且还需要制作模板给用户下载 ...

  8. python制作数据库报表_如何制作数据报表并实现自动化?

    定期的数据报表,包括日报.周报.月报.半年报.年报,是每一位数据运营或数据分析师可能遇到的工作,需求方主要包括产品运营部门和各业务部门.基于不同公司的不同发展阶段,遇到的报表工作"层次&qu ...

  9. 巧用Excel 2010数据透视表制作销售报表

    小刘需要根据2010-2011两年间的订单记录创建季度报表,以便分析各类图书的销售情况.面对如此庞大的订单记录,该从何下手呢? 其实最快捷的办法是使用Excel 2010创建数据透视表,以快速合并和比 ...

  10. 2020互联网数据分析师教程视频 统计学分析与数据实战 r语言数据分析实战 python数据分析实战 excel自动化报表分析实战 excel数据分析处理实战

    2020互联网数据分析师教程视频 统计学分析与数据实战 r语言数据分析实战 python数据分析实战 excel自动化报表分析实战 excel数据分析处理实战

最新文章

  1. function java_java.util.function之function
  2. 【c++内存分布系列】单独一个类
  3. 空指针异常是什么原因_睡觉时,突然抖了一下,脚踏空,是什么原因?
  4. 主成分分析步骤_多元分析(1)--主成分分析
  5. 【CF1230E】Kamil and Making a Stream【GCD性质】【暴力vector】
  6. 万字详述 MySQL ProxySQL
  7. (208)ASIC开发总结
  8. 2021-09-06146. LRU 缓存机制 哈希表
  9. hello world! 这是我在博客园的第一个博客!
  10. Android 开发者不得不面对的六个问题
  11. 欧派caxa设计软件_CAXA软件三维设计的基本使用方法
  12. 惠普磁带备份机支持备份几台服务器,03-惠普磁带自动备份产品家族.ppt
  13. 十三、直接、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址
  14. 为什么项目经理比程序员工资高?
  15. Php 股票系统,利用PHP命令行模式采集股票趋势信息
  16. 手机维修基础 常见故障分析㈣
  17. 惠普HP Prime可编程计算器之工程测量计算
  18. Ubuntu格式化U盘以及分区
  19. Linux -- SELinux配置及应用(1)
  20. [BZOJ3698]XWW的难题(有源汇上下界最大流+讲解)

热门文章

  1. 浅析高速公路网络数据集制作
  2. 【经典】产品人面试中的一些软回答~~
  3. 《东周列国志》第六回 卫石碏大义灭亲 郑庄公假命伐宋
  4. 计算机控制课程设计体会,计算机控制技术课程设计心得体会
  5. 入门篇——解析Python机器学习中三类无监督学习算法和两个应用实例
  6. Unix传奇历史与回忆-读史使人明智,鉴以往而知未来
  7. 松翰单片机--SN8F5702学习笔记(三)Overview
  8. 记录一个 Python 的 re.match() 的小坑
  9. C# winform 右下角弹窗
  10. 新建工程,如何通过git上传到阿里云code