如何将excel中两列数据进行比对,并将结果返回到不同的列

比如说我现在A列中有3000个数字,B列中有2000个数字,我如何让它们进行比对并且将这两列中相同的数字填到C列,不同的数字填到D列??... 比如说我现在A列中有3000个数字,B列中有2000个数字,我如何让它们进行比对并且将这两列中相同的数字填到C列,不同的数字填到D列?? 展开
 我来答
zzllrr小乐
高粉答主

2011-03-16 · 小乐图客,小乐数学,小乐阅读等软件作者
zzllrr小乐
采纳数:20147 获赞数:78784

向TA提问 私信TA
展开全部
就是如何求交集和差集的问题
如不用VBA,简单使用公式如下:先假设A列最后一行是第a行,B列最后一行是第b行。
单元格C1: 输入公式 =IF(COUNTIF(B:B,A1)>0,A1,"")
然后将C1的公式一直往下拖,拖到第x行(x=a、b两者最小值)
【C列中的非空单元格,就是A列和B列的相同值】
单元格D1: 输入公式 =IF(COUNTIF(B:B,A1)=0,TRIM(A1),"")
然后将D1的公式一直往下拖,拖到第a行

单元格E1: 输入公式 =IF(COUNTIF(A:A,B1)=0,TRIM(B1),"")
然后将E1的公式一直往下拖,拖到第b行

最后将D列和E列数据集中起来(比如,将E列数据,选择性粘贴到D列第a+1行),
【非空单元格就是,A列和B列的不同值】。

参考资料: 小乐笑了

lonyuken
2011-03-16 · 超过17用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:43.5万
展开全部
假如你要比较A列与B列数据是否重复,应该有三种结果(即AB皆有,A有B无,B有A无),可在C列存放A有B无的数据,在D列存放B有A无的数据,然后再将两列数据合并即可,方法如下:
1、在C1单元格输入公式:
=IF(COUNTIF($B:$B,A1)=0,A1,"")
在D1单元格输入公式:
=IF(COUNTIF($A:$A,B1)=0,B1,"")
将两个公式用填充柄向下复制到相应的行。
2、按C列排序,将C列数据集中在一起,将其复制到另一工作表的A列;再按D列排序,将D列数据集中在一起,并将其复制到另一工作表的A列的尾部。(注意:这两个操作要用“选择性粘贴/数值”进行粘贴)
3、删除原表的CD两列,将另一工作表中A列的数据复制回原表的C列。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wwj805
2011-03-16 · TA获得超过1412个赞
知道小有建树答主
回答量:692
采纳率:55%
帮助的人:391万
展开全部
用VBA可解决。ALT+F11打开VBA窗口,双击左边的SHEET1,在右边粘贴下面代码,按f5运行。
默认为A1-A20,B1-B22的单元格范围,A20可改为A3000,B22可改为B2000。数据填充要C、D列。
Sub sample()
Dim mycell As Range
m = 1
n = 1
For Each mycell In Range("A1:A20", "B1:B22")
If Application.WorksheetFunction.CountIf(Range("A1:A20", "B1:B22"), mycell) > 1 Then
Cells(m, 3) = mycell
m = m + 1
End If
If Application.WorksheetFunction.CountIf(Range("A1:A20", "B1:B22"), mycell) = 1 Then
Cells(n, 4) = mycell
n = n + 1
End If
Next
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
山桑弓
2011-03-16 · TA获得超过1.2万个赞
知道大有可为答主
回答量:7793
采纳率:66%
帮助的人:2837万
展开全部
先来一个,相同的意思是不是将B列与A列中有相同数据的数据返回,如果是假设数据在A1:A3000,B1:B2000中,C1中输入
=INDEX(B:B,SMALL(IF(COUNTIF(A$1:A$3000,B$1:B$2000),ROW(B$1:B$2000),4^8),ROW(A1)))&""
同时按下CTRL+SHIFT+ENTER输入数组公式,用自动填充柄下拉。
第二个问题,是返回两列不同的所有数据,还是返回A列中与B列中不同的A列所在数据,还是返回A列和B列不同数据的B列数据,如果返回两列不同的所有数据,公式应有难度,返回一列中的不同数据,公式比较容易。
第二公式,D1
=INDEX(B:B,SMALL(IF(COUNTIF(A$1:A$30,B$1:B$20)=0,ROW(B$1:B$20),4^8),ROW(A1)))&""
同时按下CTRL+SHIFT+ENTER输入数组公式,下拉,返回B列与A列不相同数据的数据。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
表里如一
2011-03-16 · 知道合伙人软件行家
表里如一
知道合伙人软件行家
采纳数:2066 获赞数:11636
从事6年生产管理,期间开发了多款小软件进行数据处理和分析,后

向TA提问 私信TA
展开全部
经测试,1楼的不能完成楼主的提问.主要的问题是输出到C列的数据照样重复了.
我改编了一下,
Sub sample()
Dim mycell As Range
m = 1
n = 1
a = "A1:A3000" '楼主如果要改A列的数据数量,改这里就行,你要是4000行,改成A1:A4000即可
b = "B1:B2000" '楼主如果要改B列的数据数量,改这里就行,你要是1000行,改成B1:B1000即可
For Each mycell In Range(a, b) '循环A1:A3000,B1:B3000里的每一个数据
If Application.WorksheetFunction.CountIf(Range(a, b), mycell.Value) > 1 And Application.WorksheetFunction.CountIf(Range("C1:C" & m), mycell.Value) < 1 Then
'如果这个区域里的数据数量大于1,即表示数据重复了,后面的条件是如果C列的数据数量小于1即表示未写入,然后将数据输出到C列
Cells(m, 3) = mycell.Value
m = m + 1
ElseIf Application.WorksheetFunction.CountIf(Range(a, b), mycell.Value) = 1 Then
'这里表示只有一个数据就输出到D列.
Cells(n, 4) = mycell.Value
n = n + 1
End If
Next
End Sub

经测试,圆满完成楼主的要求.
若楼主不懂VBA的话,我可以给楼主发文件,Hi我即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式