excel问题高分悬赏

本人碰到一个问题,请教各位高人。
假设A列的A1至A10,B列的B1至B20,在两列数据中有不同的姓名,现在要寻找在A列的A1至A10中的姓名在B列中是否有?这个函数我是这样写的if(countif(b:b,a1),"有","没有"),但是我现在只能实现这样的功能,我现在想是否能够实现A列中的数据如果在B列中有,能否对应,也就是说如果A列中有一个“张三”,而B列中存在两个或是三个“张三”,能否在B列的后面有所标记?而我现在只能在C列统计出A列中的某个数据在B列中出现的次数。

各位高手有什么好方法没有?
有所标记的意思是指:我现在知道“张三”在另一列中出现了多少次,但是具体位置却不知道,需要通过查找功能一个个找,很麻烦。

第1个回答  2009-11-02
=if(countif(b:b,a1)>1,"有"&countif(b:b,a1)&"个"&A1,IF(countif(b:b,a1)=1,"有","没有"))

如果你要具体位置,你可以用条件格式, 把多于1个的用颜色区分开来就好了...

="B"&MATCH(A1,B:B,B:B),

这个公式是找第一个所在单元格...
第2个回答  2009-11-05
按ALT+F11调出VBA窗口,插入一个用户模块,将下面代码复制进去,然后在excel中的宏窗口中执行aa
就会在C列中标出行号,也就是所在行的位置。(如果B列与A列有相同内容)

Sub aa()
For i = 1 To 10
For j = 1 To 20
If Cells(i, 1) = Cells(j, 2) Then Cells(j, 3) = i
Next
Next
End Sub

如果还有疑问,请h!我。
第3个回答  2009-11-02
“有所标记”具体要标记什么内容?
比如你说的B列的几个“张三”后面要标记什么?

对补充问题的回复:
C1输入

=if(isna(match(b1,a:a,)),"",b1)
双击填充柄

B列中的姓名凡是在A列出现过,则在C列进行标记。
第4个回答  2009-11-02
C1输入公式:

=VLOOKUP(B1,A:A,1,FALSE)

向下填充公式到C20

不知道是不是你要的效果
第5个回答  2009-11-02
这个需要VBA宏来控制,简单的函数做不到本回答被提问者采纳
相似回答