excel数据的筛选问题

来源:百度知道 编辑:UC知道 时间:2024/07/07 16:49:30
有两张表
表一有两项内容:数据 时间
表二也有两项内容:数据 时间
要筛选的是第一张表的内容,条件是表一数据对应的时间在表二中能找到,则保留数据否则删除数据,请问大家该怎么做?谢谢!
表一的格式:数据,时间(**:**:**)
表二的格式与表一类似,表一的数据个数与表二的数据个数不相同,且两表的数据量很大(〉20000个),希望能找到比较快一点的处理方法!
感谢各位的回答!

在"表一"的C2输入公式:
=IF(COUNTIF(表二!B:B,B2),"","删除")
将公式向下复制.
筛选表一C列为"删除"的行.
选定所有筛选结果行,按ALT+分号键,在行号处点右键"删除行".

要删除表1的数据,难度有点大。
可以先在表2建立辅助列。
我在这里用了match函数:
假设表1的数据列放在a2:a18;所对应的时间在b2:b18,那么在表2的b2输入以下公式:

=IF(OR(ISERROR(VLOOKUP(a2,Sheet1!$A$2:$B$18,2,0)),VLOOKUP(a2,Sheet1!$A$2:$B$18,2,0)=""),"不存在",VLOOKUP(a2,Sheet1!$A$2:$B$18,2,0))

向下拖动以复制公式,再利用筛选工具将“不存在”的数据找出,删除。

PS:如果出现的是数值而不是日期或者时间的话,请右击表2的b列,设置单元格格式/将数值设置为时间(或者日期)。

公式很长,不过不复杂,我可以解释一下。

第一步:用vlookup函数去表1区域a2:b18中寻找与表2中a2匹配的值(也就是“数据值”),如果存在这个值,就返回区域中该值对应的第二列的数值,也就是“时间”值)。

第二步:假设该区域中不存在表2中a2这个值(也就是说在表1中不存在与表2中a2一样的数据),或者表2中a2对应表1中的时间值为空值,就返回“不存在”。

第三步:否则将返回表2中a2所对应的表1中第二列的数值。

从上面的述说,也意味着,输入的数据首先要存在于表1中,其次对应的时间不能为空,才会返回时间值,否则都返回“不存在”。

c2=if(iserror(vlookup(a2,sheet2!a:a,2)),a2,"")

双击c2填充柄;复制c列;点a1,选择性粘贴-数值;删c列。