Excel两列数据比较

假如这个表是某公司去年和今年的员工名单,现在要求在职老员工名单,也就是在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。另外还要注意范围的选取,不要搞错了。
输完以上公式并且填充完,结果如下:

 Excel两列数据比较

你可能感兴趣的:(Excel,单元测试,D语言)