Excel中如何找出两列都包含相同关键字或者相似内容?

有没有高手,最近做一个事情,如下图,需要把相同的药名找出来,但是A列和B列给出的药名并不是完全相同的,比如A10和B2、A15和B11、A17A18和B20、A22和B28-31。A列的药名都是完整的,B列不完整,但都有关键的几个字,能不能从B列找出与A列相同的药品?实在太多,几万个,一个个对比,眼睛要瞎了!有没有大神给个牛逼的公式,感激涕零!!!

第1个回答  2019-10-08
for a=1 to [a1].end(xldown).Row
for b=1 to [b1].End(xldown).Row
if instr(cells(b,2),cells(a,1))>0 then
i=i+1
cells(b,3)=i :cells(a,4)=i
endif
next
next
运行此宏后c,d列将a,b列相同关键字单元格标记相同数字。追问

非常感谢,马上试试,C.D分别显示太体贴了!

大神,我刚才试了一下,运行了宏之后只有第一排显示出结果,剩下的都是空白,是哪里需要改吗?顺便说一下A列和B列不一样长的。

追答

cells(b,3)=i
cells(a,4)=i
这样会咋样?我身边现在没电脑,你试一下

我这里测试没问题,要么你把文件发到[email protected]。我看下什么问题。

第2个回答  2019-10-08
C2=index($A$1000,small(if(iserror(find(B2,$A$1:$A$1000)),9999,row($A$1:$A$1000)),1))
数组公式,同时按ctrl+shfit+enter追问

非常感谢,这么早就回复了,马上试试。

非常感谢,这么早就回复了,试了一下,回复的是#REF!,是不是哪里需要改改?

追答

=INDEX($A$1:$A$1000,SMALL(IF(ISERROR(FIND(B2,$A$1:$A$1000)),9999,ROW($A$1:$A$1000)),1))
第一个参数写错了

追问

相当牛逼!虽然不能解决全部问题,但也能减少我一半的工作,多谢!

本回答被提问者采纳
第3个回答  2019-10-08
只讲已知的什么,不讲清楚需要的是什么?
公式肯定是不行的,自定义函数即代码可以考虑。不免费。追问

B列中有A列的药品标记出来,或者A列中有B列的标记出来!什么价格?如果好用可以买。

B列中有A列的药品标记出来,或者A列中有B列的标记出来!什么价格?如果好用可以买。

相似回答