Excel Countif在搜索数组中带有通配符

时间:2018-10-10 14:21:09

标签: excel excel-formula wildcard countif

我已经搜索了一段时间,但看起来所有找到的示例都与我所需要的相反。有很多方法可以查看带有通配符的字符串是否与数组中的任何值匹配,但是我需要采用另一种方式-我需要包含通配符的数组,并检查目标单元格中​​的字符串是否与任何通配符匹配。匹配数组中的字符串,但是匹配字符串可以包含通配符。

将其放在上下文中,我正在解析大型日志文件,并且有很多行我希望忽略(但不能删除);所以我有一个帮助专栏:

+---+-------+----------------------------------------+----------------------------+
|   |  A    |    B                                   |  C  (filter for = FALSE)   | Requirement
+---+-------+----------------------------------------+----------------------------+
| 1 | 11:00 | VPN Status                             | =COUNTIF(IgnoreList,B1)>0  + Keep
| 2 | 11:05 | Log at event index 118, time index 115 | =COUNTIF(IgnoreList,B2)>0  + Ignore
| 3 | 11:20 | Log at event index 147, time index 208 | =COUNTIF(IgnoreList,B3)>0  + Ignore
+---+-------+----------------------------------------+----------------------------+

我尝试将通配符放在IgnoreList范围中,以捕获任何“事件记录”行:

+--------------------------------------+
| IgnoreList                           +
+--------------------------------------+
| State Runtime 1                      + 
| State Runtime 2                      +
| State Runtime 3                      +
| State Runtime 4                      +
| Log at event index *, time index *   + 
+--------------------------------------+

...但是这不起作用。

有人知道如何对照包含通配符的数组检查单元格吗?

到目前为止,我的IgnoreList有60个条目,因此单独测试每个单元格实际上是不可行的。我的日志中可能有30,000或更多的条目,因此单独测试的公式将比我希望使用的公式多得多。将条目添加到IgnoreList时,我也不想编辑公式。

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

在SUMPRODUCT中使用SEARCH(允许通配符查找):

=SUMPRODUCT(--ISNUMBER(SEARCH(IgnoreList,B1)))>0

enter image description here


要使用COUNTIF,需要颠倒标准并包装在SUMPRODUCT中:

=SUMPRODUCT(COUNTIF(B1,IgnoreList))>0

enter image description here