众所周知,Excel是微软office系列中最优秀的软件。很多人说excel啥都能干,这话没错,但实际操作起来,终有顺不顺手一说。这里我列举几个自己日常工作中经常用到的操作或功能。
1)vlookup
几乎是公式中最著名的一个。vlookup的核心是匹配。这里列举以下几个应用场景:
A)最常见的操作,根据不重复的索引key来匹配另一个表中的其他字段
例:
已知表一数据,求表二中黄色的列。这几乎是教科书中的例题。
但实际上我们几乎从未遇到过如此标准的例题。我们遇到的要么就是key不唯一,要么就是不是这么简单的求一个值。于是有了下面几个场景
B)根据投递的参数匹配中文描述
例:
导出的点击投递数据表:
实际的字典表:
这就出现了问题:
1)此时的匹配不是匹配单一的key,而是3个
2)字典中的个别字段,不是明确的,比如rseat表示该card的第几个位置,这时候没法精确匹配
问题1解决方法:通过&操作,把三个key值合并成一个,这样再进行vlookup匹配的时候,就自动实现了三个都一致才能匹配成功的效果
问题2解决方法:再增加一列只合并key1和key2的数据列,利用函数:iferror来实现,假设三个key值连在一起无法精确匹配的话,尝试匹配前两个key值是否能找到
这样操作之后就可以尽可能将匹配失败的比例降到最低。Iferror函数若不会使用的话,可以百度一下,很方便。同样的操作还可以用if(iserror(),,)来实现
同样可以用这个方法来解决的,还有日期,id等数据匹配。我们如果需要同时精细到某天某人有没有做什么行为,同样可以把日期列和id列合并,然后作为新的key进行匹配。
C)查询两列数据中的重复项
例:有两列数据,需要看两列数据中有多少是共有的
此时通过vlookup操作进行匹配
结果是这样的
是不是可以看出,凡是不是#N/A的都是查到(共有)的,而#N/A则都是不共有的。这时候如果需要算一下有几个共有的,有几个不共有的怎么算呢?千万别傻算,总是傻算你就永远脱离不了excel小白。开始想把那法用公式算是你脱离小白的第一步。
我们把公式修改一下变为:=IF(ISERROR(VLOOKUP(A2,C:C,1,FALSE)),0,1)
解释一下这行函数:对这个vlookup的操作进行判断,如果出错了,那么这个单元格值赋0,如果没出错,就赋值1。拉下来效果是这样的:
有没有发现,这时候把B列中的数据求和(sum),就是总的共有的单元格数;而计数(count),就是数列1的总条数。而求和/条数就是数列1中与数列2共有条数在数列1中的占比。是不是很方便。
D)需要查询的字段很多,但又希望通过公式直接拖动
例:已知上表,需要填补下表中的数据
按照常规的操作,我们会在Jack字段1中填写:=VLOOKUP(H2,A:F,2,FALSE)。没错,这个是可以查到,同时真个I列的数据还都可以查到。但是这时候如果你把同样的公式拖动到J列的时候,你会发现J列的公式会是:=VLOOKUP(I2,B:G,2,FALSE)。如果有一定基础的话,你会说,可以把原本的H2前面加上$,这样就可以锁定列并且不会随着列的拖动而改动了。没错,可是第三个参数呢?第三个参数永远会是2,而你后面的列需要的是递增的3,4,5。
这时候你需要把公式中的2替换一下,升级为:=VLOOKUP($H2,$A:$F,COLUMN(B2),FALSE)
解释一下这个改动。首先,所以公式的复制黏贴,随着你单元格的位移,所有公式中的行列,都会一起动。所以如果你不希望动的话,需要加上$。所以这个操作中,索引H列不希望动,字典表区域:A到F列不希望动,所以都需要加上$。然后就是第三个参数变为了column(B2),这是什么原因呢?因为公式的复制黏贴会让没有加上$的数据都一起动,所以column(B2)取的是B2的列数,当计算I2的时候,它是2;当复制到J2的时候,B2变成了C2,列变为了3,也就是说第三个参数的数值实现了跟随列一起递增的效果。
最后备注几条:
1)vlookup只能从左边匹配右边的数据,所以尽可能把key放在最左边
2)网上会有直接匹配左边的教学,个人基本不会用到,你直接剪切到左边就行了
3)新的office excel版本除了xlookup函数,可以更方便匹配,如果更新了的话可以使用
2)数据格式整理
A)分列
理想中的数据源是已经很整齐的数据表,但现实有时会更复杂。比如
这时候就需要你自己把他们拆开变成表格的样式,通过分列的方法。
1)选中目标列
2)点击“数据”tab中的“分列”按钮
3)点击下一步
4)在分隔符号中选择or输入你这个数据列中的分隔符号,此时你可以通过下方的预览看到实际的变化,再点击下一步
5)根据你的实际情况选择格式,通常为常规(后面将什么时候选文本或其他),点击完成
6)根据你的实际情况选择格式,通常为常规(后面将什么时候选文本或其他),点击完成
同样可以用到分列操作的还有超长数字。有时候数字超过11位时,就会自动变为科学计数法的表达方式。
但是如果你的这个数字实际是一个id,或就是一个很大的数字而你又希望他就显示数字的话,怎么办呢?用分列。一样的操作,在分隔符号时不需要做任何改动,一路下一步到列数据格式,选择文本。这时候数据会变成这样
左上角有一个绿色的三角,这个三角就表示你的数值正在以文本的形式存在。同样奏效的还有一个方法是,直接把单元格的格式变为文本,然后双击该单元格。这个操作针对数据少的时候可以用,但是缺点是必须每个单元格都一一双击。所以数据多的时候建议用分列。
B)Left,right,mid
例:身份证的不同位数表示的是不同的含义。假设某人的身份证是310108123412111234(杜撰的),而你需要拆分成省份,行政区,生日,尾号四个字段,怎么办呢?
通过left,mid,right可以解决。具体方法可以自行百度搜索,这里不展开了。
而上方的例子操作简单是因为他的位数是固定的,而有时数据不是固定长度的,而你会发现,开头的两位是没有用的,你就需要去掉开头的两位,这时候怎么办呢?
例:AD1234123124,CD1231241,你只需要后面的数字部分。
解法:=right(A1,len(A1)-2)。原理是:从右边取比整个字符串长度少两个的字符串,其实就是等同于去掉最左边的两个字符
Mid的操作这里就不赘述了,可以自行拓展一下
3)数据透视表
数据透视表的原理是针对数据进行不同维度的统计。而维度指的是不同列中的值。
例:
对于这个数据而言,如果你要看每个rpage字段的次数总和,或者条数;或者是新用户的点击次数总和,那么你可以用数据透视表的方法来进行统计。这个是最常规的使用方法。
所以了解了这个机制之后,大家就会知道,实际上有了源数据之后,你能实现的统计维度是很多样的。所以如果你需要的数据分析不是非常明确的统计维度的话,建议问开发导出的数据不要太聚合。
我个人在设计BI报表的时候,也会有针对性地设计一些专门用来数据分析的报表,即尽可能将数据的维度平铺开展示,而不是通过筛选项来实现。当然这样的表一张就够。比如渠道以及对应的数据。
除此之外,去重计数是一个数据透视表的痛点。但实际上他是能实现的。
例:这是一张用户点击特定位置次数的明细表
如果我们需要统计点击各个位置的去重人数有几个,通过透视表怎么统计呢?
首先先创建一个普通的透视表
然后在这里点击更多表格,会生成一个新的透视表
在新的透视表内,把位置和id勾选上
然后右击数据,在汇总依据中选择其他方式,然后会挑出一个弹窗
在里面选择非重复计数即可
4)其他的话
在这里再分享几条自己的想法:
1)excel的熟练程度其实只要掌握了基本的几个函数的应用,就已经达到入门级别了。具体有哪些函数,自行百度
2)希望excel能力要提升,最最关键的是平时处理数据的时候要有通过公式来替代人工解决问题的习惯。同一个问题你今天不解决,明天不解决就永远不会;相反你查了一次,就多了一个技能。你可能之后会忘记,但是你知道有这个方法,下次就能想到
3)平时可以学习一些快捷键,比如选中可以通过ctrl+A,也可以连带shift来实现快速选中一整块;然后建立数据透视表可以用alt+n+v;建立筛选可以通过alt+d+f+f。这些东西都是日积月累起来的。最终会让别人用半小时处理的事情,你5分钟就搞定
4)没有必要所有的事情都用excel来处理。Excel最终始终是工具,工具就要顺手。如果别的问题有其他工具你更顺手,那就用其他工具