繁体   English   中英

在Excel中针对部分匹配进行搜索

[英]Searching against a partial match in excel

Tab-A包含两列。 第1列是网站域,第2列填充了一个公式,该公式应该输出在Tab-B中找到的电子邮件:

backpacks.com         / FORMULA TO FIND EMAIL FROM TAB-B 
buy.bags.io           / FORMULA TO FIND EMAIL FROM TAB-B
shop.plasticbags.net  / FORMULA TO FIND EMAIL FROM TAB-B
bags.org              / FORMULA TO FIND EMAIL FROM TAB-B

Tab-B包含两列。 第1列是电子邮件,第2列是电子邮件域:

admin@backpacks.com     / backpacks.com 
hi@bags.io              / bags.io
hello@plasticbags.net   / plasticbags.net
support@bags.org        / bags.org   

对于选项卡A中的每个域,我想搜索选项卡B中的电子邮件域,以查看是否存在部分匹配项。 例如,“ bags.io”是“ buy.bags.io”的部分匹配。 我从电子邮件地址中提取了电子邮件域,以便更轻松地进行匹配搜索,但是如果您知道如何的话,也可以在整个电子邮件地址中搜索部分匹配内容。

如果有匹配项,我想输出与之相关的电子邮件。 如果没有匹配项,我想放一个空白单元格。

我一直在尝试使用Vlookup和其他工具来解决这个问题,但是我还是无法理解。 我该怎么做?

采用:

=IFERROR(INDEX(D:D,AGGREGATE(15,7,ROW($E$1:$E$4)/(ISNUMBER(SEARCH($E$1:$E$4,A1))),1)),"")

它用域迭代一列,并将部分匹配行返回到INDEX,后者返回电子邮件。

在此处输入图片说明

如果可以使用VLOOKUP,则可以使用:

VLOOKUP("*"& lookup value  &"*" , table array , column number, FALSE)

其中"*"是通配符。

"*"& lookup value :然后它接受您查找值前面的其他单词。

"*"& lookup value :然后它在您的查找值之后接受其他单词。

"*"& lookup value &"*" :在查找值的两侧接受单词。

祝您查询愉快:)!

好吧...我的回答比斯科特复杂得多。 为了后代,就在这里!

  1. 在Tab-A列B中,我创建了一个辅助列,用于计数的数量. 在域中
  2. 在Tab-A列C&D&E中,我创建了一个公式以返回域的每个“块”。
  3. 在Tab-A列F中,我创建了一个公式,该公式基于两次搜索返回电子邮件:合并列C&D,如果没有返回值,则合并列D&E。

这是在搜索域块的多个组合,而不是从电子邮件地址中搜索部分匹配项。

B1 =LEN(A1)-LEN(SUBSTITUTE(A1,".",""))
C1 =IF(A1=0,"",TRIM(LEFT(RIGHT(SUBSTITUTE("."&A1,".",REPT(" ",99)),(B1+1)*99),99)))
D1 =IF(A1=0,"",TRIM(LEFT(RIGHT(SUBSTITUTE("."&A1,".",REPT(" ",99)),(B1)*99),99)))
E1 =IF(A1=0,"",TRIM(LEFT(RIGHT(SUBSTITUTE("."&A1,".",REPT(" ",99)),(B1-1)*99),99)))
F1 =INDEX('Tab-B'!A1:A4,IFNA(MATCH("*"&C1&"."&D1&"*",'Tab-B'!B1:B4,0)<>"",MATCH("*"&D1&"."&E1&"*",'Tab-B'!B1:B4,0)))

让我说,斯科特的解决方案更优雅! 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM