Excel周报制作

Excel周报制作

文章目录

    • Excel周报制作
        • 一、理解数据
        • 二、数据透视表
        • 三、常用函数
          • 1.sum-求和
          • 2.sumif-单条件求和
          • 3.sumifs-多条件求和
          • 4.sum和subtotal的区别
          • 5.if函数
          • 6.if嵌套
          • 7.vlookup函数和数据透视表聚合
          • 8.index和match函数
        • 四、周报开发
        • 五、报表总览

一、理解数据

这是一个线上外卖门店的数据。

通过全选一行和全选一列得知,数据有561行(去掉表头),24列。

使用CTR L+SHIFT+L快捷键对所有列进行快速筛选。

品牌名称:一共有2个值,分别是蛙小辣火锅杯(总账号)和拌客(武宁路店)

门店ID:每个门店有一个固定的ID

平台:拼音格式,一共有eleme和meituan两个值

平台i:文本格式,一共有饿了么和美团两个值

平台门店名称

蛙小辣火锅杯(五角场店)和蛙小辣火锅杯(五角场店)的括号格式不同(中英文),这两个店是一个店吗?拌客干拌麻辣烫(武宁路店)、拌客·干拌麻辣烫(武宁路店)和拌客干拌麻辣烫(武宁路店)这几个店是同一个店吗?

在筛选中,只选择蛙小辣火锅杯(五角场店)和蛙小辣火锅杯(五角场店),查看它们的门店ID,发现蛙小辣火锅杯(五角场店)的门店ID为2000507076,蛙小辣火锅杯(五角场店)的门店ID为8184590,所以它们是不同的两个店。

在筛选中,只选择拌客干拌麻辣烫(武宁路店)、拌客·干拌麻辣烫(武宁路店)和拌客干拌麻辣烫(武宁路店),查看它们的门店ID,拌客干拌麻辣烫(武宁路店)和拌客·干拌麻辣烫(武宁路店)的门店ID均为337460136,说明它们两个是同一个店,拌客干拌麻辣烫(武宁路店)的门店ID是9428110,说明它是不同的一个店。

造成这个情况的原因可能是同一家店在平台上进行过关店重开,以享受平台的新店流量补贴,重开时的平台门店名称和之前的有所不同。

GMV:GMV(全称Gross Merchandise Volume),即商品交易总额,是成交总额(一定时间段内)的意思。多用于电商行业,一般包含拍下未支付订单金额

这里只是表面金额——外卖的原价,真正入账还需要减去各种平台的满减、红包、补贴等。

商家实收:去除掉平台满减、红包、补贴、抽成后的实际入账金额

门店曝光量:这家门店在外卖平台被多少个用户看到过

门店访问量:有多少用户在外卖平台中点进了这家门店

门店下单量:有多少用户在这家门店下单。无效订单+有效订单=门店下单量

无效订单:下单后中途取消或退款等等

进店人数:这是线上外卖门店的数据,进店人数指的是在外卖平台上进入门店的人数,和门店访问量相对应,而不是线下进入门店的人数

一般来说,曝光人数、进店人数、下单人数都是要比门店曝光量、门店访问量、门店下单量要少的,因为存在一个人多次进店的情况。但是有些时候(比如第一行)会出现进店人数比门店访问量要多的情况,这种数据是有问题的。

它们之间的区别类似于UV和PV的区别。

image-20230904101428392

CPC:Cost Per Click,每产生一次点击所花费的成本

二、数据透视表

选择源数据中任意一个单元格,点击插入选项卡下的数据透视表。

三、常用函数

1.sum-求和
1-8月GMV1月和8月GMV
总计=SUM(‘拌客源数据1-8月’!J2:J562)=SUM(‘拌客源数据1-8月’!J2:J25,‘拌客源数据1-8月’!J496:J562)

1-8月GMV在工作表拌客源数据1-8月中,是一个跨工作表求和的问题。

方法1:输入=SUM(),点击上方fx按钮,点击拌客源数据1-8月工作表,CTRL+SHIFT+↓选中GMV列,点击确定。

方法2:点击视图选项卡下的新建窗口,在xxxx.xlsx:2下选择GMV列,省去了来回切换工作表的麻烦。

新建的窗口和原来的工作簿是同样一个工作簿。

win+→实现左右分屏。

1月和8月GMV:SUM函数可以用逗号分隔多个区域,对多个区域进行求和。

使用视图选项卡下的冻结窗格—冻结首列,将首列(日期)冻结,方便操作。

1月的GMV:J2:J25

8月的GMV:J496:J562

筛选并没有剔除数据,所以筛选1月和8月后对整列求和,得到的还是1-8月GMV。

2.sumif-单条件求和

语法

SUMIF(range,criteria,sum_range)

(1) Range 为用于条件判断的单元格区域。

(2) Criteria 为确定哪些单元格将被相加求和的条件,其形式可以为数字、表达式或文本。例如,条件可以表示为 32、“32”、“>32” 或 “apples”。(使用方法同COUNTIF)

(3) Sum_range 是需要求和的实际单元格。(可只写该区域的第一个单元格)

GMV
2020/07/01=SUMIF(‘拌客源数据1-8月’!$A:$A,B15,‘拌客源数据1-8月’!$J:$J)
2020/07/07
2020/07/16
2020/07/17
2020/08/08
2020/08/19
2020/08/21

我们以第一行的问题为例。第一行要求我们求出日期为2020/07/01的GMV总和。

我们在SUMIF函数的第一个参数中选中日期这一整列,第二个参数选择2020/07/01所在的单元格,第三个参数选择GMV这一整列。

再使用快捷键F4将第一个参数和第三个参数全部锁定,将鼠标移至第一行GMV单元格的右下角时双击,即可快速求出所有答案。

第一个参数告诉Excel判断的依据在哪个区域,第二个参数告诉Excel具体的判断条件,第三个参数告诉Excel按照判断条件对哪个区域求和。

3.sumifs-多条件求和

(1)以求2020/07/01的美团平台GMV为例

image-20230905010750924

Sum_range:需要求和的区域

Criteria_range1:用于条件判断的单元格区域1

Criteria1:判断条件1

Criteria_range2:用于条件判断的单元格区域2

Criteria2:判断条件2

(2)同比和环比

image-20230906085000269

GPT:

当我们分析数据时,“同比”(Year-over-Year,YoY)和"环比"(Quarter-over-Quarter,QoQ)是两个常用的比较方式,用于衡量数据在不同时间段之间的变化。以下是它们的概念解释:

  1. 同比(Year-over-Year,YoY):同比指的是将当前时间段的数据与同一时间段的前一年相比较。它用于比较相同时间段的不同年份的数据变化情况。例如,我们可以将今年第三季度的销售额与去年同一季度的销售额进行同比比较,以评估销售业绩的增长或下降。

  2. 环比(Quarter-over-Quarter,QoQ):环比指的是将当前时间段的数据与上一个时间段相比较。它用于比较相邻时间段的数据变化情况。例如,在季度数据中,我们可以将本季度的销售额与上一季度的销售额进行环比比较,以了解业绩的季度波动情况。

这两种比较方式用于帮助我们观察和分析数据的增长趋势、周期性变化以及季节性影响。通过同比和环比分析,我们可以更好地了解数据的变化情况,并作出相应的决策或判断。

2020年环比

=(2020年数据-2019年数据)/2019年数据

=2020年数据/2019年数据-2019年数据/2019年数据

=2020年数据/2019年数据-1

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

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

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

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

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

同比:上年同期相比 环比:同年上一期相比

2020/07/01的日环比:2020-07-01的GMV/2020-06-30的GMV-1

=SUMIFS('拌客源数据1-8月'!$J:$J,'拌客源数据1-8月'!$H:$H,"美团",'拌客源数据1-8月'!$A:$A,B30)/SUMIFS('拌客源数据1-8月'!$J:$J,'拌客源数据1-8月'!$H:$H,"美团",'拌客源数据1-8月'!$A:$A,B30-1)-1

日同比:当天GMV/前一个月的那天的GMV

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

使用YEAR、MONTH、DAY、DATE函数求出2020年6月1日的日期。

2020年6月1日数据:

=SUMIFS('拌客源数据1-8月'!$J:$J,'拌客源数据1-8月'!$H:$H,"美团",'拌客源数据1-8月'!$A:$A,DATE(YEAR(B30),MONTH(B30)-1,DAY(B30)))

(3)求2020年1月的GMV

美团GMV月环比
2020/01=SUMIFS(‘拌客源数据1-8月’!J:J,‘拌客源数据1-8月’!H:H,“美团”,‘拌客源数据1-8月’!A:A,“>=”&E39,‘拌客源数据1-8月’!A:A,“<=”&G39)=C39/SUMIFS(‘拌客源数据1-8月’!J:J,‘拌客源数据1-8月’!H:H,“美团”,‘拌客源数据1-8月’!A:A,“>=”&DATE(YEAR(B39),MONTH(B39)-1,1),‘拌客源数据1-8月’!A:A,“<=”&DATE(YEAR(B39),MONTH(B39),1)-1)-1
2020/02
2020/03
2020/04
2020/05
2020/06
2020/07
2020/08

问题解析:求2020年1月的GMV即求2020年1月1日到2020年1月31日的GMV,即使用SUMIFS函数,条件设置为>=这个月的第一天,<=这个月的最后一天。

每个月的第一天:

=DATE(YEAR(B39),MONTH(B39),1)

每个月的最后一天:下个月的第一天减去一天

=DATE(YEAR(B39),MONTH(B39)+1,1)-1

在SUMIFS中使用条件表达式时,>=这种比较符需要加上双引号,并且将比较符用&和后边的表达式连接。

">="&表达式

image-20230906110341734

2020-01的月环比:2020年1月的数据/2019年12月的数据-1

4.sum和subtotal的区别

语法

SUBTOTAL(function_num,ref1,[ref2],…)

SUBTOTAL 函数语法具有以下参数:

  • Function_num 必需。 数字 1-11 或 101-111,用于指定要为分类汇总使用的函数。 如果使用 1-11,将包括手动隐藏的行,如果使用 101-111,则排除手动隐藏的行;始终排除已筛选掉的单元格。

  • Ref1 必需。 要对其进行分类汇总计算的第一个命名区域或引用。

  • Ref2,… 可选。 要对其进行分类汇总计算的第 2 个至第 254 个命名区域或引用。

sum函数subtotal函数
GMV=SUM(‘拌客源数据1-8月’!J:J)=SUBTOTAL(9,‘拌客源数据1-8月’!J:J)
不使用筛选1071473.251071473.25
筛选出美团的数据1071473.25305135.17

SUBTOTAL可以根据源数据的筛选进行求和。

5.if函数
月份GMV判断是否大于月目标10万
1月64233.37=IF(C64>100000,“达标”,“不达标”)
6.if嵌套
AB判断
00=IF(I80=0,IF(J80=0,“A=0 B=0”,“A=0 B≠0”),IF(J80=0,“A≠0 B=0”,“A≠0 B≠0”))
10A≠0 B=0
11A≠0 B≠0
01A=0 B≠0
月份GMVcpc总费用大于月目标10万且花费少于5千的为达标
1月64233.373344.24=IF(C80>100000,IF(D80<5000,“达标”,“不达标”),“不达标”)
2月32755.71902.87不达标
3月78895.692645.32不达标
4月108307.074513.12达标
5月194276.9711804.4不达标
6月255727.798302.53不达标
7月255891.7313616.33不达标
8月81384.923680.31不达标
7.vlookup函数和数据透视表聚合

视频教程:【EXCEL教程 | 拜托三连了!全B站最用心(没有之一)的EXCEL免费课程!OFFICE/WPS/表格/EXCEL函数/EXCEL技巧/数据分析/办公软件】

语法

VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup])

(1)lookup_value 需要在数据表首列进行搜索的值,可以是数值,引用或字符串

(2) table_array 要在其中搜索数据的文字、数字或逻辑值表,可以是对区域或区域名称的引用

(3) col_index_num 返回匹配的序列号,表中首个值列的序号为1

(4) range_lookup 逻辑值:大致匹配用True或省略,精确匹配用False

举例说明

  • 精确查找
CDE
20姓名基本工资奖金
21员工11797604
22员工21979522
23员工31903994
24员工41754745
25员工51572776
26员工61521673
27员工71777974
28员工81544985
29员工91640653

我们想查找姓名为员工5的基本工资,方法如下:

姓名基本工资
员工5=VLOOKUP(“员工5”,C20:E29,2,0)

第一个参数代表要查找员工5,第二个参数代表在C20:E29这个区域内查找,第三个参数代表要返回的是找到的那行序列中的第2个数据,第四个参数代表精确查找。

col_index_num 返回匹配的序列号,表中首个值列的序号为1,这点与大部分编程语言中从0开始计数不同。

  • 模糊查找
GHI
33成绩大于等于成绩小于成绩级别
34060不及格
356080及格
368090良好
3790100优秀

我们需要从上表中查询成绩级别,填入下面的表中

CD
33成绩成绩级别
3482=VLOOKUP(C34,$G$33:$I$37,3,1)
3595
3688
3768
3886
3975
4082
4176
4259
4355
4463
4566
4684
4769
4882
4972

练习

门店ID门店名称
2001104355=VLOOKUP(B96,‘拌客源数据1-8月’!$D$1:$E$562,2,0)
8184590五角场店
305225345龙阳广场店
2000507076五角场店
8106681怒江路店
8491999宝山店
337460136拌客干拌麻辣烫(武宁路店)
9428110拌客干拌麻辣烫(武宁路店)
FG
95全名
96a1
97abc2
98abcd3
99acd4
100cb5
101bc6
102bcc7
103bdd18

注意:第一行第一列的a后边有一个空格

查找a对应的值

查找项返回值
a=VLOOKUP(I96&“*”,F95:G103,2,1)

这时候就需要使用通配符。

查找b开头并且是三个字符所对应的数值

b=VLOOKUP(I99&“??”,F95:G103,2,0)

vlookup引用数据透视表

我们首先选中源数据的任意单元格,点击插入选项卡下的表格–数据透视表。

在选中放置数据透视表的位置选项下,选中现有工作表,选取一个空白位置(我这里选择的是O105)

image-20230906200833199

数据透视表的范围是O105:P114

接下来我们需要用vlookup引用数据透视表。

门店IDGMV
2001104355=VLOOKUP(O96,$O$106:$P$113,2,0)
8184590
305225345
2000507076
8106681
8491999
337460136
9428110

这里要注意对数据透视表的范围进行绝对引用(固定)。

8.index和match函数

让excel自动根据列名去源数据里找对应的数值,完成聚合运算。

MATCH函数语法

MATCH(lookup_value, lookup_array, [match_type])

MATCH 函数语法具有下列参数:

  • lookup_value 必需。 要在 *lookup_array* 中匹配的值。 例如,如果要在电话簿中查找某人的电话号码,则应该将姓名作为查找值,但实际上需要的是电话号码。

    *lookup_value* 参数可以为值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。

  • lookup_array 必需。 要搜索的单元格区域。

  • match_type 可选。 数字 -1、0 或 1。 *match_type* 参数指定 Excel 如何将 *lookup_value* 与 *lookup_array* 中的值匹配。 此参数的默认值为 1。

MATCH函数是查找一个值在一个序列(一行或者一列)中的第几个位置。

从编程的角度可以理解为,有一个数组array=[a,b,c,d,e,f,g],查找一个值a在数组array中的索引(第几个位置),match会返回1;查找e,返回5。

举例:

B
111平台门店名称
112蛙小辣·美蛙火锅杯(宝山店)
113蛙小辣火锅杯(合生汇店)
114蛙小辣火锅杯(龙阳广场店)
115蛙小辣火锅杯(五角场店)
116蛙小辣·美蛙火锅杯(长风大悦城店)
117蛙小辣火锅杯(宝山店)
118蛙小辣火锅杯(五角场店)
119蛙小辣火锅杯麻辣烫(五角场店)
120蛙小辣·美蛙火锅杯(五角场店)
121蛙小辣·美蛙火锅杯麻辣烫(宝山店)
122蛙小辣·美蛙火锅杯麻辣烫(五角场店)
123蛙小辣·美蛙火锅杯麻辣烫(五角场店)
124拌客干拌麻辣烫(武宁路店)
125拌客·干拌麻辣烫(武宁路店)
126拌客干拌麻辣烫(武宁路店)

查询B115 蛙小辣火锅杯(五角场店)在B列中(不包含平台门店名称)的索引(第几个位置)

=MATCH(B115,B112:B126,0)
结果为4
平台门店名称门店ID品牌名称品牌IDGMV进店人数下单人数

查询品牌ID在这一行中是第几个

=MATCH("品牌ID",B111:I111,0)
结果是5

INDEX函数语法

INDEX(array,row_num,col_num)

INDEX(区域,行号,列号)

INDEX函数返回的是在一片区域内第几行第几列的值。

举例:

门店ID门店名称
2001104355宝山店
8184590五角场店
305225345龙阳广场店
2000507076五角场店
8106681怒江路店
8491999宝山店
337460136拌客干拌麻辣烫(武宁路店)
9428110拌客干拌麻辣烫(武宁路店)

我们希望查找上表中第4行第1列的值

=INDEX(B95:C103,4,1)
结果是305225345

我们可以将INDEX和MATCH嵌套使用。

举例:

BCDE
111平台门店名称门店ID品牌名称
112蛙小辣·美蛙火锅杯(宝山店)
113蛙小辣火锅杯(合生汇店)
114蛙小辣火锅杯(龙阳广场店)
115蛙小辣火锅杯(五角场店)
116蛙小辣·美蛙火锅杯(长风大悦城店)
117蛙小辣火锅杯(宝山店)
118蛙小辣火锅杯(五角场店)
119蛙小辣火锅杯麻辣烫(五角场店)
120蛙小辣·美蛙火锅杯(五角场店)
121蛙小辣·美蛙火锅杯麻辣烫(宝山店)
122蛙小辣·美蛙火锅杯麻辣烫(五角场店)
123蛙小辣·美蛙火锅杯麻辣烫(五角场店)
124拌客干拌麻辣烫(武宁路店)
125拌客·干拌麻辣烫(武宁路店)
126拌客干拌麻辣烫(武宁路店)
=INDEX(B111:E126,MATCH(D111,D111:D126,0),MATCH(D111,B111:E111,0))

上面的函数查询结果是 门店ID

将存有结果的单元格向右拖拽,查询结果是 品牌名称

练习案例

我们希望根据左侧的平台门店名称,从源数据中求出门店ID等列。

平台门店名称门店ID品牌名称品牌IDGMV进店人数下单人数
蛙小辣·美蛙火锅杯(宝山店)
蛙小辣火锅杯(合生汇店)
蛙小辣火锅杯(龙阳广场店)
蛙小辣火锅杯(五角场店)
蛙小辣·美蛙火锅杯(长风大悦城店)
蛙小辣火锅杯(宝山店)
蛙小辣火锅杯(五角场店)
蛙小辣火锅杯麻辣烫(五角场店)
蛙小辣·美蛙火锅杯(五角场店)
蛙小辣·美蛙火锅杯麻辣烫(宝山店)
蛙小辣·美蛙火锅杯麻辣烫(五角场店)
蛙小辣·美蛙火锅杯麻辣烫(五角场店)
拌客干拌麻辣烫(武宁路店)
拌客·干拌麻辣烫(武宁路店)
拌客干拌麻辣烫(武宁路店)

我们使用INDEX函数,区域选中全部源数据(A:X)

=INDEX('拌客源数据1-8月'!$A:$X,row_num,col_num)

INDEX函数的第二个参数是row_num,即行数。**左侧的平台门店名称(蛙小辣·美蛙火锅杯(宝山店))和上方的列名称(门店ID)是处于同一行的。**所以我们想找到名为蛙小辣·美蛙火锅杯(宝山店)的门店ID在源数据中处于第几行,只需要找到蛙小辣·美蛙火锅杯(宝山店)在源数据中处于第几行。

这里我们使用MATCH函数。

MATCH($B112,'拌客源数据1-8月'!$I:$I,0)

INDEX函数的第三个参数是col_num,即列数。我们想找到列名(门店ID)在源数据中处于第几列,即我们需要找到门店ID在源数据首行中处于第几个位置。

MATCH(D$111,'拌客源数据1-8月'!$A$1:$X$1,0)

通过嵌套的MATCH函数,我们锁定了行和列,再通过INDEX函数返回我们需要的值。

=INDEX('拌客源数据1-8月'!$A:$X,MATCH($B112,'拌客源数据1-8月'!$I:$I,0),MATCH(D$111,'拌客源数据1-8月'!$A$1:$X$1,0))

有一点我们需要注意!

  • 我们对源数据区域的选择,都需要使用快捷键F4进行行和列的锁定。

  • 我们希望在下拉的时候,上方列名不会改变,而在右拉的时候,上方列名进行改变(由门店ID变为品牌名称)所以我们需要对列名进行列锁定,即$B112

  • 我们希望在右拉的时候,左侧平台门店名称不会改变,而在下拉的时候,左侧平台门店名称进行改变(由宝山店变为合生汇店)

    所以我们需要对平台门店名称进行行锁定,即D$111

综上:

=INDEX('拌客源数据1-8月'!$A:$X,MATCH($B112,'拌客源数据1-8月'!$I:$I,0),MATCH(D$111,'拌客源数据1-8月'!$A$1:$X$1,0))

我们向下拖拽和向右拖拽后,自动填充门店ID、品牌名称和品牌ID列。

还剩下三列GMV、进店人数、下单人数

我们通过SUMIF和INDEX+MATCH联用。

INDEX函数如果行位置是0的话,会返回整列;如果列位置是0的话,会返回整行。

我们使用SUMIF函数来聚合数据。

  • SUMIF的第一个参数:判断的区域,这里是平台门店名称这一整列
INDEX('拌客源数据1-8月'!$A:$X,0,MATCH("平台门店名称",'拌客源数据1-8月'!$1:$1,0))

INDEX函数第一个参数代表整个源数据,第二个参数为0代表选中一整列,第三个参数是MATCH函数,返回的是平台门店名称在源数据首行的第几个位置。

整个INDEX函数的结果是返回了平台门店名称这一整列。

需要注意源数据的位置都应该锁住。

  • SUMIF的第二个参数:判断条件,这里是$B112,即左侧的平台门店名称。

  • SUMIF的第三个参数:求和区域,这里是上方列名(GMV)。

INDEX('拌客源数据1-8月'!$A:$X,0,MATCH(G$111,'拌客源数据1-8月'!$1:$1,0)

INDEX函数第一个参数代表整个源数据,第二个参数为0代表选中一整列,第三个参数是MATCH函数,返回的是上方列名G$111在源数据首行中的第几个位置。

整个INDEX函数的结果是返回了上方列名(GMV)在源数据中的一整列。

综上:

=SUMIF(INDEX('拌客源数据1-8月'!$A:$X,0,MATCH("平台门店名称",'拌客源数据1-8月'!$1:$1,0)),$B112,INDEX('拌客源数据1-8月'!$A:$X,0,MATCH(G$111,'拌客源数据1-8月'!$1:$1,0)))

需要注意行列的锁定。

向下向右拖拽,填充其他单元格。

函数部分总结:

image-20230907000258835

四、周报开发

一切美化工作都放到最后去做。

我们在日期列的第一行输入2020-08-10,然后第二行引用第一行的单元格+1,从第二行开始向下拖拽。

这时候如果我们改变第一个单元格的值,其他日期也会随之改变。

image-20230907105102760

平台部分点击数据选项卡下的数据验证,将验证条件改为允许序列,数据来源输入 全部,美团,饿了么

GMV列的函数逻辑:如果平台是全部,则直接求GMV;如果平台是美团或饿了么,则需要使用SUMIF/SUMIFS

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

第一版GMV列:

=IF($H$5="全部",SUMIF('拌客源数据1-8月'!$A:$A,$A13,'拌客源数据1-8月'!$J:$J),SUMIFS('拌客源数据1-8月'!$J:$J,'拌客源数据1-8月'!$A:$A,$A13,'拌客源数据1-8月'!$H:$H,$H$5))

我们再使用INDEX+MATCH函数对第一版进行改进。

=IF($H$5="全部",SUMIF('拌客源数据1-8月'!$A:$A,$A13,INDEX('拌客源数据1-8月'!$A:$X,0,MATCH(C$12,'拌客源数据1-8月'!$1:$1,0))),SUMIFS(INDEX('拌客源数据1-8月'!$A:$X,0,MATCH(C$12,'拌客源数据1-8月'!$1:$1,0)),'拌客源数据1-8月'!$A:$A,$A13,'拌客源数据1-8月'!$H:$H,$H$5))

我们对日期列不需要进行修改,只需要使用INDEX+MATCH修改上方列名。

向下、向右拖拽,得到部分结果。

到手率、客单价、进店转化率、下单转化率这四列只需要引用已经计算出来的单元格做除法即可。

我们还剩下一列营销占比需要计算。

营销占比=cpc总费用/GMV

我们的源数据中是有cpc总费用这一列的,所以我们把所有GMV(C$12)的位置直接改为"cpc总费用",再除以GMV单元格的引用即可。

=IF($H$5="全部",SUMIF('拌客源数据1-8月'!$A:$A,$A13,INDEX('拌客源数据1-8月'!$A:$X,0,MATCH("cpc总费用",'拌客源数据1-8月'!$1:$1,0))),SUMIFS(INDEX('拌客源数据1-8月'!$A:$X,0,MATCH("cpc总费用",'拌客源数据1-8月'!$1:$1,0)),'拌客源数据1-8月'!$A:$A,$A13,'拌客源数据1-8月'!$H:$H,$H$5))/C13

点击总计行的单元格,使用Alt+=快捷键快速求和。

现在只剩营销占比列的总计待求解。

营销占比总计=8-10至8-16的cpc总费用/8-10至8-16的GMV

=IF($H$5="全部",SUMIFS('拌客源数据1-8月'!T:T,'拌客源数据1-8月'!A:A,">="&A25,'拌客源数据1-8月'!A:A,"<="&B31),SUMIFS('拌客源数据1-8月'!T:T,'拌客源数据1-8月'!A:A,">="&A25,'拌客源数据1-8月'!A:A,"<="&B31,'拌客源数据1-8月'!H:H,H5))/C20

五、报表总览

全部

image-20230907191142735

美团

image-20230907191159120

饿了么

image-20230907191214573

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/124928.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在linux上挂载windows共享目录

挂载要求 非root用户&#xff08;普通用户&#xff09;能够读写windows共享目录&#xff0c;比如查看文件、创建文件、修改文件、删除文件 # 让普通用户也可以正常读写 uidvalue and gidvalue Set the owner and group of the root of the file system (default: uidgid0, bu…

Kafka的文件存储与稀疏索引机制

![在这里插入图片描述](https://img-blog.csdnimg.cn/dde7fc866d214985baaa87300a472578.png)这些是存储在分区(分区才是实际的存储)文件中的. seg是逻辑概念 而实际由log存储的. index是偏移量索引而timeindex是时间戳索引 log就是seg 找数据就是先找log 再从log去找

YOLOV7改进-添加P2和P6检测层(以YOLOV7-Tiny为例)

下载三个配置文件地址 1、加p6 1、配置文件添加 2、让它自己利用k-means算法进行聚类 3、如果从8或9出来&#xff0c;在这里改 完整

java和js实现MD5加密

java import java.security.MessageDigest;public class Demo2 {public static void main(String[] args) {Demo2 demo2 new Demo2();String encry demo2.md5("admin");System.out.println("加密后&#xff1a;" encry);}/*** md5加密*/private static…

webrtc 的Bundle group 和RTCP-MUX

1&#xff0c;最近调试程序的时候发现抱一个错误 max-bundle configured but session description has no BUNDLE group 最后发现是一个参数设置错误 config.bundle_policy webrtc::PeerConnectionInterface::BundlePolicy::kBundlePolicyMaxBundle; 2&#xff0c;rtcp-mu…

Scrum工作模式及Scrum工具

Scrum工作模式是一种敏捷软件开发方法&#xff0c;其核心是团队合作和自我组织&#xff0c;旨在通过短周期的迭代开发&#xff0c;实现快速反馈和持续改进。 Scrum工作模式包括以下角色和活动&#xff1a; 1、产品负责人&#xff08;Product Owner&#xff09;&#xff1a;负…

Cesium 根据鼠标点击生成点击点的坐标信息

Cesium 根据鼠标点击生成点击点的坐标信息 一、需求二、分析1. 创建鼠标点击事件2. 点击生成坐标但不是经纬度&#xff0c;而是笛卡尔坐标系下的坐标&#xff0c;这个时候需要做一次转换3. 完整代码 三、数据保存 一、需求 在日常开发中 &#xff0c;会遇到根据鼠标点击生成对应…

【数据仓库基础(二)】数据仓库架构

文章目录 一. 基本架构二. 主要数据仓库架构1. 数据集市架构1.1. 独立数据集市1.2. 从属数据集市1.3. Inmon企业信息工厂架构 2. Kimball数据仓库架构3. 混合型数据仓库架构 三. 操作数据存储&#xff08;ODS&#xff09; 一. 基本架构 架构是指系统的一个或多个结构。结构中包…

echarts饼图label自定义样式

生成的options {"tooltip": {"trigger": "item","axisPointer": {"type": "shadow"},"backgroundColor": "rgba(9, 24, 48, 0.5)","borderColor": "rgba(255,255,255,0.4)&q…

Commonsense Knowledge Base Completion with Structural and Semantic Context

摘要 与研究较多的传统知识库(如Freebase)相比&#xff0c;常识性知识图(如ATOMIC和ConceptNet)的自动知识库补全提出了独特的挑战。常识知识图使用自由形式的文本来表示节点&#xff0c;与传统知识库相比&#xff0c;导致节点数量增加了几个数量级(与Freebase (FB15K237)相比…

Pythonの类

Python是一种面向对象编程语言&#xff0c;因此类在Python中是很重要的概念。类是一种定义数据和行为的模板&#xff0c;可以创建对象并针对特定的问题对其进行操作。 在Python中&#xff0c;类的定义以关键字"class"开头&#xff0c;后跟类的名称。类可以包含方法和…

网络编程相关知识

写一个应用程序,让这个程序可以使用网络通信,这里就需要调用传输层提供的api,传输层提供协议,主要是两个: UDP,TCP,它们分别提供了一套不同的api,socket api. UDP和TCP UDP:无连接,不可靠传输,面向数据报,全双工 TCP:有连接,可靠传输,面向字节流,全双工 一个客户端可以连接多…

arco-design-vue的tree组件实现右击事件

arco-design-vue的tree组件实现右击事件 业务中需要使用到tree组件&#xff0c;并且还要对tree实现自定义鼠标右击事件。在arco-design-vue的文档中&#xff0c;可以明确的看到&#xff0c;tree组件并没有右击事件的相关回调&#xff0c;那要如何实现呢&#xff1f;&#xff1f…

高等数学教材重难点题型总结(四)不定积分

难点在于量级&#xff0c;不定积分一定要多练多见才能游刃有余~ 1.利用求导公式验证等式 2.计算不定积分

亚马逊秋季促销指南——如何更好的利用促销?

最新消息&#xff0c;亚马逊官方宣布将会在10月份举行Prime会员大促&#xff0c;覆盖多个站点&#xff0c;亚马逊卖家们一定要抓住这波促销机会&#xff0c;在这个秋季再冲一把&#xff01;但是还有一些小白玩家可能对于亚马逊促销了解不够&#xff0c;那么接下来我要讲的这些准…

[SpringBoot3]博客管理系统(源码放评论区了)

八、博客管理系统 创建新的SpringBoot项目&#xff0c;综合运用以上知识点&#xff0c;做一个文章管理的后台应用。依赖&#xff1a; Spring WebLombokThymeleafMyBatis FrameworkMySQL DriverBean Validationhutool 需求&#xff1a;文章管理工作&#xff0c;发布新文章&…

Databend 数据集成方案 | Data Infra 第 15 期

本期的 Data Infra 直播活动我们邀请到了 Databend Cloud 研发工程师-韩山杰&#xff0c;与大家分享主题为《 Databend 数据集成方案》的相关知识。 在本次分享中&#xff0c;你将会学到在云上基于 Databend 及 Databend Cloud 构建应用&#xff0c;掌握 Databend CDC 和 Data…

基于改进莱维飞行和混沌映射的粒子群优化算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

[国产MCU]-W801开发实例-MQTT客户端通信

MQTT客户端通信 文章目录 MQTT客户端通信1、MQTT介绍2、W801的MQTT客户端相关API介绍3、代码实现本文将详细介绍如何在W801中使用MQTT协议通信。 1、MQTT介绍 MQTT 被称为消息队列遥测传输协议。它是一种轻量级消息传递协议,可通过简单的通信机制帮助资源受限的网络客户端。 …

Sumo中Traci.trafficlight详解(上)

Sumo中Traci.trafficlight详解&#xff08;上&#xff09; 记录慢慢学习traci的每一天&#xff0c;希望也能帮到你 文章目录 Sumo中Traci.trafficlight详解&#xff08;上&#xff09;Traci.trafficlight信号灯参数讲解1.getAllProgramLogics(self,tlsID)2.getBlockingVehicle…