Excel中两列比较的一个典型实例
先看一个表:
ABCDE
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。另外还要注意范围的选取,不要搞错了。
输完以上公式并且填充完,结果如下:
ABCDE
1去年名单今年名单在职老员工离职老员工新任员工
2张一王一张一 王一
3张二张一 张二
4张三王三张三 王三
5张四李四 张四
6李一张三 李一
7李二李二李二
8李三陈帅哥 李三陈帅哥
9李四张美女李四 张美女
10田大娘杨大哥田大娘 杨大哥
11吴学田大娘吴学
12 吴学
需要强调的是,为了一般化,这里选取了A、B两列的名单个数是不一样的,排列顺序也不一样。