复杂的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)非常易于安装和使用:
- ALT-F11调出VBE窗口
- ALT-I ALT-M打开一个新的模块
- 粘贴东西,closuresVBE窗口
如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx
要删除UDF:
- 如上所示调出VBE窗口
- 清除代码
- 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")
而不是你的…