我有两个工作表,一个包含电子邮件地址和信息列表,另一个包含应列入黑名单的电子邮件地址。为了删除列入黑名单的电子邮件地址,我认为在第一个工作表中添加一列会很方便,该列指示是否可以在黑名单工作表中找到该行中的电子邮件地址。
我尝试使用VLookup
,Match
但Search
都没有得到我想要的结果......
我在这里做错了什么?
@Peter:使用IF
后ISERROR
仍然不起作用......
Vlookup第二行:=VLOOKUP(A2;Blacklist!A:B;2)
匹配第二行:=MATCH(A2;Blacklist!A:B)
搜索第二行:=SEARCH(A2;Blacklist!A:B)
工作表
黑名单
@Peter Albert:添加0
参数
答案1
您使用公式得到的是“奇怪”的结果,VLOOKUP
因为在您的源数据范围(Blacklist!A:B
)中,您尝试检索的值位于您尝试查找的值的左侧。
修复这个问题:
切换来源&图案列中的黑名单工作表,如下所示:
不要忘记添加 VLOOKUP 的第 4 个参数。您的公式应该是:
=VLOOKUP(A2,Blacklist!A:B,2,FALSE)
如果您的最终目标只是确定哪些电子邮件地址在黑名单中,您可以使用以下公式:
=IF(COUNTIF(Blacklist!B:B,A2), "Blacklisted", "Not Blacklisted")
Blacklist!B:B
包含黑名单电子邮件地址的列在哪里
答案2
VLOOKUP 和 MATCH 有另一个参数,即 TRUE 或 FALSE。TRUE 是默认值,如果要搜索的数据未排序,则会导致错误结果!因此,只需在公式中添加 FALSE(或缩写为 0)即可!
对于您的情况,我将使用 MATCH 函数来确定是否有匹配项。如果找不到匹配项或匹配的数字,则 Match 返回 #N/A - 因此将其与 ISERROR 结合使用将为您提供最佳结果:
=IF(ISERROR(MATCH(A2;Blacklist!B:B;0));"未列入黑名单";"已列入黑名单!")