EXCEL从入门到熟练?缺乏体系和数据源?练好这篇就够了!

这篇文章是本系列的第一篇,选择性汇总了EXCEL的常用且重点的模块和公式,用作内部员工EXCEL基础操作培训,以帮助表格基础薄弱的同事快速熟悉常用操作,提升工作效率。

所有公式均结合实例,讲为辅,练为主。

兴趣和实际需求是最好的老师,你想用这些软件做什么,你觉得它们是否有趣,决定了你学习的速度和深度。

V2 Fba56011ebbf19ae6d45c5a0110565b1 720w

Excel高手可以直接跳过,其他同鞋可以当做回顾和复习。这,将是后面数据分析的公式(EXCEL)基础。

文章略长,大家可以先马后看,当然更重要的是实践。

01 基础操作模块

1.1 数据透视表

开篇神器必谈透视表,它可以说是EXCEL的核武器了,杀伤力爆表。不过有一点和核武器不同,它不仅灰常重要,还经常在实战中使用。

百度定义是这样的:数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等。

Emmm,各位看完之后有没有一个特别清晰的概念呢。反正我是没有的。我觉得数据透视表就是一个快速分组,并基于分组个性化计算的神器。

V2 F4e5bcd126418e8dc088e4a6696bcd7a 720w

下面我们结合数据来一探究竟:

源数据是2017年7月-12月的销售数据,每一行代表一笔交易,数据涉及5个关键字段”订单序列”,“日期”,“省份”,“城市”,销售额“。如果我们想知道每个月,每个省份销售额是多少该怎么办呢?

在学会透视表之前我会靠着缜密的思维和坚韧的毅力人肉计算。掌握透视表之后我发现当初缜密的思维和坚韧的毅力都是(**)的表现。

我们先选中所有列,在插入模块选中“数据透视表”

 

V2 C2323c6d28bf64b2a37c5cdcb47d4def 720w

 

接着就是选择数据透视表存放的区域,默认是新工作表,大家在实践中也可选择现有工作表的区域。

 

V2 61374458423f1988a35d0f25d3622fa9 720w

 

开始的透视表什么都没有,大家注意右侧的“数据透视表字段”区域,这里是控制透视表的核心地带。我们的问题是“计算每个月,每个省份的销售额”,那就是按照“月”和“省份”来进行分组了。

以哪个字段分组,就将哪个字段拖到行或者列,像下面这样:

 

V2 35bd44a49e19c303672d1d08a4eaf2eb 720w

 

左侧数据透视表结构区域随着我们的拖动发生了变化,刚才我们把日期拖动到行,把省份移动到列,果然,数据透视表布局和我们操作一毛一样:

 

V2 D2e90d243e1b01cb4fab44bbeeb24d35 720w

 

等等!我们是想知道每个月的销售情况,为什么这里出现的是“年月日 时分秒”的格式?

那是因为,我们源数据格式是酱紫的,数据透视表分组逻辑是判断是否唯一,如果唯一则单独分为一行(或一列),想要把行标签的日期格式变成月的维度,也很简单。

我们选择行标签的单元格,右键选择“创建组”:

 

V2 A96aca5510f3d29168af7f6eac0d1201 720w

 

点击创建组之后会出现如下选项卡:

 

V2 Af38af8a8ed5b1b80ecdec8c1d0c4816 720w

 

起始时间默认是源数据中最早和最晚时间,这里不用更改,“步长”就是选择以什么时间维度去分组,我们想以月的维度创建分组,所以选择“月”

 

V2 B12946bc77bf46c70bb53b6050a29303 720w

 

这透视表分组,如你所愿了,行是月份,列是省份。

分组完了,下面就是个性化计算,我们要计算涉及到的核心字段是销售额,在已经分好组的情况下,只需要把销售额字段拖到值的位置:

 

V2 D33f1612672c3b47bec70e2ab769523b 720w

 

数据透视表随之改变,大功告成。。。了吗?

 

V2 2cba8adb32d51b0e59756998b768f205 720w

 

别急,大功只差一步,大家注意,我们刚才把销售额拖动到值的位置,默认是“计数项”,也就是说,数据透视表现在显示的每个值,指的是订单数量,如果要计算销售额,要再点击“销售额”字段。

 

V2 C01c9b563e951fed2711f24039c24135 720w

 

进入“值字段设置”

 

V2 18d317d684564f9eca4de1929c177ed7 720w

 

这里的“计算类型”是个性化计算的核心了,选择“求和”,我们就得到各月各省的销售额总和,“平均值”就是各月各省销售额平均值,最大值、最小值依然。(我们最常用的也就是这几个)

最后才算大功告成:各省、各月销售额,一目了然。

 

V2 475ae8ea8fd09b5037bc155ce29a0679 720w

 

1.2 分列

很多时候,我们拿到的源数据某一列是按一定规律混杂的,而我们需要把它分成多个列,从而有侧重的分析。

假如我们从数据库中导出的数据是这样的:

 

V2 Fadc61bbb94f5b989d9e54a557c705c5 720w

 

省-市混在一起,正常分析我们当然需要将省和市拎出来单独分析,很简单,选中源数据所在的列,点击“数据”选项卡,选择“分列”

 

V2 B1b3876c267973d6a48081dbe2c64821 720w

 

这时候会蹦出分列的逻辑

 

V2 49713be75ba82f960b56f797608d6474 720w

 

第一种是按照分隔符号分列

 

V2 1c45481d164bf7324a22a72e9eb8be89 720w

 

规性的符号有Tab键、分号、逗号,这里我们分列的依据是中文波折号,所以勾选其他,手动输入“——”,需要注意,上面源数据里,中文波折号是两个短线构成,而这里手动输入最多只能输入一条短线:

 

V2 0fae25c54eebcda7bcf889020232f2d8 720w

 

输入之后我们会看到源数据列已经被分成3列(系统默认按照单个短线划分,省—空行—市),正常情况我们是想分成两列的,只需要勾选“连续分隔符号视为单个处理”即可。

 

V2 2230d3ae1f0430232d5313cc7276f2a5 720w

 

有一种分列逻辑是按照固定长度,适用于规律非常明确的源数据,只需要自己移动分割线的位置,就能实现源数据的自定义分列:

 

V2 6633ce0b8cb1401410b9d3715b6c1b54 720w

 

结果就是把省的名称和”省“字分成单独两列。

1.3 删除重复项

顾名思义,就是删掉重复的项,这个项指的是行。

 

V2 1490aec70b086207c19142b679e9d486 720w

 

选中数据,点击“数据”选项卡下的“删除重复项”

 

V2 2978a321a7a5874525525784eb3a7f29 720w

 

弹出删除界面:

 

V2 E806476272f194ee4131b4bf63ba68d3 720w

 

默认是全选,但一定要慎重,假如我们单勾选A,就是只判断A列中的值是否重复,若重复则删去(单选B则删B),这里我们选单选A尝试,

结果反馈:

 

V2 F2a47864b2d9dc0f46935e8cf713a0db 720w

 

删除后的数据:

 

V2 6108027f90df5762c3a1861a3c59c56a 720w

 

源数据中,第6行杭州的钢铁侠和北京的钢铁侠都被删除了,毕竟钢铁侠只有一个。

但是!钢铁侠只有一个,并不妨碍我前室友曾自诩“穷版钢铁侠”啊,同理,杭州的钢铁侠可能和北京的钢铁侠并不是一个人。

因此,需要同时判断姓名和城市,如果都重复才会删除,只有一个重复则保留。要实现这个逻辑,只需要按照默认勾选,同时选A和B就可以了,结果如下:

 

V2 06007d4315c48b05063dc6ee1bc382a9 720w

 

OKAY~That is it!

02 字符串相关

2.1 LEN、LENB

LEN(字符串)和LENB(字符串)是俩兄弟,他们都是用来衡量目标字符串长度的,但度量维度有所不同。

简单来说,英文和数字的话,用LEN(TEXT)和LENB(TEXT)得到的数字是一样的,而汉字LEN(TEXT)中,一个汉字是1个长度,LENB(TEXT)则是2个。

 

V2 F49e9b3192ddf7f9012b2f763fb5ae77 720w

 

2.2 TRIM和SUBSTITUDE

上面两个函数专用于清除空格,只是他们清除的空格位置不同。

TRIM(单元格)清除的是目标单元格前后的空格

而SUBSTITUDE(单元格)清除了目标所有空格,包括字符串中间的空格。

2.3 CONCATENATE 和 &

常用于连接多个单元格内容

现在有这几个单元格

 

V2 Baaf6b01124f0820be1c0ef7cccc595f 720w

 

我们想把A8,A9,A10单元格中的内容连接起来,很简单,用CONCATENATE 或者 & (他们实现的是一样的链接效果)

 

V2 017bbcc36d6cf5f3e18ffa62542b3e82 720w

 

2.4 LEFT,RIGHT

他们语法逻辑是一样的,拿LEFT来说,他有两个参数

LEFT(TEXT,NUM),第一个参数输入你要提取内容所在的位置(单元格),第二个参数是一个数字,也就是你想要从左边开始,提取多少位,LEFT(text,3),就是从左边起,提取3个字符,RIGHT(TEXT,3)是从右边起,提取3个,下面是一个简单的例子:

我们想要分别提取A13单元格,左边3个字符,右边5个字符:

 

V2 1fba3acb2b5f3c268826d89c2505ca08 720w

 

2.5 FIND,SEARCH,MID

上面LEFT和RIGHT是很粗暴的提取方法,而MID就显得更加温婉和灵活了,

 

V2 D51fd12ec63e80c1e7de4635a8a43fcb 720w

 

有一串这样的文本,而我们只想要提取其中的数字部分,该怎么做呢?

很简单,输入“=MID(TEXT,4,4)”即可,MID有3个参数,第一个参数依然是目标单元格,第二个参数规定了从第几个字符开始提取,第三个参数是说提取几位。上面的公式是说我们从第4个字符开始,提取其后的4位,结果如下:

 

V2 8350270ec0717451315b1c1906c62aa7 720w

 

提取问题加大难度:

 

V2 C4d1109c2784e195e2eadb5183d155f5 720w

 

假如我们想要提取上面“省-市”单元格中的城市部分,怎么办呢?(比如武汉市、杭州市..)

首先你想到了MID函数,很棒!但是MID需要指定从第几个字符开始,这里“黑龙江省”和其他省长度不一样,不能够硬性指定从第几个字符开始,也不能强制性指定截取多少位,如果有个灵活查找固定字符出现位置的函数,我们MID就可以用了。这个时候,FIND和SEARCH函数闪亮登场!

FIND(要查找什么,TEXT,从第几个开始)和SEARCH函数都有3个参数,第一个参数是我们想要查找的内容,这里也就是“省”,第二个参数是在哪里查找,即目标单元格,我们以A28为例,第三个参数是从第几个开始查找,可以根据需要设置,此处我们设置为1。对应函数和结果如下:

 

V2 134a277551f6871762b3e0a1d093ea66 720w

 

到这一步,MID函数第一个参数(提取谁)有了,第二个参数(从哪里开始截取)也有了,还差一个截取长度设定。仔细观察目标函数,发现规律了吗?没错,我们可以再次利用FIND或SEARCH函数,找到“市”出现的位置,用市出现的位置减去省出现的位置,不就是我们要截取的长度了?

注意,MID(TEXT,从哪里开始,截取几个),我们刚才拿到“省”的位置,还需要加1,才是正确的开始位置。到此,3个宝石在手(参数),MID函数打了个响指,喏,就是这样:

 

V2 F9984a1bb8426cc175e0fa53aa0b14cd 720w

 

FIND和SEARCH函数语法相近,需要注意的是FIND区分大小写,SEARCH不区分,举个简单的栗子:

 

V2 Ee329be49ddd4eef20b793a22fde2612 720w

 

用FIND查找“D”,会严格找到大写的“D",而SEARCH不区分大小写,遇到小写的"d"就停止了搜索。

现在,你掌握了LEFT,RIGHT,MID,FIND,SEARCH,结合源数据打个响指试试呗。

03 日期函数

3.1 时间函数

YEAR,MONTH,DAY,WEEKDAY,HOUR,MINUTE,SECOND

上面7个公式,其实本质都是一样的,那就是获取目标日期的对应模块。

比如year(时间)得到的就是年份,month(时间)会返回月份,minute(时间)得到具体的分钟数,second(时间)亦然。至于weekday嘛有点特殊,他有两个参数:

 

V2 E0cb7f69b319b2a35c6e335afa7cf511 720w

 

第一个参数和前面介绍的函数一样,就是目标时间,后面的参数选项比较多了,大家可以尝试一下

 

V2 776a7e2e8360e6ffe22911d8b73d7c08 720w

 

咳,同志们,不要被参数所迷惑,我们使用weekday是想知道目标时间是星期几,这个星期几我们习惯是从星期一开始算的,默认选择2就OK。

下面是一个小例子

 

V2 Fbc07c113d09d89bd440437149d83c8c 720w

 

上述这些GUYS在实践中常用于构建辅助列。

3.2 DAYS

DAYS(结束日期,开始日期),输入结束日期和开始日期,DAYS函数会计算返回两个日期的相差天数:

 

V2 Df7d6000d2116429babe420530cb93e9 720w

 

04 逻辑与条件判断

4.1 AND,OR

AND(参数1,参数2,..),AND参数个数不限,每个参数是一个判断,比如(A1>0),每个判断回返回一个TRUE(A1确实大于0)或者FALSE(A1小于等于0),如果每一个参数返回的都是TRUE,AND会返回一个TRUE,如果有一个返回FALSE,AND则返回FALSE。

OR用法和AND一样,不同的是,只有当所有的参数返回FALSE,OR函数才会最终返回FALSE,否则会返回TRUE。

概括来说,

AND是(参数)全为真(TRUE)时才为真(TRUE)

OR是(参数)全为假(FALSE)时才为假(FALSE)

他们通常结合IF条件判断函数使用。

4.2 IF

IF(判断条件,如果为真执行的操作,如果为假执行的操作)

一个简单例子:IF("数学>90“,”优秀“,”不够优秀“),第一个参数会判断数学是否大于90分,如果大于就返回TRUE,程序会自动执行第二个参数里面的指令,这里是显示”优秀“,否则则执行第三个参数(FALSE)时的指令。

简单嵌套一下:IF("数学">90,"优秀",IF("数学">80,"良好",IF(”数学">60,“及格”,“不及格")

别晕,一层一层看,显示判断数学是否大于90分,大于就是优秀,否则再判断是否大于80(小于90的情况下),是则返回“良好",不然继续判断是否大于60,大于60是及格,小于就是不及格。

需要注意的是,IF函数可以不断嵌套。

IF大哥出镜率很高,我们再来引入一个情景集合AND函数巩固一下,我们这里有ABCDE五位男嘉宾,有颜值和身材两个打分维度,1的话代表公认具备,0的话代表不具备

打分后的结果是这个样子:

 

V2 A1207c028d1b1e61b5399ffed2104d21 720w

 

我们需要判断每个男嘉宾属于什么类型,如果颜值和身材并存(都是1),自然是男神了,如果颜值1身材0,暂且归为“靠脸吃饭”,如果只有身材没有颜,就是“肌肉男”,最后,如果什么都没有,别灰心,至少还是个好人。

要完成上述打分,IF结合AND可以很轻松的搞定:

05 匹配

匹配函数很多种,只有VLOOKUP最受宠。

VLOOKUP(匹配的参数,想要在哪个区域匹配,返回匹配区域的第多少列,是否精确查找)

函数构成很难懂,绝知此事要躬行

现在有两个区域,区域1一个是包含产品ID,销量,销售额

区域2一个是供应商表,有ID,最早生成时间,供应商三个字段,还缺少销量,销售额两个字段:

 

V2 A37978ce6abe18cb953ded771d6dc611 720w

 

我们发现两个区域的表有一个交集,他们有共同的产品ID,因此,我们可以通过ID作为纽带,将区域1里面的销量、销售额数据匹配到区域2中。

先做销量,我们在J2单元格输入如下公式:

展开解释,首先我们想要根据G2单元格的ID——SW0001进行匹配,第一个参数就是G2,

第二步:是想根据ID匹配获取表1区域的销量字段,所以在第二个参数位置输入A:C(选择A到C列所有数据),选定待匹配的数据列;

第三步:就是输入我们想要返回的列数(这里是销量),从匹配列(ID)数起,ID本身是第一列,销量是第二列,因此我们在第三个参数输入2;

最后,就是选择匹配方式,精确匹配还是近似匹配,绝大部分情况下我们默认精确匹配,因此输入FALSE或者0。

这样,根据ID我们就匹配到了对应ID的销量,销售额公式只需要改变返回的列数即可:

至此,表2的区域获取了销量、销售额相关数据:

 

V2 51b98a2388089c959e3ea80f0b1d6560 720w

 

注:这里两张表放在一起是为了方便演示,实际中表格一般是独立的,函数都支持跨表格选择对应参数。

06 计算统计相关

6.1 COUNT/COUNTIF

COUNT(区域)函数,是统计目标区域有多少个数值类型的单元格,拿下面数据为例:

 

V2 3d8504d3a4a6530ceca36a5bc96f1095 720w

 

=COUNT(A:C),就是统计A、B、C列所有单元格,有多少个数值类型的,结果显而易见是20(销量和销售额都是数值类型)。

COUNT函数还有一群表兄弟:COUNTA(区域)是统计所有非空单元格个数,COUNTBLANK(区域)统计空白单元格个数,他们不太常用,就不展开赘述。

下面重点讲一下COUNTIF函数。

他可以统计区域内,符合我们设置条件的单元格个数。

COUNTIF(区域,条件)由2个参数构成,第一个是要统计的区域,第二个是条件设置,比如我们想要统计ID为“SW0001”的产品出现了多少次,输入

即可,还有一个小技巧

 

V2 17a78ae562f37435e5be72ddc1b55f18 720w

 

上面数据中,"SW0001"在F2单元格,在COUNTIF函数第二个参数直接输入他所在的位置F2,等同于输入了“=SW0001"。

6.2 SUM和SUMIF

SUM函数很好懂,常用于对某一区域求和,SUM(区域)就是对该区域内所有数值求和。

SUMIF用法稍微复杂点,SUMIF(匹配列,条件,求和列)直接上例子:

 

V2 2bcd2f2a321314443be1fac9d28d7fe1 720w

 

左边是之前的数据,产品ID存在重复,我们想计算出每个ID的销量之和(补全右边销量区域),以F2为例,直接输入SUMIF(A:A,F2,B:B)

第一个参数是被匹配区域的匹配列,简单来说,你想通过F列的ID,来匹配A列的ID(再获取A附近的销量列),那么A:A就是被匹配区域的匹配列

第二个参数是条件,以F2为例,参数输入F2,等同于"=SW0001",当A列产品ID等于"SW0001“时,条件生效。

第三个参数规定了求和列,是对销量进行汇总,自然就是B:B。

 

V2 7d731f0edbb0e1e4caa6a780b194bae6 720w

 

6.3 MAX/MIN/AVERAGE/MEDIAN/STD

最后这几个函数用法都很简单,只需要选定区域,就能计算对应的结果:

MAX 最大值,MIN最小值

AVERAGE 平均值,MEDIAN则是中位数

STD(2016版是STDEV.P)计算的是样本总体标准差。

以上,虽没有做到面面俱到,但已经涉及了大部分工作中常用的操作和公式。整理不易,觉得有用的点个好看哈~不知道会不会有人耐着性子看到这个地方,能一口气看下来的毅力绝对能成大事!

且受小编一拜!