[英]How to compare and highlight list of strings in one column with another column in excel
[英]How to use one column in excel as a search parameter in another column to output only certain strings
這個問題源於我的另一篇文章。 (請參閱excel中的列搜索特定字符串,其中字符串在每個單元格中是隨機的 )
使用上面的圖像作為參考,我試圖使用列E作為“查找值”搜索列B(實際上超過1000行)。 最終目標是“僅”顯示在C列中顯示的名稱。技巧是所有隨機生成的字符包含名稱。 以下是我希望數據表的樣子。 公式或模塊應該工作,但vlookup和其他查找功能我無法工作。
對於工作表函數方法,您可以輸入C3並填寫此公式:
=LOOKUP(8^5,SEARCH(E$3:E$7,B3),E$3:E$7)
選擇常數8 ^ 5 = 32768大於最大可能的字符串長度,以便LOOKUP返回最后一個匹配值。 如果沒有找到字符串,則公式返回#N / A.
另一種可能性,可能更容易理解,然后最初的assylias發布,但也可能是更多的時間消費(雖然有1000行,我認為它不會很重要)是下面。
這要求您將E列中的范圍命名為myNames(或任何您想要的名稱,只需更新代碼 - 或者,您只需編寫Range(“E1:E6”))。 此外,如果您從列B移動隨機值,也要在代碼中更新它。
Sub findString()
Dim celString As Range, rngString As Range, celSearch As Range, rngSearch As Range
Dim wks As Worksheet
Set wks = Sheets("Sheet1") 'change sheet reference to whatever your sheet name is
Set rngString = wks.Range("myNames")
Set rngSearch = Intersect(wks.UsedRange, wks.Range("B1").EntireColumn)
For Each celString In rngString
For Each celSearch In rngSearch
If InStr(1, celSearch.Text, celString.Value) > 0 Then
celSearch.Offset(, 1) = celString.Value
End If
Next
Next
End Sub
既然,我也在處理你的原始問題,我建議通過Siddharth的答案來計算,然后運行這個,或上面的assylias代碼來獲取列旁邊的名字。 您可以在工作表上放置一個按鈕,或者只使用“宏”對話框來運行宏。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.