我在excel中兩列。複雜的搜索和查找在Excel
列A具有10,000行數據的列表。 B列有500行的文本在列A中找到
我知道我可以使用公式如:= IF(SUM(IFERROR(FIND(TRIM($ C $ 2:$ C $ 3023),A2),0) )> 0,「是」,「否」) 但每次1個小區搜索這只是搜索。
有沒有什麼辦法可以創建一個搜索欄C2中找到的任何文本/數的函數:C500和發現任何數據在A2:A10000?
這裏是我想要達到一個基本的圖像。
我在excel中兩列。複雜的搜索和查找在Excel
列A具有10,000行數據的列表。 B列有500行的文本在列A中找到
我知道我可以使用公式如:= IF(SUM(IFERROR(FIND(TRIM($ C $ 2:$ C $ 3023),A2),0) )> 0,「是」,「否」) 但每次1個小區搜索這只是搜索。
有沒有什麼辦法可以創建一個搜索欄C2中找到的任何文本/數的函數:C500和發現任何數據在A2:A10000?
這裏是我想要達到一個基本的圖像。
輸入以下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輸入公式:
=IsItThere(A2,C$2:C$500)
並抄下來。
用戶定義函數(UDF)是非常容易安裝和使用:
如果保存工作簿,UDF將隨之保存。 如果您正在使用一個版本的Excel更高然後2003,你必須 將文件保存爲.XLSM而不是。XLSX
要刪除UDF:
從Excel使用UDF:
= IsItThere(A2,C $ 2:C $ 500)
要了解更多關於一般的宏,請參閱:
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
必須啓用宏才能使其工作!
你也可以使用一個簡單的公式:
=IF(IFERROR(VLOOKUP(A2;$C$2:$C$9;1;);0)=0;"No";"Yes")
代替或您......
輝煌!你讓它看起來很簡單:) – William