您可以使用SEARCH
B2 中的所有 B 列值,但最好限制范围,因此我将使用第 2 到 100 行
=IF(ISNUMBER(LOOKUP(2^15,SEARCH(Database!B$2:B$100,$B2))),$C2,"")
SEARCH
自动搜索其他文本中的值,因此不需要通配符[您应该从数据库中删除通配符,您只需要“7ELEVEN”等]。如果一个(或多个)搜索匹配,那么它将返回一个数字,LOOKUP 也将返回一个数字,以便您可以测试它是否匹配。
SEARCH
函数不区分大小写,FIND
如果您希望匹配区分大小写,请更改为
解释:
当你使用
=SEARCH(Database!B$2:B$100,$B2)
这将返回一个与 Database!B$2:B$100 大小相同的“数组”。对于 Database!B$2:B$100 中的每个值,您要么得到一个数字(如果在 B2 中找到该特定值,则它是该值的开始位置),或者得到 #VALUE!错误。
然后,当您在该数组中查找像 2^15 这样的“bignum”时,即
=LOOKUP(2^15,SEARCH(Database!B$2:B$100,$B2))
这将返回在数组中找到的最后一个数字……如果没有匹配项,则返回 #N/A,因此使用 ISNUMBER 标识是否至少有一个匹配项。
如果您想查看由返回的整个数组
=SEARCH(Database!B$2:B$100,$B2)
然后把它放在一个单元格中,然后选择那个单元格,按 F2 选择公式,按 F9 来查看整个数组。
如果您有空白,Database!B$2:B$100
那么这是一个问题,因为在任何值(位置 1)中总是“找到”空白,因此您可以编辑公式以防止这种情况发生,即
=IF(ISNUMBER(LOOKUP(2^15,SEARCH(Database!B$2:B$100,$B2)*(Database!B$2:B$100<>""))),$C2,"")
公式的两个版本都可以通过COUNT
代替LOOKUP
and来缩短ISNUMBER
,即对于后一个版本,您可以使用
=IF(COUNT(SEARCH(Database!B$2:B$100,$B2)*(Database!B$2:B$100<>"")),$C2,"")
但该版本需要“数组输入” - 即您需要使用组合键CTRL++确认公式,以便将公式括在 { 和SHIFT}ENTER等大括号中
注意:这里使用 2^15 是因为它保证比 SEARCH 函数可以返回的任何数字都大。2^15 = 32768,但单元格中的最大字符数比这少 1 - 32767