请教两张excel表格内容对比,分别列出相同及不同部分。例如SHEET1和SHEET2都是分别有A、B两列,A列都是
“名称”,B列都是“型号”,其中内容都是英文文本,现在需要对比这两张表,分别找出“名称”及“型号”都相同的条目,列到SHEET3中,再把剩余的二者都不相同的条目,列到SH...
“名称”,B列都是“型号”,其中内容都是英文文本,现在需要对比这两张表,分别找出“名称”及“型号”都相同的条目,列到SHEET3中,再把剩余的二者都不相同的条目,列到SHEET4中,请问具体该怎样操作比较快速便捷,不知道该怎么使用EXCEL自带的比较函数,谢谢啦~~
展开
4个回答
展开全部
方法很多,如果可以合并同类数据,可以直接使用数据透视表。
下面是个简单明了的方法:
1.在Sheet1、Sheet2中插入C、D列
2.在Sheet1 C1中输入 =IF(COUNTIF(Sheet2!A:A,Sheet1!A1)>0,"Y","N"),把公式拉到D1后,再把公式往下拉到楼主要的行。
3.在Sheet2 C1中输入 =IF(COUNTIF(Sheet1!A:A,Sheet2!A1)>0,"Y","N"),把公式拉到D1后,再把公式往下拉到楼主要的行。
4.到这里楼主会发现两个表的C列和D列会出现Y或N。Y为两个表名称或型号相同的,反之则不相同。现在楼主只要用筛选功能把C和D都为Y的筛选出来,复制到Sheet3中,都为N的复制到Sheet4中,或者只要名称相同或只有型号相同的复制到XXX表都可以了。
方法有多种,其它方法就不再做解释了
译:Countif 公式意为在某个单元格区域去查找指定值的数量。前面+IF,则是为了符合楼主的要求,只要有相同时不管数量是多少都输出Y,否则输出N。
下面是个简单明了的方法:
1.在Sheet1、Sheet2中插入C、D列
2.在Sheet1 C1中输入 =IF(COUNTIF(Sheet2!A:A,Sheet1!A1)>0,"Y","N"),把公式拉到D1后,再把公式往下拉到楼主要的行。
3.在Sheet2 C1中输入 =IF(COUNTIF(Sheet1!A:A,Sheet2!A1)>0,"Y","N"),把公式拉到D1后,再把公式往下拉到楼主要的行。
4.到这里楼主会发现两个表的C列和D列会出现Y或N。Y为两个表名称或型号相同的,反之则不相同。现在楼主只要用筛选功能把C和D都为Y的筛选出来,复制到Sheet3中,都为N的复制到Sheet4中,或者只要名称相同或只有型号相同的复制到XXX表都可以了。
方法有多种,其它方法就不再做解释了
译:Countif 公式意为在某个单元格区域去查找指定值的数量。前面+IF,则是为了符合楼主的要求,只要有相同时不管数量是多少都输出Y,否则输出N。
更多追问追答
追问
您好~这个方法貌似是分别把两张表的对应行一一比较异同,可能我没有表达清楚,这两张表的每行顺序是打乱的,我需要从整个2张表当中挑出相同的,并不是单纯的对应行比较,相当于SHEET1 从A1--A3分别是“苹果”、“梨”、“橙子”;而SHEET2从A1-A3分别是“梨”、“西瓜”、”葡萄“,我需要得到的结论就是 ,这两张表中有”梨”是一样的,假设按照您的方法,结论就变成了没有一种是一样的了, 不知道还有其他什么办法么?谢谢~~
追答
这个不是对应行的。比如您 Sheet1 A2是梨 那么用这个公式的意思就是到 Sheet 2表中的A列去查找"梨"的数量,只要Sheet2 A列中有梨,Sheet1 C2都会反回"Y". 也就是表2中有梨的存在。
你可以验证一下的。不管“梨”在表2的第一列哪个位置, 表1 都人返回Y
2012-09-07
展开全部
可以用透视表来实现,比函数要简单很多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sub test()
Dim i As Integer
Dim j As Integer
Dim m As Integer
Dim n As Integer
Dim k As Integer
Dim xiangtong As Boolean
m = Sheet1.Range("a65536").End(xlUp).Row '获得sheet1中数据的数量
n = Sheet2.Range("a65536").End(xlUp).Row '获得sheet2中数据的数量
For i = 1 To m
xiangtong = False
For j = 1 To n
If Sheet1.Cells(i, 1) = Sheet2.Cells(j, 1) And Sheet1.Cells(i, 2) = Sheet2.Cells(j, 2) Then
k = Sheet3.Range("a65536").End(xlUp).Row
Sheet3.Cells(k + 1, 1) = Sheet1.Cells(i, 1)
Sheet3.Cells(k + 1, 2) = Sheet1.Cells(i, 2)
xiangtong = True
End If
Next
If xiangtong = False Then
k = Sheet4.Range("a65536").End(xlUp).Row
Sheet4.Cells(k + 1, 1) = Sheet1.Cells(i, 1)
Sheet4.Cells(k + 1, 2) = Sheet1.Cells(i, 2)
End If
Next
For i = 1 To n
xiangtong = False
For j = 1 To m
If Sheet1.Cells(j, 1) = Sheet2.Cells(i, 1) And Sheet1.Cells(j, 2) = Sheet2.Cells(i, 2) Then
xiangtong = True
End If
Next
If xiangtong = False Then
k = Sheet4.Range("a65536").End(xlUp).Row
Sheet4.Cells(k + 1, 1) = Sheet2.Cells(i, 1)
Sheet4.Cells(k + 1, 2) = Sheet2.Cells(i, 2)
End If
Next
End Sub
Dim i As Integer
Dim j As Integer
Dim m As Integer
Dim n As Integer
Dim k As Integer
Dim xiangtong As Boolean
m = Sheet1.Range("a65536").End(xlUp).Row '获得sheet1中数据的数量
n = Sheet2.Range("a65536").End(xlUp).Row '获得sheet2中数据的数量
For i = 1 To m
xiangtong = False
For j = 1 To n
If Sheet1.Cells(i, 1) = Sheet2.Cells(j, 1) And Sheet1.Cells(i, 2) = Sheet2.Cells(j, 2) Then
k = Sheet3.Range("a65536").End(xlUp).Row
Sheet3.Cells(k + 1, 1) = Sheet1.Cells(i, 1)
Sheet3.Cells(k + 1, 2) = Sheet1.Cells(i, 2)
xiangtong = True
End If
Next
If xiangtong = False Then
k = Sheet4.Range("a65536").End(xlUp).Row
Sheet4.Cells(k + 1, 1) = Sheet1.Cells(i, 1)
Sheet4.Cells(k + 1, 2) = Sheet1.Cells(i, 2)
End If
Next
For i = 1 To n
xiangtong = False
For j = 1 To m
If Sheet1.Cells(j, 1) = Sheet2.Cells(i, 1) And Sheet1.Cells(j, 2) = Sheet2.Cells(i, 2) Then
xiangtong = True
End If
Next
If xiangtong = False Then
k = Sheet4.Range("a65536").End(xlUp).Row
Sheet4.Cells(k + 1, 1) = Sheet2.Cells(i, 1)
Sheet4.Cells(k + 1, 2) = Sheet2.Cells(i, 2)
End If
Next
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询