技巧 | 数据分析处理前,你的第一步是什么?

又到一年年终汇报时,相信大家都在回顾2017,展望2018。这其中少不了一些年度汇报。针对年度汇报,我们都希望呈现出自己工作业绩完美的一面,形成一个个内容充实,视觉可观的报告,像这样:
视觉效果很不错,会给你的成绩汇报加分。
而形成这样的报告,其前提是要对你的业务数据进行分析,而分析的第一步,你是什么做的呢?
比如看看下面的一个简单例子:每个省/市有代码,现在系统通过代码来获取省/市的名称
公式:=vlookup(d2,a:b,2,0)
从公式上看,没有问题,但是就是得不到所期望的结果,为什么呢?
俗语说:你看到的,未比就是你想象中那样,正确的。
现在看到的表格中,要查代码是11的省市,而11即可以作为文本,又可以作为数字,所以要采用vlookup核查的时候,需要明确其类型是一致,故:数据处理的第一步的时候,你要明确你的数据类型,是文本,还是数值,或者还是其他?
那针对上述问题,我们校验一下:
公式1:istext(a2) 结果为false
公式2:istext(d2) 结果为true
很明显,数据类型不一致,结果很显然,对不了
那如何处理呢?
常规方法:采用数据分列的模式,让数值变为文本
再往下看:依旧是这个例子
首先公式没有问题,其次代码层面也检查了,都是文本类型了,但是为什么还是错呢?
还是那句俗语:你看到的,未比就是你想象中那样,正确的。
那要如何处理呢,请往下看
公式1:len(a2) 结果为3
公式2:len(d2) 结果为2
很明显,虽然都是文本,但是长度不一样,那基本可以判定,里面肯定含有空格,针对这种空格,显然不是我什么所需的,那此时可以通过
通过公式:=substitute(a2, ,) 进行处理
将空格替换为了空()
这样就可以完美的解决了。
除了substitute函数,trim函数也可以就可以处理。如下:
那整理下:substitute与trim的区别
两者本质上都是将空格去掉,前者是采用替换的方式,凡是遇到空格,全部替换为空;但是后者在执行的时候,不是全部替换,而是有选择性的替换(主要在英文方面使用,比如my name is pangsiji,很明显,英文词之间的空格就是不需要替换的)
所以在处理数据时,需要清除你的数据时中文还是英文,然后在考虑用substitute或trim
再往下看,我们经常会从erp系统里面到出数据,然后进行加工处理,此时有一些数字看着是一样,也都是文本,长度也一致,但是就是不对,如下:
为什么呢?
因为数据从外部获取,这些数据中,由于计算机的处理,会存在一些非打印字符(是什么可以暂时不考虑),由于你看不到,同时也满足了相应的文本条件和字符串长度条件,导致结果出错,所以你需要处理这些非打印字符。
处理方式,用clean函数,将非打印字符去掉即可
说道这里,你以为完了?no,no,no……
还有一种,比较变态,胖斯基也经常遇到,就是全角和半角符号输入的内容(这里主要说的是空格)
在上文中采用substitute(a2, ,)进行了空格的替换,一般情况下,基本都能解决。但是有时候,你分列变为文本,clean处理了非打印字符,trim和substitute处理了空格,依旧不对,此时你需要考虑下这个空格是不是全角空格(尤其是从系统里面输出的数据),这里,你可以在你的substitute(a2, ,)公式中,空格的地方,输入全角符号的空格,怎么输入?切换你的输入法
so,说了这么多,胖斯基是想告诉你,当你在进行数据分析处理的时候,第1步要做:
1. 明确原始数据的类型,是文本还是数值;
2. 明确文本类型的数值情况下,采用采用clean将非打印字符去掉,也可以采用trim和substitue函数将空格去掉(注意用法区别)
3. 如果还不行,你就要考虑考虑是不是有全角符号在里面输入(这个最为常见也最为变态)
这样,数据处理时才能提高你的效率!
加油吧,少年!