按ALT + F11,启动VBA写上如下代码:
Sub 比较单位()
Application.EnableEvents = False
Application.Calculation = xlManual
For i = 1 To Sheet1.Range("a65536").End(xlUp).Row
For ii = 1 To Sheet2.Range("a65536").End(xlUp).Row
If Sheet1.Range("a" & i) = Sheet2.Range("a" & ii) Then
Sheet2.Range("c" & ii) = "重复"
End If
Next
Next
Application.Calculation = xlAutomatic
Application.EnableEvents = True
End Sub
比如两个表的“单位名称”列都是在A列上,并且从A2开始,可以在sheet2这个工作表的B2输入公式:
=VLOOKUP(A2,Sheet1!A:A,1,0)
将公式向下填充复制,出现 #N/A 出错提示的单元格就表示这个单位名称在sheet1中没有的。
注:如果这么多的数据,用countif()函数计算量就会很大,会慢的,还是用vlookup()查找函数会快得多。
在sheet3的A1输入公式:
=VLOOKUP(Sheet2!A1,Sheet1!$1:$60000,1,0) 如果有,则返回一个值,如果没有,则报错。
然后把这个公式复制到其他单元格即可。这个你会吧?
其实还可以加入if函数,让结果看起来更漂亮,不过太复杂估计你搞不清楚,就这样简单点吧。
我来个笨点的办法
sheet1 备注一列 假设B列 数据全填上1
假设你sheet1 sheet2 里名称都在A列
在sheet2 里 B列第一个输入以下公式
=sumif(sheet1!$A$1:$A$10000,A1,sheet1!$B$1:$B$10000)
往下填充,如果结果=1,证明从Sheet1中来,=0则不在sheet1中
>1,证明从sheet1中来,而且出现了该结果这么多次
如果单位在A列,在表1A列后插入补助列B,在B1输入公式 =IF(ISERROR(VLOOKUP(A1,SHEET2!A: SHEET2!A,1,FALSE)),"",MATCH(A1, SHEET2!A: SHEET2!A,0)) 公式复制到最后以后,筛选,选空白,将选中的区域全部删除,留下的就是与表二相同的。