我有一份电子邮件列表,例如
[email protected]
[email protected]
[email protected]
在上面的中,我试图获取不包括“免费”域名的计数。
尽管我上面的例子很简单,而且通过 company.com 来计算会更容易,但这不是我想要的。
我希望的逻辑是
如果单元格的内容包含“aol”或“gmail”或“yahoo”或“icloud”,则返回 FALSE。其他内容均为 TRUE
我的努力奏效了,但似乎很笨拙。有没有更好的方法
IF(ISNUMBER(SEARCH("gmail",C2)),FALSE,IF(ISNUMBER(SEARCH("icloud",C2)),FALSE,IF(ISNUMBER(SEARCH("yahoo",C2)),FALSE,IF(ISBLANK(C2),FALSE,TRUE)))))
答案1
对于单元格中的电子邮件地址A2
和范围内的免费域列表,D2:D5
请使用公式=OR(ISNUMBER(FIND($E$2:$E$5,A2)))
,如下例所示:
Ctrl-Shift-Enter
如果你使用的是 Excel 365 以外的 Excel 版本,请通过点击而不是直接输入公式Enter
(参见https://support.microsoft.com/en-us/office/video-array-formulas-8ff8257a-b28e-4e81-b4f8-30f793412dfa)
答案2
基于这您可以尝试以下操作:
=SUM(1-(MMULT(--(ISNUMBER(SEARCH("@"&{"aol";"gmail";"yahoo";"icloud"},A1:A3))),{1,1,1,1})>0))
或者:
=COUNTA(A1:A3)-SUM(--(ISNUMBER(SEARCH("@"&{"aol";"gmail";"yahoo";"icloud"},A1:A3))))
在 O365 以外的 Excel 版本中,您可能希望使用SUMPRODUCT()
而不是SUM()
。