你有编程的学习经历的话,学习excel公式和函数,甚至VBA都很轻松了,建议你多看看excel自带的函数帮助,对于你这样有底子的人能很快上手.
excel中如果不用vba是没有直接进行循环的语句的,但是有数组公式可以用,不过你这个问题还用不到数组公式
在C1输入
=if(countif(b:b,a1),1,""))
回车然后按住C1右下角的实心小十字往下拉到与A列相同的行数即可,1即为标记
公式的意思是 =if(统计B列中与a1值相等的数量,大于0返回1,否则返回空值)
公式在下拉的过程中会不断改变a的行号,即到C5的时候统计的就是a5.....
假设A列有5个数据,B列有2个数据
在C1写公式=IF(ISNA(MATCH(A1,$B$1:$B$2,0)),"",A1)
然后拖公式到C5
c1 =IF(COUNTIF(B:B,A1)>0,"B列存在","")
d1 =IF(COUNTIF(A:A,B1)>0,"a列存在","")
再向下拉吧
假设数据在表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
到我空间看下交集的那个文章,就明白了。