这些数据清理工作在Excel中有更好的方法(二)
今天我们继续介绍使用Power Query可以完成的数据清洗工作。
解决Vlookup匹配出现错误的问题(不可打印字符和空格)
我们知道,在使用Vlookup函数时,往往会遇到匹配结果出现错误值:#N/A的情况,此时,往往在超过99%的场景下是由于下面的两个原因造成的:
空格—在查找区域的第一列或查找值中含有空格
不可打印字符—在查找区域的第一列或查找值中含有不可打印字符
例如,在下图中,如果我们有一个VLOOKUP公式返回了错误值:
其实都是因为不可见字符闹的:
对于VLOOKUP函数的错误而言,空格其实占了大多数情况:
在本图中,两个值看上去都是“芬达苹果200”,但是VLookup返回错误值,原因是因为有一个芬达苹果多了一个空格。
关于空格,我们可以像用Clean函数清楚不可见字符一样,用Trim函数处理空格。也可以使用替换来处理:
不管使用哪种方法,都是手工工作模式,不能建立自动化数据处理过程。(而且替换需要考虑中英文空格不同的情形)
在Power Query中可以很方便的处理这种情况:
抽取部分内容作为新的一列
下面的例子我们在介绍快速填充功能时讲过:
同样,这个巧妙的方法是个一次性的手工操作,不能建立在自动化数据处理过程中。
在Power Query中可以很方便的完成:
还可以采取跟快速填充同样的做法:
清除数据表中的错误值
我们拿到的数据源中可能包含错误值,这些Excel的错误值都是有函数计算带来的,当我们把公式粘贴成数值时,这些错误值也被保留了下来:
当我们使用公式计算时,我们可以使用IFERROR等函数处理错误值。但是对于已经存在在公式中的常量错误值,我们只能删除它们(或者替换成别的内容)。下面是常规的清除错误值的方法:
尽管很简单,但是面临同样的问题:你无法自动化这个过程。
我们可以使用Power Query来完成这个工作:
需要注意的是,所有的错误值进入到Power Query后,都被当作Error
总结
对于数据处理工作来说,Power Query是一个再合适不过的工具了,利用它,我们就可以在源数据和结果报表之间建立一个流水线,自动完成数据处理工作。那些耗时长的重复性工作都可以在这个流水线中自动完成。
关注本公众号,点击底部菜单“联系客服”,与客服取得联系,索取“更好的数据清洗方法(二)”案例文件