复杂的search和在Excel中find

我有2列在Excel中。

列A具有10,000行数据的列表。 B列有500行文本可以在列A中find

我知道我可以使用如下公式:= IF(SUM(IFERROR(FIND(TRIM($ C $ 2:$ C $ 3023),A2),0))> 0,“Yes”,“No” 1个小区search一次。

有什么办法可以创build一个函数来search列C2:C500中find的任何文本/数字,并findA2:A10000中的任何数据?

这是我想要实现的基本形象。

在这里输入图像说明

在标准模块中input以下UDF (用户定义的函数):

Public Function IsItThere(rBig As Range, rLittle As Range) As String Dim v As String IsItThere = "Not Found" v = rBig.Value For Each r In rLittle v2 = r.Value If v2 <> "" Then If InStr(v, v2) > 0 Then IsItThere = "found" Exit Function End If End If Next r End Function 

要使用它,在B2中input公式:

 =IsItThere(A2,C$2:C$500) 

并抄下来。

用户定义的函数(UDF)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开一个新的模块
  3. 粘贴东西,closuresVBE窗口

如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除UDF:

  1. 如上所示调出VBE窗口
  2. 清除代码
  3. closuresVBE窗口

从Excel中使用UDF:

= IsItThere(A2,C $ 2:C $ 500)

要了解有关macros的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

有关UDF的细节

macros必须启用这个工作!

你也可以使用一个简单的公式:

 =IF(IFERROR(VLOOKUP(A2;$C$2:$C$9;1;);0)=0;"No";"Yes") 

而不是你的…