适合公司年会合唱的歌:Excel中两列比较的一个典型实例_麻玉国的空间

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 22:09:22

先看一个表: A B C D E 1 去年名单 今年名单 在职老员工 离职老员工 新任员工 2 张一 王一 3 张二 张一 4 张三 王三 5 张四 李四 6 李一 张三 7 李二 李二 8 李三 陈帅哥 9 李四 张美女 10 田大娘 杨大哥 11 吴学 田大娘 12 吴学

假如这个表是某公司去年和今年的员工名单,现在要求在职老员工名单,也就是在A列也在B列的员工,同样离职老员工是指在A列不在B列的员工,新任员工指在B列不在A列的员工。如果用A表示去年员工的集合,B表示今年员工的集合,则用数学语言表示是:

在职老员工=AB      (AB表示A交B)
离职老员工=A - B  
新任员工=B - A

在Excel里,这里要用到两个函数,一个是if(),另一个是countif(),具体每个函数的使用方法这里不多说,请查看Excel帮助。这里countif()的作用是测试某一个元素(成员)是不是在某集合(列),如果其值大于0,在说明该元素属于某集合,否则不属于。if()的作用是根据countif()测试的结果来赋予某一单元格的值。具体公式如下:

在单元格C2输入:=IF(COUNTIF(B$2:B$12,A2),A2,"")   
说明:为了方便拖拉填充,需要把范围固定,即在数字前面加一个“$”符号,如:B$2:B$12。B$2:B$12表示一个范围,相当于集合B。COUNTIF(B$2:B$12,A2)的意思就是在范围B$2:B$12里统计单元格A2的值出现的次数,这样语句IF(COUNTIF(B$2:B$12,A2),A2,"")就表示,如果统计次数大于0则单元格C2的值等于A2,否则就等于""(即空)。以下公式类似,不再赘述。

在单元格D2输入:=IF(COUNTIF(B$2:B$12,A2),"",A2)
在单元格E2输入:=IF(COUNTIF(A$2:A$11,B2),"",B2)

注意,其中C、D两列只要填充到11就行了,因为这两列都是拿A列的元素进行测试,而A列的元素只到A11。同理E列就要填充到12。另外还要注意范围的选取,不要搞错了。

输完以上公式并且填充完,结果如下:

  A B C D E 1 去年名单 今年名单 在职老员工 离职老员工 新任员工 2 张一 王一 张一   王一 3 张二 张一   张二   4 张三 王三 张三   王三 5 张四 李四   张四   6 李一 张三   李一   7 李二 李二 李二     8 李三 陈帅哥   李三 陈帅哥 9 李四 张美女 李四   张美女 10 田大娘 杨大哥 田大娘   杨大哥 11 吴学 田大娘 吴学     12   吴学      


需要强调的是,为了一般化,这里选取了A、B两列的名单个数是不一样的,排列顺序也不一样。