设为首页收藏本站

嘻皮客娱乐学习网

 找回密码
 中文注册
搜索
打印 上一主题 下一主题
开启左侧

[Excel技巧] 从两列中提取相同或不相同数据的数组公式

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-10 10:07:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
有时在Excel中需要对两列进行比较,并提取两列中相同或不相同的数据,例如A列和B列分别包含一些人员名单,现在需要找出两列中都存在的姓名(A有B有)、A列中存在B列中不存在的姓名(A有B无)及A列中不存在B列中存在的姓名(A无B有),并分别放置到D、E、F列中。
   
    假如两列名单分别在A2:A20和B2:B15区域中,用下面的两组数组公式即可获取相应的名单,每个公式输入完毕后,需按Ctrl+Shift+Enter结束。
    1.获取A列和B列中相同的数据,在D2中输入数组公式:
    =INDEX($B$2:$B$15,MATCH(1,COUNTIF(D$1:D1,$B$2:$B$15)+IF(COUNTIF($A$2:$A$20,$B$2:$B$15),1,0),0))
    或:
    =INDEX(A:A,SMALL(IF(COUNTIF($B$2:$B$15,$A$2:$A$20),ROW($A$2:$A$20),4^8),ROW(A1)))&""
    2.获取A有B无的数据,在E2中输入数组公式:
    =INDEX($A$2:$A$20, MATCH(0, COUNTIF($B$2:$B$15, $A$2:$A$20)+COUNTIF(E$1:E1, $A$2:$A$20), 0))
    或:
    =INDEX(A:A,SMALL(IF(COUNTIF($B$2:$B$15,$A$2:$A$20),4^8,ROW($A$2:$A$20)),ROW(A1)))&""
    3.获取A无B有的数据,在F2中输入数组公式:
    =INDEX($B$2:$B$15, MATCH(0, COUNTIF($A$2:$A$20, $B$2:$B$15)+COUNTIF(F$1:F1, $B$2:$B$15), 0))
    或:
    =INDEX(B:B,SMALL(IF(COUNTIF($A$2:$A$20,$B$2:$B$15),4^8,ROW($B$2:$B$15)),ROW(A1)))&""
    上述公式输入完毕后,分别拖动填充柄向下填充,第一组公式直到出现“#N/A”为止,第二组公式直到出现空值为止。
    下面的示例另外还提供了VBA的方法:
    Excel获取两列数据交集、并集、差集的示例
回复

使用道具 举报

小黑屋|手机版|嘻皮客网 ( 京ICP备10218169号|京公网安备11010802013797  

GMT+8, 2024-5-10 23:22 , Processed in 0.172114 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表