[英]Excel String lookup within String
我有“收貨地點”列表,我需要查找另一列,其中包含一組列表,其中包含正確大小寫/正確名稱的城市名稱。
我試過下面的公式,但我沒有找到任何運氣
=(VLOOKUP(LOOKUP(2^15,SEARCH($I$1:$I$7,A2),$I$1:$I$7),$I$1:$I$7,1,0))
當單元格中的第一個單詞與另一個單詞匹配時,它會給我結果,但是當“收據地點”在第一個單詞之后有不同的單詞時,它會拋出錯誤,
例如,如上圖所示,“BRADFORD GB”不會從城市列表中獲取“Bradford, WYK”。
您可以使用此公式來捕獲單元格的第一個單詞(如果它只包含一個單詞,則可以捕獲整個單詞):
=IFERROR(LEFT(A2,FIND(" ",A2)-1),A2)
如果您當前的公式失敗,您可以使用它來執行 VLOOKUP:
=IFERROR([your-current-formula],VLOOKUP(IFERROR(LEFT(A2,FIND(" ",A2)-1),A2),1,1)
假設你有office excel 365,你可以使用 xlookup 和 Find function 的組合來解決如下
=XLOOKUP("*"&IFERROR(LEFT(A2,FIND("@",SUBSTITUTE(A2,",","@",2))-1),LEFT(A2,FIND(" ",A2)-1))&"*",$D$2:$D$7,$D$2:$D$7,"Not found",2)
結果如下
解釋
首先,我們需要提取字符直到“,”的第二次迭代
LEFT(A2,FIND("@",SUBSTITUTE(A2,",","@",2))-1)
由於並非所有字符串的名稱都帶有“,”例如:BRADFORD GB,因此上述公式將向我們使用 IFERROR function 的計數器拋出錯誤。 因此,如果上面的公式拋出錯誤,我們將只提取字符直到第一個空格實例。
IFERROR(LEFT(A2,FIND("@",SUBSTITUTE(A2,",","@",2))-1), LEFT(A2,FIND(" ",A2)-1) )
現在我們只需要在城市列表中查找名稱。 但是,由於收貨地點和城市列表不完全相同,我們將使用通配符“*”,如頂部的整體公式中所示。
=XLOOKUP("*"&IFERROR(LEFT(A2,FIND("@",SUBSTITUTE(A2,",","@",2))-1),LEFT(A2,FIND(" ",A2)-1))&"*",$D$2:$D$7,$D$2:$D$7,"Not found",2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.