EXCEL表格问题

有两个表格,均有“合同号”列
表格1中“合同号”列包含的合同号均在表格2中的“合同号”列中存在,也就是说是后者的子集
现在我想做的是在表格2中把在表格1中出现过的合同号所对应的行全删除,也就是相当于求差
因为两表格中该列都非常长,请问有什么简便方法

你好,我来为你解答吧,
我的方式是,使用公式找出表格2中对应表格1的合同号,然后筛选出来,手动删除。
具体步骤:
1、在你表格2中追加一列
输入该公式:=if(type(vlookup(A1,'sheet1!(A1:D255),1,0))=16,"未重复合同号","重复合同号")
这个公式是使用了3个函数的欠套形式
vlookup 是垂直查找函数,它可以寻找表格1中相同合同号并返回你所要的指定列中的数据,我在这里我用到了它的查找功能。如果函数没有找到相同合同号就会返回出错信息 #N/A。
该函数的参数 A1,第一个参数指要查找的条件单元格,你这里就选择合同号。
'sheet1!(A1:D255) 是第一个参数:指被查找数据的位置,这里选择表格1中的数据,从合同号列开始选择,把所有合同号全部选进。
第三个参数1,代表返回值是第一列的数据,即合同号。
第四个参数是0 代表模糊查找。
type()函数是错误值判别函数,它可以把错误数据转换成错误代码号。#N/A 代码号=16。
if()条件格式。
第一个参数为判断条件。这里是指当查询函数未能找到相同合同号时,函数返回值就会出错。这样判断返回=16时,其返回值="未重复合同号"。
2、使用公式手柄向下托动。 公式就会自动判别 是否有重复合同号了。
3、使用筛选功能,把重复的合同号筛选出来,按del。
就可以拉。
你可以按照此方式试试。

good luck!!!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-09-07
假设合同号都是在A列,在表2数据紧邻的列第2行输入公式(假设第一行是标题),如 D2=VLOOKUP(A1,Sheet1!A:A,1,FALSE) 往下拉公式。
这样,相同合同号的号码就会显示出来,而没有相同号码的会显示“#N/A”错误。然后按这列升序排序,清除带#N/A数据的行即可。或者筛选后删除。
第2个回答  2009-09-07
使用辅助列:
假设合同号都是在A列,找个空白列,输入:
=if(countif(sheet2!a:a,a1),1,0)
然后对该列进行自动筛选:1,删除所有筛选出来的东西!本回答被提问者采纳
第3个回答  2009-09-08
楼主,您好.

vlookup的方法比较乱,且相对countif方法来说,复杂! 但楼上用countif的冒似把您的意思弄反了。而您要求的是: 在sheet2中删除sheet1中有的

假设您sheet2,sheet1的合同号都在A列, 找个空白列,第二行输入公式:
=if(countif(sheet1!a:a,a2),1,0)
然后对该列进行自动筛选(数据-->筛选-->自动筛选), 选择辅助列的下拉菜单并选择"1"的, 将所有筛选出来的删除即可.
第4个回答  2009-09-07
数据就都在第2行起吧。假设“合同号”在A列:
1、就在表格2的B2输入=IF(COUNTIF(表格1!A:A,A2),"拟删","")回车并向下填充;
2、选B列——工具栏——降序排序——扩展选定区域——排序;
3、把“拟删”的一次删除。
相似回答