excel表格中两列数据如何进行循环比较(找出两列数据的交集)

假设excel表格中有两列数据(数据量很大),分别在A列和B列,但是行数不一样(可能A列多,也可能B列多),我想将A列中的每一个数据与B列中的每一个数据进行比较,如果A列中的某个数据Ai在B列中有相同的数据,则在Ci中作一个标记,请问怎样才能实现这个目的呢?我对编程都忘得差不多了,请举例详细说明!

你有编程的学习经历的话,学习excel公式和函数,甚至VBA都很轻松了,建议你多看看excel自带的函数帮助,对于你这样有底子的人能很快上手.
excel中如果不用vba是没有直接进行循环的语句的,但是有数组公式可以用,不过你这个问题还用不到数组公式
在C1输入
=if(countif(b:b,a1),1,""))
回车然后按住C1右下角的实心小十字往下拉到与A列相同的行数即可,1即为标记
公式的意思是 =if(统计B列中与a1值相等的数量,大于0返回1,否则返回空值)
公式在下拉的过程中会不断改变a的行号,即到C5的时候统计的就是a5.....
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-12
假设A列有5个数据,B列有2个数据
在C1写公式=IF(ISNA(MATCH(A1,$B$1:$B$2,0)),"",A1)
然后拖公式到C5
第2个回答  2011-01-12
c1 =IF(COUNTIF(B:B,A1)>0,"B列存在","")
d1 =IF(COUNTIF(A:A,B1)>0,"a列存在","")
再向下拉吧
第3个回答  2011-01-12
假设数据在表1,按下ALT+F11,双击左边窗口的Sheet1 (Sheet1),复制粘贴下面的宏代码.按F5运行。
Sub myEqual()
Dim n '定义一个n的变量
For i = 1 To 65536 '全部查询所有行的数据
n = Cells(i, 1) '将A列的i行单元格数据赋值给n
If Cells(i, 1) = "" Then '假如A列i单元格为空
Exit For '则退出i循环
End If
For j = 1 To 65536 '全部查询所有行的数据
If Cells(j, 2) = n Then '如果B列的i行单元格数据等于n,则
Cells(i, 3) = "equal" 'C列的i行单元格标记equal,这行代码可以删除
Cells(i, 3).Interior.ColorIndex = 6 '且该单元格标记一个6号颜色
ElseIf Cells(j, 2) = "" Then '假如B列j单元格为空
Exit For '则退出j循环
End If
Next j 'j循环
Next i 'i循环
End Sub
第4个回答  2011-01-12
到我空间看下交集的那个文章,就明白了。
相似回答