Excel 中的筛选想必大家都经常使用吧,它可以快速的在某一列当中筛选出符合条件的记录。
而其中的高级筛选,可能大家用的并不是很多吧!
但是,如果能用好它,可以大大提高我们的工作效率。
今天,我跟大家分享的是高级筛选的另类用法。
❶ 提取出两个表格的共同项。
❷ 提取出两个表格的不同项。
下面就跟我一起来看看吧!
提取出两表的共同项
如下图,在表 1 中是我们平时记录的一张发票明细表:
表 2,是从网上导出来的表格:
现在想提取两个表格中都有的数据,以便我们作为本月的核账和记账的数据。
👉 具体操作步骤如下:
❶ 先选择【表 3】工作表中的【A1】中的单元格,用于存放筛选出来的结果数据。
❷ 在【数据】选项卡中点击【高级】筛选按钮,调出【高级筛选】对话框,
❸ 点击【列表区域】选择【表 1】工作表中的数据区域,再选择【条件区域】选择【表 2】工作表中的数据区域。
❹ 点击【将筛选结果复制到其他位置】,此处选择【表 3】中的【A1】单元格,最后点击【确定】。
结果如下图:
最终,我们将两个表中共有的数据都筛选出来了,一共筛选出来 6 条相同的数据。
PS :在使用高级筛选的时候,各表中的标题名称需要一样!
如果将筛选结果放在一张新表中(比如,我们这里将筛选的结果放在【表 3】中),需要先将活动单元格定位在【表 3】中,然后调出【高级筛选】对话框,再进行后续操作!
另外,这里给大家稍微讲下函数做法,做下补充。
我们也可以用 COUNTIFS 计数函数来提取两表的相同项。
如下图:
在【表 1】中的【F3】单元格输入如下公式:
=COUNTIFS表 2!A:A,'表 1'!A3表 2!B:B,'表 1'!B3表 2!C:C,'表 1'!C3表 2!D:D,'表 1'!D3表 2!E:E,'表 1'!E3)
公式的意思是:
在【表 2】中统计【表 1】中每一个单元格出现的次数。
如果结果为 1,表示在【表 1】中的数据在【表 2】中有。
如果结果为 0,表示在【表 2】中没有。
最后筛选结果为 1 的数据,就是我们想要的共同项。
是不是看上去公式很长很长,如果列数比较多的话,那公式写起来还是挺麻烦的。
而高级筛选只要点点鼠标就可以搞定啦!
提取出两表的不同项
上面,我们通过高级筛选筛选出两表相同的数据,那如何找出他们的不同项呢?
有的小伙伴们肯定已经想到了,隐藏的数据不就是它们之间没有的数据嘛?
如何把它们找出来呢?
我们还是以上面的为例,比如,我们想知道表 1 中哪些记录在表 2 中没有的。
👉 操作步骤如下:
❶ 选中【表 1】中任意单元格,然后点击【数据】中的【高级】,调出【高级筛选】对话框,并选择【A2:E12】数据区域,
❷ 点击【条件区域】中的文本框,并选择【表 2】中的数据区域【A2:E12】。最后点击【确定】。
❸ 将筛选出来的数据的字体,设置成蓝色(只要跟原来的字体颜色不同就行)。
❹ 取消【高级筛选】,并设置为【筛选】。
PS:直接点击【筛选】按钮,就可以自动取消【高级筛选】功能了。
❺ 选择【按颜色筛选】中的【按字体颜色筛选】-【自动】。
最终的效果如下图:
其中,有 4 条记录与【表 2】中的数据不同:有可能是发票号码不同,也有可能是其他某些单元格不同。
当然我们用上面介绍过的 Countif 函数的做法也可以,把显示为 0 的单元格所在行筛选出来,就是我们想要的结果了。
知识扩展
学习了上面的高级筛选方法,我们可以轻松解决两表之间的差异情况,
但是,我们要是以超过 15 位数字的身份证号码或者银行卡号等作为筛选条件的话,筛选出来的结果并不是我们期望的。
如下图,我们想以【E2】中的身份证号码为条件进行筛选,
我们按照上面的步骤把【列表区域】、【条件区域】都添加进来,之后点击【将筛选结果复制到其他位置】,并在【复制到】文本框中输入【F1】。
结果如下:
所有记录都被筛出来了。
这是咋回事呢?
原因就出在这个数字的位数上。
如果数字的位数超过 15 位的话,默认后面的数字都是 0。
这种情况下该怎么办呢?
其实解决办法也很简单,只要在身份证号码的后面加上一个星号(「*」),问题就解决了。
添加*的目的就是把数字强行变成文本。
这里的星号(「*」)是通配符。
当然,如果数据比较多的话,也可以用公式来批量添加:
公式如下:
=E2&"*"
用文本连接符(&)连接一个星号,因为星号是字符所以需要用双引号包围住。
我们再重新操作一下,把区域都添加进来:选择复制到【F4】单元格用来存放结果数据,最后点【确定】即可。
结果如下:
这样结果就正确啦!
写在最后
今天介绍了高级筛选的另类用法:
❶ 提取两表的共同项。
❷ 提取两表的不同项。
❸ 对于超过 15 位数字的号码筛选出错的解决方法。
你都学会了吗?
本文来自微信公众号:秋叶 Excel (ID:excel100),作者:明镜在心,编辑:小音、竺兰